When linking a program with -Wl,--export-dynamic, no symbols are exported. The problem arises when the executable needs to either dlopen itself, or when it has plugins which are "linked" against it. Both scenarios are not uncommon, particularly with GNOME software.
While this does work on Linux, it does not work on Cygwin with --export-dynamic; only --export-all-symbols, an i386PE-specific flag, will accomplish this. I'm attaching a test case; it's a simplified version of the test used in LT_SYS_DLOPEN_SELF (prev. AC_LIBTOOL_DLOPEN_SELF): $ gcc -o test.exe dlopen-self.c && ./test.exe status = 0 $ gcc -Wl,--export-dynamic -o test.exe dlopen-self.c && ./test.exe status = 0 $ gcc -Wl,--export-all-symbols -o test.exe dlopen-self.c && ./test.exe status = 1 Running 'objdump -p test.exe' will also show that the export table is only generated in the last case. I would appreciate your input on this issue. -- Summary: --export-dynamic does nothing for Cygwin .exe's Product: binutils Version: 2.19 (HEAD) Status: NEW Severity: normal Priority: P2 Component: ld AssignedTo: unassigned at sources dot redhat dot com ReportedBy: yselkowitz at users dot sourceforge dot net CC: bug-binutils at gnu dot org GCC build triplet: i686-pc-cygwin GCC host triplet: i686-pc-cygwin GCC target triplet: i686-pc-cygwin http://sourceware.org/bugzilla/show_bug.cgi?id=6744 ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils