Fixed x86_64 GCC configuration issue resulting in an incorrect crtend.o.

Some necessary CFLAGS were not being used when compiling crtbegin.o and
crtend.o, resulting in warnings when linking shared objects.
This commit is contained in:
Alex Smith 2012-07-18 15:05:12 +01:00
parent 2dc19755cc
commit 8fe25aaeb4
2 changed files with 10 additions and 1 deletions

View File

@ -1236,7 +1236,7 @@ i[34567]86-*-haiku*)
extra_parts='crtbegin.o crtend.o'
;;
x86_64-*-haiku*)
tmake_file='t-haiku i386/t-haiku64 i386/t-crtpic'
tmake_file='t-haiku i386/t-haiku64'
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h haiku.h i386/haiku64.h"
extra_parts='crtbegin.o crtend.o'
;;

View File

@ -5,3 +5,12 @@ LIBGCC = stmp-multilib
INSTALL_LIBGCC = install-multilib
EXTRA_MULTILIB_PARTS=crtbegin.o crtend.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
# Compile libgcc2.a with pic.
TARGET_LIBGCC2_CFLAGS = -fPIC