From 8fe25aaeb47890b45bc3f8f7bb2b50880ab0a86c Mon Sep 17 00:00:00 2001 From: Alex Smith Date: Wed, 18 Jul 2012 15:05:12 +0100 Subject: [PATCH] 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. --- gcc/gcc/config.gcc | 2 +- gcc/gcc/config/i386/t-haiku64 | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gcc/gcc/config.gcc b/gcc/gcc/config.gcc index a296b27..02dfbd5 100644 --- a/gcc/gcc/config.gcc +++ b/gcc/gcc/config.gcc @@ -1236,7 +1236,7 @@ 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' ;; diff --git a/gcc/gcc/config/i386/t-haiku64 b/gcc/gcc/config/i386/t-haiku64 index d207663..9c8f8e6 100644 --- a/gcc/gcc/config/i386/t-haiku64 +++ b/gcc/gcc/config/i386/t-haiku64 @@ -5,3 +5,12 @@ 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 -- gitore 0.2.2