[build, libjava] Support Sun symbol versioning in libjava
Rainer Orth
ro@CeBiTec.Uni-Bielefeld.DE
Mon Jul 5 17:06:00 GMT 2010
Andrew Haley <aph@redhat.com> writes:
>>> Did you test this on GNU/Linux ?
>>
>> Not yet: no access. Perhaps via VirtualBox or the GCC test farm.
We do have a single machine running RHEL4, so I've bootstrapped the
patch on x86_64-unknown-linux-gnu without regressions.
To avoid the Darwin problem of silently accepting the ld -M option, I've
added the same guard in configure.ac as in libgfortran and libssp:
--- a/libjava/configure.ac Sat Jul 03 09:28:21 2010 +0200
+++ b/libjava/configure.ac Sat Jul 03 09:32:51 2010 +0200
@@ -1780,13 +1780,28 @@
[libjava_cv_anon_version_script],
[save_CFLAGS="$CFLAGS"; save_LDFLAGS="$LDFLAGS"
libjava_cv_anon_version_script=no
- CFLAGS="$CFLAGS -fPIC"; LDFLAGS="$LDFLAGS -shared -Wl,--version-script,conftest.map"
+ CFLAGS="$CFLAGS -fPIC";
+ LDFLAGS="$LDFLAGS -shared -Wl,--version-script,conftest.map"
echo '{ global: globalsymb*; local: *; };' > conftest.map
AC_TRY_LINK(void globalsymbol (void) {} void localsymbol (void) {},,
- [libjava_cv_anon_version_script=yes], [])
+ [libjava_cv_anon_version_script=gnu], [])
+ if test x$libjava_cv_anon_version_script = xno; then
+ case "$target_os" in
+ solaris2*)
+ LDFLAGS="$save_LDFLAGS"
+ LDFLAGS="$LDFLAGS -shared -Wl,-M,conftest.map"
+ # Sun ld doesn't understand wildcards here.
+ echo '{ global: globalsymbol; local: *; };' > conftest.map
+ AC_TRY_LINK(void globalsymbol (void) {} void localsymbol (void) {},,
+ [libjava_cv_anon_version_script=sun], [])
+ ;;
+ esac
+ fi
CFLAGS="$save_CFLAGS"; LDFLAGS="$save_LDFLAGS"
])
-AM_CONDITIONAL(ANONVERSCRIPT, test "$libjava_cv_anon_version_script" = yes)
+AM_CONDITIONAL(ANONVERSCRIPT, test "$libjava_cv_anon_version_script" != no)
+AM_CONDITIONAL(ANONVERSCRIPT_GNU, test "$libjava_cv_anon_version_script" = gnu)
+AM_CONDITIONAL(ANONVERSCRIPT_SUN, test "$libjava_cv_anon_version_script" = sun)
# Check if linker supports static linking on a per library basis
LD_START_STATIC_SPEC=
Ok now?
Thanks.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University
More information about the Gcc-patches
mailing list