From patchwork Mon Jul 5 17:05:46 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rainer Orth X-Patchwork-Id: 57921 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 8A80DB6F16 for ; Tue, 6 Jul 2010 03:06:06 +1000 (EST) Received: (qmail 9885 invoked by alias); 5 Jul 2010 17:06:01 -0000 Received: (qmail 9737 invoked by uid 22791); 5 Jul 2010 17:05:59 -0000 X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=AWL, BAYES_00, TW_BG, TW_IB, T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from snape.CeBiTec.Uni-Bielefeld.DE (HELO smtp-relay.CeBiTec.Uni-Bielefeld.DE) (129.70.160.84) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 05 Jul 2010 17:05:51 +0000 Received: from localhost (localhost.CeBiTec.Uni-Bielefeld.DE [127.0.0.1]) by smtp-relay.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTP id 3FADE803; Mon, 5 Jul 2010 19:05:49 +0200 (CEST) Received: from smtp-relay.CeBiTec.Uni-Bielefeld.DE ([127.0.0.1]) by localhost (malfoy.CeBiTec.Uni-Bielefeld.DE [127.0.0.1]) (amavisd-new, port 10024) with LMTP id PmYeOnyS4tsg; Mon, 5 Jul 2010 19:05:47 +0200 (CEST) Received: from manam.CeBiTec.Uni-Bielefeld.DE (manam.CeBiTec.Uni-Bielefeld.DE [129.70.161.120]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp-relay.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTPS id 28C8B801; Mon, 5 Jul 2010 19:05:47 +0200 (CEST) Received: (from ro@localhost) by manam.CeBiTec.Uni-Bielefeld.DE (8.14.3+Sun/8.14.3/Submit) id o65H5kVx026088; Mon, 5 Jul 2010 19:05:46 +0200 (MEST) From: Rainer Orth To: Andrew Haley Cc: gcc-patches@gcc.gnu.org Subject: Re: [build, libjava] Support Sun symbol versioning in libjava References: <4C2DD7DC.5010301@redhat.com> <4C2DE4FD.3060901@redhat.com> Date: Mon, 05 Jul 2010 19:05:46 +0200 In-Reply-To: <4C2DE4FD.3060901@redhat.com> (Andrew Haley's message of "Fri, 02 Jul 2010 14:09:17 +0100") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (usg-unix-v) MIME-Version: 1.0 X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list 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=