Bulding gdb-6.4 on Linux/x86 with Sun C 5.9 finally also leads to a static executable, because "-rdynamic" with this compiler is unsupported:
cc: Warning: illegal option -dynamic and leads to a statically linked executable (undocumented behaviour). Instead, for this compiler, the equivalent option is -Wl,--export-dynamic. Here is a fix, choosing the right option to use in configure.ac. (Btw, this patch uses the option --export-dynamic of GNU ld. I don't understand why the Solaris handling in configure.ac uses the option -export-dynamic. This is *not* a documented option of GNU ld.) 2006-05-07 Bruno Haible <[EMAIL PROTECTED]> Make it possible to use a non-gcc compiler on Linux/x86. * configure.ac (EXPORT_DYNAMIC) [linux]: New variable. * config/i386/linux.mh (LOADLIBES): Use it. *** gdb-6.4/gdb/configure.ac.bak 2005-07-25 17:08:40.000000000 +0200 --- gdb-6.4/gdb/configure.ac 2006-05-07 19:19:26.000000000 +0200 *************** *** 1019,1024 **** --- 1019,1053 ---- AC_MSG_RESULT(no) fi ;; + linux*) + # The GNU linker requires the --export-dynamic option to make + # all symbols visible in the dynamic symbol table. But the option + # to pass depends on the compiler. + if test "$GCC" = "yes" ; then + EXPORT_DYNAMIC="-rdynamic" + else + # Try "-rdynamic" and "-Wl,--export-dynamic". + AC_MSG_CHECKING([for the -rdynamic flag]) + saved_ldflags=$LDFLAGS + LDFLAGS="${LDFLAGS} -ldl -rdynamic" + AC_TRY_RUN([#include <dlfcn.h> + #include <stddef.h> + int foo () { return 42; } + int main () + { + return (dlsym (NULL, "foo") == NULL); + }], + found=yes, found=no) + LDFLAGS=$saved_ldflags + AC_MSG_RESULT($found) + if test $found = yes; then + EXPORT_DYNAMIC="-rdynamic" + else + EXPORT_DYNAMIC="-Wl,--export-dynamic" + fi + fi + AC_SUBST([EXPORT_DYNAMIC]) + ;; aix*) AC_MSG_CHECKING(for AiX thread debugging library) AC_CACHE_VAL(gdb_cv_have_aix_thread_debug, *** gdb-6.4/gdb/config/i386/linux.mh.bak 2005-09-10 20:11:10.000000000 +0200 --- gdb-6.4/gdb/config/i386/linux.mh 2006-05-07 19:09:08.000000000 +0200 *************** *** 8,11 **** # The dynamically loaded libthread_db needs access to symbols in the # gdb executable. ! LOADLIBES = -ldl -rdynamic --- 8,11 ---- # The dynamically loaded libthread_db needs access to symbols in the # gdb executable. ! LOADLIBES = -ldl @EXPORT_DYNAMIC@ _______________________________________________ Bug-gdb mailing list Bug-gdb@gnu.org http://lists.gnu.org/mailman/listinfo/bug-gdb