From: Alan T. DeKok Date: Fri, 3 Jul 2015 14:26:43 +0000 (-0400) Subject: dladdr() isn't posix. Fixes #1113 X-Git-Tag: release_3_0_9~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7f00ff1013e79760534868abc337f075ecec1229;p=thirdparty%2Ffreeradius-server.git dladdr() isn't posix. Fixes #1113 --- diff --git a/configure b/configure index b78826d95c2..5021b6522e6 100755 --- a/configure +++ b/configure @@ -9963,7 +9963,8 @@ for ac_func in \ openat \ mkdirat \ unlinkat \ - bindat + bindat \ + dladdr do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` diff --git a/configure.ac b/configure.ac index 8723bf4d9ab..5b05c56775b 100644 --- a/configure.ac +++ b/configure.ac @@ -1466,7 +1466,8 @@ AC_CHECK_FUNCS( \ openat \ mkdirat \ unlinkat \ - bindat + bindat \ + dladdr ) AC_TYPE_SIGNAL diff --git a/src/main/modules.c b/src/main/modules.c index e0a845f90e3..39f52ba31c8 100644 --- a/src/main/modules.c +++ b/src/main/modules.c @@ -109,11 +109,15 @@ const section_type_value_t section_type_value[MOD_COUNT] = { */ static int check_module_magic(CONF_SECTION *cs, module_t const *module) { +#ifdef HAVE_DLADDR Dl_info dl_info; dladdr(module, &dl_info); +#endif if (MAGIC_PREFIX(module->magic) != MAGIC_PREFIX(RADIUSD_MAGIC_NUMBER)) { +#ifdef HAVE_DLADDR cf_log_err_cs(cs, "Failed loading module rlm_%s from file %s", module->name, dl_info.dli_fname); +#endif cf_log_err_cs(cs, "Application and rlm_%s magic number (prefix) mismatch." " application: %x module: %x", module->name, MAGIC_PREFIX(RADIUSD_MAGIC_NUMBER), @@ -122,7 +126,9 @@ static int check_module_magic(CONF_SECTION *cs, module_t const *module) } if (MAGIC_VERSION(module->magic) != MAGIC_VERSION(RADIUSD_MAGIC_NUMBER)) { +#ifdef HAVE_DLADDR cf_log_err_cs(cs, "Failed loading module rlm_%s from file %s", module->name, dl_info.dli_fname); +#endif cf_log_err_cs(cs, "Application and rlm_%s magic number (version) mismatch." " application: %lx module: %lx", module->name, (unsigned long) MAGIC_VERSION(RADIUSD_MAGIC_NUMBER), @@ -131,7 +137,9 @@ static int check_module_magic(CONF_SECTION *cs, module_t const *module) } if (MAGIC_COMMIT(module->magic) != MAGIC_COMMIT(RADIUSD_MAGIC_NUMBER)) { +#ifdef HAVE_DLADDR cf_log_err_cs(cs, "Failed loading module rlm_%s from file %s", module->name, dl_info.dli_fname); +#endif cf_log_err_cs(cs, "Application and rlm_%s magic number (commit) mismatch." " application: %lx module: %lx", module->name, (unsigned long) MAGIC_COMMIT(RADIUSD_MAGIC_NUMBER),