From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16607 invoked by alias); 7 Jul 2009 09:03:57 -0000 Received: (qmail 16580 invoked by uid 22791); 7 Jul 2009 09:03:56 -0000 X-SWARE-Spam-Status: No, hits=-2.7 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_64,RCVD_IN_DNSWL_LOW X-Spam-Check-By: sourceware.org Received: from adelie.canonical.com (HELO adelie.canonical.com) (91.189.90.139) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 07 Jul 2009 09:03:46 +0000 Received: from hutte.canonical.com ([91.189.90.181]) by adelie.canonical.com with esmtp (Exim 4.69 #1 (Debian)) id 1MO6aV-0002RB-M8; Tue, 07 Jul 2009 10:03:43 +0100 Received: from dslb-088-073-081-175.pools.arcor-ip.net ([88.73.81.175] helo=[192.168.42.17]) by hutte.canonical.com with esmtpsa (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1MO6aV-0004v9-G7; Tue, 07 Jul 2009 10:03:43 +0100 Message-ID: <4A530F5C.4040500@ubuntu.com> Date: Tue, 07 Jul 2009 09:10:00 -0000 From: Matthias Klose User-Agent: Thunderbird 2.0.0.21 (X11/20090409) MIME-Version: 1.0 To: GCC Patches CC: Paolo Carlini , GCJ-patches Subject: [patch] PR40134, use a linker script on arm-linux to link with -lgcc_s -lgcc Content-Type: multipart/mixed; boundary="------------060408080407070707090304" Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2009-07/txt/msg00323.txt.bz2 This is a multi-part message in MIME format. --------------060408080407070707090304 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Content-length: 576 Use a linker script to link with -lgcc_s -lgcc on arm-linux, which allows the arm-linux target to run the testsuite without regressions with the patch for the exception propagation support [1] enabled. The approach taken is the same as used on the sh-linux configuration. Tested on the 4.4 branch without regressions (c, c++, fortran, objc, obj-c++), the trunk currently fails to build for unrelated reasons [2] Ok for the branch (and for the trunk after it bootstraps again)? Matthias [1] http://gcc.gnu.org/ml/gcc/2009-05/msg00035.html [2] http://gcc.gnu.org/PR40651 --------------060408080407070707090304 Content-Type: text/plain; name="libgcc.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="libgcc.diff" Content-length: 1972 2009-07-07 Matthias Klose PR target/40134 * config/arm/t-linux: New. * config.host (arm*-*-linux*): Add arm/t-linux to tmake_file. Index: libgcc/config.host =================================================================== --- libgcc/config.host (revision 149314) +++ libgcc/config.host (working copy) @@ -203,6 +203,7 @@ arm*-*-netbsd*) ;; arm*-*-linux*) # ARM GNU/Linux with ELF + tmake_file="arm/t-linux" ;; arm*-*-uclinux*) # ARM ucLinux ;; Index: libgcc/config/arm/t-linux =================================================================== --- libgcc/config/arm/t-linux (revision 0) +++ libgcc/config/arm/t-linux (revision 0) @@ -0,0 +1,26 @@ +# Override SHLIB_LINK and SHLIB_INSTALL to use linker script +# libgcc_s.so. +SHLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \ + -Wl,--soname=@shlib_base_name@.so.1 \ + -Wl,--version-script=@shlib_map_file@ \ + -o @multilib_dir@/@shlib_base_name@.so.1.tmp @multilib_flags@ \ + @shlib_objs@ -lc && \ + rm -f @multilib_dir@/@shlib_base_name@.so && \ + if [ -f @multilib_dir@/@shlib_base_name@.so.1 ]; then \ + mv -f @multilib_dir@/@shlib_base_name@.so.1 \ + @multilib_dir@/@shlib_base_name@.so.1.backup; \ + else true; fi && \ + mv @multilib_dir@/@shlib_base_name@.so.1.tmp \ + @multilib_dir@/@shlib_base_name@.so.1 && \ + (echo "/* GNU ld script"; \ + echo " Use the shared library, but some functions are only in"; \ + echo " the static library. */"; \ + echo "GROUP ( @shlib_base_name@.so.1 libgcc.a )" \ + ) > @multilib_dir@/@shlib_base_name@.so +SHLIB_INSTALL = \ + $(mkinstalldirs) $(DESTDIR)$(slibdir)@shlib_slibdir_qual@; \ + $(INSTALL_DATA) @multilib_dir@/@shlib_base_name@.so.1 \ + $(DESTDIR)$(slibdir)@shlib_slibdir_qual@/@shlib_base_name@.so.1; \ + rm -f $(DESTDIR)$(slibdir)@shlib_slibdir_qual@/@shlib_base_name@.so; \ + $(INSTALL_DATA) @multilib_dir@/@shlib_base_name@.so \ + $(DESTDIR)$(slibdir)@shlib_slibdir_qual@/@shlib_base_name@.so --------------060408080407070707090304--