From patchwork Wed Dec 21 11:04:10 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tristan Gingold X-Patchwork-Id: 132617 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 1B049B7110 for ; Wed, 21 Dec 2011 22:04:33 +1100 (EST) Received: (qmail 6009 invoked by alias); 21 Dec 2011 11:04:27 -0000 Received: (qmail 5989 invoked by uid 22791); 21 Dec 2011 11:04:25 -0000 X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL, BAYES_00, TW_IV, TW_VS, TW_VX X-Spam-Check-By: sourceware.org Received: from mel.act-europe.fr (HELO mel.act-europe.fr) (194.98.77.210) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 21 Dec 2011 11:04:11 +0000 Received: from localhost (localhost [127.0.0.1]) by filtered-smtp.eu.adacore.com (Postfix) with ESMTP id 45C06290010; Wed, 21 Dec 2011 12:04:11 +0100 (CET) Received: from mel.act-europe.fr ([127.0.0.1]) by localhost (smtp.eu.adacore.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zfo1UbS7H1SF; Wed, 21 Dec 2011 12:04:11 +0100 (CET) Received: from ulanbator.act-europe.fr (ulanbator.act-europe.fr [10.10.1.67]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by mel.act-europe.fr (Postfix) with ESMTP id 33ACF290001; Wed, 21 Dec 2011 12:04:11 +0100 (CET) From: Tristan Gingold Subject: [Patch]: split libgcc/config/ia64/t-ia64 in two Date: Wed, 21 Dec 2011 12:04:10 +0100 Message-Id: Cc: Steve Ellcey To: GCC Patches Mime-Version: 1.0 (Apple Message framework v1251.1) 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 Hi, this patch fixes two build libgcc issues on VMS/ia64. * Because VMS doesn't define LIBGCC2_HAS_TF_MODE, compatibility thunks shouldn't be compiled. Otherwise, the shared libgcc library fails to build due to undefined symbols. * As VMS isn't fully compliant with ELF, crtstuff.c is used for crtbegin/crtend. This fact was last during the move from gcc/config/ia64 to libgcc/config/ia64. Tested only on ia64-hp-openvms. Ok for trunk ? Tristan. libgcc/ 2011-12-21 Tristan Gingold * config/ia64/t-ia64 (LIB1ASMFUNCS): Move backward compatibility thunks... (CUSTOM_CRTSTUFF, crtbegin.o, crtend.o) (crtbeginS.o, crtendS.o): ... and these to ... * config/ia64/t-ia64-elf: ... this new file. * config.host (ia64*-*-elf*, ia64*-*-freebsd*, ia64*-*-linux*) (ia64*-*-hpux*): Add ia64/t-ia64-elf in tmake_file. index a30bf52..13b71b7 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -639,23 +639,23 @@ i[34567]86-*-interix3*) ;; ia64*-*-elf*) extra_parts="$extra_parts crtbeginS.o crtendS.o crtfastmath.o" - tmake_file="ia64/t-ia64 ia64/t-eh-ia64 t-crtfm" + tmake_file="ia64/t-ia64 ia64/t-ia64-elf ia64/t-eh-ia64 t-crtfm" ;; ia64*-*-freebsd*) extra_parts="$extra_parts crtfastmath.o" - tmake_file="$tmake_file ia64/t-ia64 ia64/t-eh-ia64 t-crtfm" + tmake_file="$tmake_file ia64/t-ia64 ia64/t-ia64-elf ia64/t-eh-ia64 t-crtfm" ;; ia64*-*-linux*) # Don't use crtbeginT.o from *-*-linux* default. extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o" - tmake_file="$tmake_file ia64/t-ia64 t-crtfm t-softfp-tf ia64/t-softfp t-softfp ia64/t-softfp-compat ia64/t-eh-ia64 t-libunwind ia64/t-linux" + tmake_file="$tmake_file ia64/t-ia64 ia64/t-ia64-elf t-crtfm t-softfp-tf ia64/t-softfp t-softfp ia64/t-softfp-compat ia64/t-eh-ia64 t-libunwind ia64/t-linux" if test x$with_system_libunwind != xyes ; then tmake_file="${tmake_file} t-libunwind-elf ia64/t-linux-libunwind" fi md_unwind_header=ia64/linux-unwind.h ;; ia64*-*-hpux*) - tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc ia64/t-slibgcc-hpux t-slibgcc-hpux" + tmake_file="ia64/t-ia64 ia64/t-ia64-elf ia64/t-hpux t-slibgcc ia64/t-slibgcc-hpux t-slibgcc-hpux" ;; ia64-hp-*vms*) tmake_file="$tmake_file ia64/t-ia64 ia64/t-eh-ia64 ia64/t-vms t-slibgcc-vms" diff --git a/libgcc/config/ia64/t-ia64 b/libgcc/config/ia64/t-ia64 index d1ec353..1776ddd 100644 --- a/libgcc/config/ia64/t-ia64 +++ b/libgcc/config/ia64/t-ia64 @@ -8,8 +8,7 @@ LIB1ASMSRC = ia64/lib1funcs.S LIB1ASMFUNCS = __divxf3 __divdf3 __divsf3 \ __divdi3 __moddi3 __udivdi3 __umoddi3 \ __divsi3 __modsi3 __udivsi3 __umodsi3 __save_stack_nonlocal \ - __nonlocal_goto __restore_stack_nonlocal __trampoline \ - _fixtfdi _fixunstfdi _floatditf + __nonlocal_goto __restore_stack_nonlocal __trampoline # ??? Hack to get -P option used when compiling lib1funcs.S, because Intel # assembler does not accept # line number as a comment. @@ -17,20 +16,3 @@ LIB1ASMFUNCS = __divxf3 __divdf3 __divsf3 \ # C++ part of libgcc2, hence it had to be disabled. Must find some other way # to support the Intel assembler. #LIBGCC2_DEBUG_CFLAGS = -g1 -P - -CUSTOM_CRTSTUFF = yes - -# Assemble startup files. -# FIXME: -I$(gcc_objdir) is necessary to find auto-host.h. Really? -crtbegin.o: $(srcdir)/config/ia64/crtbegin.S - $(CC) $(compile_deps) -I. -I$(gcc_objdir) -c -x assembler-with-cpp $< -crtend.o: $(srcdir)/config/ia64/crtend.S - $(CC) $(compile_deps) -I. -I$(gcc_objdir) -c -x assembler-with-cpp $< -crtbeginS.o: $(srcdir)/config/ia64/crtbegin.S - $(CC) $(compile_deps) -I. -I$(gcc_objdir) -c -x assembler-with-cpp \ - -o $@ -DSHARED $< -crtendS.o: $(srcdir)/config/ia64/crtend.S - $(CC) $(compile_deps) -I. -I$(gcc_objdir) -c -x assembler-with-cpp \ - -o $@ -DSHARED $< - -SHLIB_MAPFILES += $(srcdir)/config/ia64/libgcc-ia64.ver diff --git a/libgcc/config/ia64/t-ia64-elf b/libgcc/config/ia64/t-ia64-elf new file mode 100644 index 0000000..08784df --- /dev/null +++ b/libgcc/config/ia64/t-ia64-elf @@ -0,0 +1,20 @@ +LIB1ASMFUNCS += _fixtfdi _fixunstfdi _floatditf + +CUSTOM_CRTSTUFF = yes + +# Assemble startup files. +# FIXME: -I$(gcc_objdir) is necessary to find auto-host.h. Really? +crtbegin.o: $(srcdir)/config/ia64/crtbegin.S + $(CC) $(compile_deps) -I. -I$(gcc_objdir) -c -x assembler-with-cpp \ + -o $@ $< +crtend.o: $(srcdir)/config/ia64/crtend.S + $(CC) $(compile_deps) -I. -I$(gcc_objdir) -c -x assembler-with-cpp \ + -o $@ $< +crtbeginS.o: $(srcdir)/config/ia64/crtbegin.S + $(CC) $(compile_deps) -I. -I$(gcc_objdir) -c -x assembler-with-cpp \ + -o $@ -DSHARED $< +crtendS.o: $(srcdir)/config/ia64/crtend.S + $(CC) $(compile_deps) -I. -I$(gcc_objdir) -c -x assembler-with-cpp \ + -o $@ -DSHARED $< + +SHLIB_MAPFILES += $(srcdir)/config/ia64/libgcc-ia64.ver