From 375a7aa1f13fa6061c278eb2c2447fd91521b45d Mon Sep 17 00:00:00 2001 From: Alexei Sheplyakov Date: Mon, 3 Nov 2008 19:17:16 +0300 Subject: [PATCH] [portability] GiNaC::compile_ex works on OpenBSD now. * acinclude.m4: check for dlopen() in libdl and in libc itself. Thanks to Paul Irofti for a bug report and a suggestion. --- acinclude.m4 | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/acinclude.m4 b/acinclude.m4 index 78c3bdb7..06ac032a 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -187,16 +187,29 @@ case $host_os in esac if test "$CONFIG_EXCOMPILER" = "yes"; then - AC_CHECK_LIB(dl, dlopen, [ - DL_LIBS="-ldl" - AC_DEFINE(HAVE_LIBDL, 1, [set to 1 if you have a working libdl installed.])], - - [AC_MSG_WARN([libdl not found. GiNaC::compile_ex will be disabled.]) - CONFIG_EXCOMPILER="no"]) + AC_CHECK_HEADER([dlfcn.h], [CONFIG_EXCOMPILER="yes"], [CONFIG_EXCOMPILER="no"]) elif test "$CONFIG_EXCOMPILER" = "no"; then - AC_MSG_RESULT([INFO: GiNaC::compile_ex disabled at user request.]) + AC_MSG_NOTICE([GiNaC::compile_ex disabled at user request.]) else - AC_MSG_RESULT([INFO: GiNaC::compile_ex is not supported on $host_os.]) + AC_MSG_NOTICE([GiNaC::compile_ex is not supported on $host_os.]) +fi + +if test "$CONFIG_EXCOMPILER" = "yes"; then + dnl Some systems (GNU/Linux, Solaris) have dlopen in -ldl, some + dnl others (OpenBSD) -- in libc + found_dlopen_lib="no" + DL_LIBS="-ldl" + AC_CHECK_LIB(dl, dlopen, [found_dlopen_lib="yes"]) + if test "$found_dlopen_lib" = "no"; then + DL_LIBS="" + AC_CHECK_FUNC(dlopen, [found_dlopen_lib="yes"]) + fi + if test "$found_dlopen_lib" = "no"; then + CONFIG_EXCOMPILER="no" + AC_MSG_WARN([Could not found working dlopen(). GiNaC::compile_ex will be disabled.]) + else + AC_DEFINE(HAVE_LIBDL, 1, [set to 1 if dlopen() works.]) + fi fi AC_SUBST(DL_LIBS) AC_SUBST(CONFIG_EXCOMPILER)]) -- 2.44.0