From patchwork Mon Jul 5 17:05:46 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [build,libjava] Support Sun symbol versioning in libjava Date: Mon, 05 Jul 2010 07:05:46 -0000 From: Rainer Orth X-Patchwork-Id: 57921 Message-Id: To: Andrew Haley Cc: gcc-patches@gcc.gnu.org Andrew Haley 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: Ok now? Thanks. Rainer --- 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=