From 3529103a0e134f9d53d0afd5ddb54e5b376598cb Mon Sep 17 00:00:00 2001 From: Bernd Machenschalk <bernd.machenschalk@ligo.org> Date: Wed, 30 May 2012 15:10:22 +0200 Subject: [PATCH] Try something different: try to dlopen("libgcc_s.so.1") in the program This reverts commit 46322af60fef1dd7d6f250b57712dd7874e4d531. --- .../hough/src2/EinsteinAtHome/eah_build2.sh | 4 ++-- .../hough/src2/EinsteinAtHome/hs_boinc_extras.c | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/lalapps/src/pulsar/hough/src2/EinsteinAtHome/eah_build2.sh b/lalapps/src/pulsar/hough/src2/EinsteinAtHome/eah_build2.sh index 988e8fc26a..bb83351ac6 100755 --- a/lalapps/src/pulsar/hough/src2/EinsteinAtHome/eah_build2.sh +++ b/lalapps/src/pulsar/hough/src2/EinsteinAtHome/eah_build2.sh @@ -252,9 +252,9 @@ else WITH_SSL="--with-ssl=$ssldir" fi if [ ".$release" = ".true" ]; then - CPPFLAGS="-DEXT_STACKTRACE -I$INSTALL/include/bfd $CPPFLAGS" + CPPFLAGS="-DDLOPEN_LIBGCC -DEXT_STACKTRACE -I$INSTALL/include/bfd $CPPFLAGS" export RELEASE_DEPS="erp_execinfo_plus.o libstdc++.a libz.a" - export RELEASE_LDADD="erp_execinfo_plus.o -lbfd -liberty /lib/libgcc_s.so.1" + export RELEASE_LDADD="erp_execinfo_plus.o -lbfd -liberty -ldl" build_binutils=true enable_linux_compatibility_workarounds=true fi ;; diff --git a/lalapps/src/pulsar/hough/src2/EinsteinAtHome/hs_boinc_extras.c b/lalapps/src/pulsar/hough/src2/EinsteinAtHome/hs_boinc_extras.c index b5b1169e19..ba73205260 100644 --- a/lalapps/src/pulsar/hough/src2/EinsteinAtHome/hs_boinc_extras.c +++ b/lalapps/src/pulsar/hough/src2/EinsteinAtHome/hs_boinc_extras.c @@ -69,6 +69,11 @@ #include <gnu/libc-version.h> #endif +/* try to dlopen("libgcc_s.so.1") */ +#ifdef DLOPEN_LIBGCC +#include <dlfcn.h> +#endif + /* our own exception handler / runtime debugger */ #if HAVE_EXCHNDL #include "exchndl.h" @@ -1098,6 +1103,18 @@ static void worker (void) { LogPrintf (LOG_DEBUG, "glibc version/release: %s/%s\n", gnu_get_libc_version(), gnu_get_libc_release()); #endif +#ifdef DLOPEN_LIBGCC + { + void *lib_handle = dlopen("libgcc_s.so.1", RTLD_LAZY); + if(lib_handle) { + LogPrintf (LOG_DEBUG, "Successfully loaded libgcc_s.so.1\n"); + /* dlclose(lib_handle); */ + } else { + LogPrintf (LOG_DEBUG, "Couldn't load libgcc_s.so.1: %s\n", dlerror()); + } + } +#endif + /* if there already was an error, there is no use in continuing */ if (res) { LogPrintf (LOG_CRITICAL, "ERROR: error %d in command-line parsing\n", res); -- GitLab