This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [build, libjava] Support Sun symbol versioning in libjava
On 07/05/2010 06:05 PM, Rainer Orth wrote:
> 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?
OK.
Thanks,
Andrew.