[committed] Fix dlopen problem on hppa*64*-hp-hpux11*
John David Anglin
dave@hiauly1.hia.nrc.ca
Mon Oct 16 08:36:00 GMT 2006
The enclosed patch fixes a regression that I introduced in 4.1.
When a shared library is dlopen'd on hppa64-*-hpux*, the library
may not bind successfully because the __cxa_finalize stub hasn't
been linked into the executable.
Tested on hppa64-hp-hpux11.11 with no regressions.
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6602)
2006-10-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* pa64-hpux.h (LINK_SPEC): Force __cxa_finalize to be an undefined
symbol in the output file for non-shared links when -nostdlib or
-nodefaultlibs isn't specified.
Index: config/pa/pa64-hpux.h
===================================================================
--- config/pa/pa64-hpux.h (revision 115902)
+++ config/pa/pa64-hpux.h (working copy)
@@ -33,7 +33,8 @@
%{!shared:%{pg:-L/lib/pa20_64/libp -L/usr/lib/pa20_64/libp %{!static:\
%nWarning: consider linking with `-static' as system libraries with\n\
%n profiling support are only provided in archive format}}}\
- %{mhp-ld:+Accept TypeMismatch -z} -E %{mlinker-opt:-O} %{!shared:-u main}\
+ %{mhp-ld:+Accept TypeMismatch -z} -E %{mlinker-opt:-O}\
+ %{!shared:-u main %{!nostdlib:%{!nodefaultlibs:-u __cxa_finalize}}}\
%{static:-a archive} %{shared:%{mhp-ld:-b}%{!mhp-ld:-shared}}"
#else
#define LINK_SPEC \
@@ -43,7 +44,8 @@
%{!shared:%{pg:-L/lib/pa20_64/libp -L/usr/lib/pa20_64/libp %{!static:\
%nWarning: consider linking with `-static' as system libraries with\n\
%n profiling support are only provided in archive format}}}\
- %{!mgnu-ld:+Accept TypeMismatch -z} -E %{mlinker-opt:-O} %{!shared:-u main}\
+ %{!mgnu-ld:+Accept TypeMismatch -z} -E %{mlinker-opt:-O}\
+ %{!shared:-u main %{!nostdlib:%{!nodefaultlibs:-u __cxa_finalize}}}\
%{static:-a archive} %{shared:%{mgnu-ld:-shared}%{!mgnu-ld:-b}}"
#endif
More information about the Gcc-patches
mailing list