diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ef37f748f6b..a44b7f3fc09 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2002-11-28 Jakub Jelinek + + * config.gcc (x86_64-*-linux*) [tmake_file]: Remove i386/t-crtstuff. + * config/t-linux (CRTSTUFF_T_CFLAGS_S): Add $(CRTSTUFF_T_CFLAGS). + * config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Define. + 2002-11-28 Kazu Hirata * config/h8300/h8300.c (h8300_and_costs): New. diff --git a/gcc/config.gcc b/gcc/config.gcc index 6e1bf16da12..9fc5c36b5fd 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -1124,7 +1124,7 @@ i[34567]86-*-linux*) # Intel 80386's running GNU/Linux x86_64-*-linux*) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h \ i386/x86-64.h i386/linux64.h" - tmake_file="t-slibgcc-elf-ver t-linux i386/t-crtstuff i386/t-linux64" + tmake_file="t-slibgcc-elf-ver t-linux i386/t-linux64" ;; i[34567]86-*-gnu*) ;; diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64 index 31b6ad46386..3b109d8b0ce 100644 --- a/gcc/config/i386/t-linux64 +++ b/gcc/config/i386/t-linux64 @@ -12,3 +12,9 @@ LIBGCC = stmp-multilib INSTALL_LIBGCC = install-multilib EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o + +# 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-linux b/gcc/config/t-linux index 570135aef50..3c73561fd26 100644 --- a/gcc/config/t-linux +++ b/gcc/config/t-linux @@ -2,7 +2,7 @@ STMP_FIXPROTO = # 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