From: hjl Date: Mon, 6 Aug 2007 19:58:11 +0000 (+0000) Subject: 2007-08-06 H.J. Lu X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=commitdiff_plain;h=0f2457b8d9212d7a56979ee0217b69466b2d31cc 2007-08-06 H.J. Lu Daniel Jacobowitz PR target/31868 * config.gcc (x86_64-*-freebsd*): Add i386/t-crtstuff to tmake_file. (x86_64-*-netbsd*): Likewise. (x86_64-*-linux*): Likewise. (x86_64-*-kfreebsd*-gnu): Likewise. (x86_64-*-knetbsd*-gnu): Likewise. (i[34567]86-*-solaris2.1[0-9]*): Likewise. * config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Removed. * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Update comments. Add -fno-asynchronous-unwind-tables. * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Add $(CRTSTUFF_T_CFLAGS). * config/t-libc-ok (CRTSTUFF_T_CFLAGS_S): Likewise. * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Likewise. * config/t-netbsd (CRTSTUFF_T_CFLAGS_S): Likewise. * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127248 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c47c658ea82..86e14233c59 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,26 @@ +2007-08-06 H.J. Lu + Daniel Jacobowitz + + PR target/31868 + * config.gcc (x86_64-*-freebsd*): Add i386/t-crtstuff to + tmake_file. + (x86_64-*-netbsd*): Likewise. + (x86_64-*-linux*): Likewise. + (x86_64-*-kfreebsd*-gnu): Likewise. + (x86_64-*-knetbsd*-gnu): Likewise. + (i[34567]86-*-solaris2.1[0-9]*): Likewise. + + * config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Removed. + + * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Update comments. + Add -fno-asynchronous-unwind-tables. + + * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Add $(CRTSTUFF_T_CFLAGS). + * config/t-libc-ok (CRTSTUFF_T_CFLAGS_S): Likewise. + * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Likewise. + * config/t-netbsd (CRTSTUFF_T_CFLAGS_S): Likewise. + * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Likewise. + 2007-08-06 Steve Ellcey * config/ia64/ia64.c (ia64_c_mode_for_suffix): New. diff --git a/gcc/config.gcc b/gcc/config.gcc index b7bc0720bfb..503a60bf633 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -1095,6 +1095,7 @@ i[34567]86-*-freebsd*) ;; x86_64-*-freebsd*) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/x86-64.h i386/freebsd.h i386/freebsd64.h" + tmake_file="${tmake_file} i386/t-crtstuff" ;; i[34567]86-*-netbsdelf*) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h" @@ -1107,6 +1108,7 @@ i[34567]86-*-netbsd*) ;; x86_64-*-netbsd*) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h" + tmake_file="${tmake_file} i386/t-crtstuff" ;; i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123]) tm_file="i386/i386.h i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h openbsd-oldgas.h openbsd.h i386/openbsd.h" @@ -1166,7 +1168,7 @@ x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu) x86_64-*-kfreebsd*-gnu) tm_file="${tm_file} kfreebsd-gnu.h" ;; x86_64-*-knetbsd*-gnu) tm_file="${tm_file} knetbsd-gnu.h" ;; esac - tmake_file="${tmake_file} i386/t-linux64 i386/t-crtpc i386/t-crtfm i386/t-fprules-softfp64 soft-fp/t-softfp t-dfprules" + tmake_file="${tmake_file} i386/t-linux64 i386/t-crtstuff i386/t-crtpc i386/t-crtfm i386/t-fprules-softfp64 soft-fp/t-softfp t-dfprules" ;; i[34567]86-*-gnu*) ;; @@ -1263,7 +1265,7 @@ i[34567]86-*-solaris2*) *-*-solaris2.1[0-9]*) tm_file="${tm_file} i386/x86-64.h i386/sol2-10.h" tm_defines="${tm_defines} TARGET_BI_ARCH=1" - tmake_file="$tmake_file i386/t-sol2-10" + tmake_file="$tmake_file i386/t-crtstuff i386/t-sol2-10" need_64bit_hwint=yes # FIXME: -m64 for i[34567]86-*-* should be allowed just # like -m32 for x86_64-*-*. diff --git a/gcc/config/i386/t-crtstuff b/gcc/config/i386/t-crtstuff index a202df6653f..8fe58751640 100644 --- a/gcc/config/i386/t-crtstuff +++ b/gcc/config/i386/t-crtstuff @@ -1,2 +1,7 @@ # The pushl in CTOR initialization interferes with frame pointer elimination. -CRTSTUFF_T_CFLAGS = -fno-omit-frame-pointer +# crtend*.o cannot be compiled without -fno-asynchronous-unwind-tables, +# because then __FRAME_END__ might not be the last thing in .eh_frame +# section. -fno-asynchronous-unwind-tables is off by default for i386 +# and is on by default for x86-64. We turn it off for both i386 and +# x86-64. +CRTSTUFF_T_CFLAGS = -fno-omit-frame-pointer -fno-asynchronous-unwind-tables diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64 index 7aa1b81bf7c..0a70cd90d46 100644 --- a/gcc/config/i386/t-linux64 +++ b/gcc/config/i386/t-linux64 @@ -17,9 +17,3 @@ EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o \ softfp_wrap_start := '\#ifdef __x86_64__' softfp_wrap_end := '\#endif' - -# The pushl in CTOR initialization interferes with frame pointer elimination. -# crtend*.o cannot be compiled without -fno-asynchronous-unwind-tables, -# because then __FRAME_END__ might not be the last thing in .eh_frame -# section. -CRTSTUFF_T_CFLAGS = -fno-omit-frame-pointer -fno-asynchronous-unwind-tables diff --git a/gcc/config/t-freebsd b/gcc/config/t-freebsd index 211dbdf6b71..0680618a6ec 100644 --- a/gcc/config/t-freebsd +++ b/gcc/config/t-freebsd @@ -1,5 +1,5 @@ # Compile crtbeginS.o and crtendS.o with pic. -CRTSTUFF_T_CFLAGS_S = -fPIC +CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) -fPIC # Compile libgcc.a with pic. TARGET_LIBGCC2_CFLAGS += -fPIC diff --git a/gcc/config/t-libc-ok b/gcc/config/t-libc-ok index 4dae812ae31..561ee0b31d1 100644 --- a/gcc/config/t-libc-ok +++ b/gcc/config/t-libc-ok @@ -1 +1 @@ -CRTSTUFF_T_CFLAGS_S=-fPIC +CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) -fPIC diff --git a/gcc/config/t-lynx b/gcc/config/t-lynx index a14a53c614e..3a6a5d871e4 100644 --- a/gcc/config/t-lynx +++ b/gcc/config/t-lynx @@ -1,5 +1,5 @@ # Compile crtbeginS.o and crtendS.o with pic. -CRTSTUFF_T_CFLAGS_S = -fPIC +CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) -fPIC # Compile libgcc2.a with pic. TARGET_LIBGCC2_CFLAGS = -fPIC diff --git a/gcc/config/t-netbsd b/gcc/config/t-netbsd index 843e4100df7..34949e12858 100644 --- a/gcc/config/t-netbsd +++ b/gcc/config/t-netbsd @@ -1,2 +1,2 @@ # Always build crtstuff with PIC. -CRTSTUFF_T_CFLAGS = -fPIC +CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) -fPIC diff --git a/gcc/config/t-svr4 b/gcc/config/t-svr4 index 52c9b28fc9a..3ea1174580d 100644 --- a/gcc/config/t-svr4 +++ b/gcc/config/t-svr4 @@ -4,7 +4,7 @@ # we will be doing that, we just always use -fPIC when compiling the # routines in crtstuff.c. Likewise for libgcc2.c. -CRTSTUFF_T_CFLAGS = -fPIC +CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) -fPIC TARGET_LIBGCC2_CFLAGS = -fPIC # See all the declarations.