gcc 4.7.3: fix remaining Haiku issues.

This commit is contained in:
Jérôme Duval
2013-05-10 18:26:12 +02:00
parent e474c2012e
commit a5171ea346
7 changed files with 31 additions and 16 deletions

17
gcc/configure vendored
View File

@@ -2946,6 +2946,9 @@ case "${host}" in
i[3456789]86-*-msdosdjgpp*)
noconfigdirs="$noconfigdirs tcl tk itcl"
;;
*-*-haiku*)
noconfigdirs="$noconfigdirs tk itcl libgui gdb"
;;
esac
@@ -3187,6 +3190,9 @@ case "${target}" in
*-*-darwin*)
noconfigdirs="$noconfigdirs ${libgcj}"
;;
*-*-haiku*)
noconfigdirs="$noconfigdirs ${libgcj}"
;;
*-*-netware*)
noconfigdirs="$noconfigdirs ${libgcj}"
;;
@@ -3350,6 +3356,9 @@ case "${target}" in
*-*-freebsd*)
noconfigdirs="$noconfigdirs target-newlib target-libgloss"
;;
*-*-haiku*)
noconfigdirs="$noconfigdirs target-newlib target-libgloss"
;;
*-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
noconfigdirs="$noconfigdirs target-newlib target-libgloss"
;;
@@ -3403,6 +3412,9 @@ case "${target}" in
with_gmp=/usr/local
fi
;;
*-*-haiku*)
noconfigdirs="$noconfigdirs gdb target-libiberty"
;;
*-*-kaos*)
# Remove unsupported stuff on all kaOS configurations.
noconfigdirs="$noconfigdirs target-libgloss"
@@ -3631,11 +3643,6 @@ case "${target}" in
;;
vax-*-*)
noconfigdirs="$noconfigdirs target-newlib target-libgloss"
;;
*-*-haiku*)
noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
;;
*-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
;;
esac

View File

@@ -850,7 +850,6 @@ arm*-*-netbsdelf*)
arm*-*-haiku*)
tmake_file="${tmake_file} t-haiku arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-haiku"
tm_file="dbxelf.h elfos.h haiku.h arm/elf.h arm/bpabi.h arm/haiku.h"
tm_file="$tm_file ../../libgcc/config/arm/bpabi-lib.h"
# The BPABI long long divmod functions return a 128-bit value in
# registers r0-r3. Correctly modeling that requires the use of
# TImode.
@@ -1236,12 +1235,10 @@ x86_64-*-freebsd*)
i[34567]86-*-haiku*)
tmake_file='t-haiku i386/t-crtpic'
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h haiku.h i386/haiku.h"
extra_parts='crtbegin.o crtend.o'
;;
x86_64-*-haiku*)
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'
;;
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"
@@ -1934,7 +1931,6 @@ mips-*-elf* | mipsel-*-elf*)
mipsel-*-haiku*)
tmake_file='mips/t-elf t-haiku'
tm_file="elfos.h ${tm_file} haiku.h mips/haiku.h"
extra_parts='crtbegin.o crtend.o'
;;
mips64-*-elf* | mips64el-*-elf*)
tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"

View File

@@ -177,3 +177,9 @@ Boston, MA 02111-1307, USA. */
#ifndef TARGET_LIBC_PROVIDES_SSP
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all:-lssp}"
#endif
/* Do not desire to have _Jv_RegisterClasses in crtbegin.o for Haiku */
#define TARGET_USE_JCR_SECTION 0
/* Do not use TM clone registry in Haiku for now */
#define USE_TM_CLONE_REGISTRY 0

View File

@@ -20,12 +20,6 @@ the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#if TARGET_64BIT_DEFAULT
#define TARGET_VERSION fprintf (stderr, " (x86-64 Haiku/ELF)");
#else
#define TARGET_VERSION fprintf (stderr, " (i386 Haiku/ELF)");
#endif
#undef ASM_COMMENT_START
#define ASM_COMMENT_START " #"

View File

@@ -121,7 +121,7 @@ installcheck:
.PHONY: all clean
clean:
-rm -f config.h libgcc_tm.h stamp-h stmp-ldirs libgcc.map
-rm -f config.h libgcc_tm.h stamp-h stmp-ldirs libgcc.map libgcc_tm.stamp
-rm -f *$(objext)
-rm -f *.dep
-rm -f *.a

View File

@@ -325,6 +325,11 @@ arm*-*-netbsdelf*)
tmake_file="$tmake_file arm/t-arm arm/t-netbsd t-slibgcc-gld-nover"
;;
arm-*-haiku*)
tmake_file="${tmake_file} arm/t-arm arm/t-elf arm/t-bpabi"
tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
tm_file="${tm_file} arm/bpabi-lib.h"
unwind_header=config/arm/unwind-arm.h
extra_parts="crtbegin.o crtend.o"
;;
arm*-*-linux*) # ARM GNU/Linux with ELF
tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix"
@@ -535,8 +540,12 @@ x86_64-*-freebsd*)
tmake_file="${tmake_file} i386/t-freebsd i386/t-crtstuff"
;;
i[34567]86-*-haiku*)
tmake_file="${tmake_file} i386/t-crtstuff t-libgcc-pic"
extra_parts="crtbegin.o crtend.o"
;;
x86_64-*-haiku*)
tmake_file="${tmake_file} i386/t-crtstuff t-libgcc-pic"
extra_parts="crtbegin.o crtend.o"
;;
i[34567]86-*-netbsdelf*)
;;
@@ -767,6 +776,7 @@ mips*-*-linux*) # Linux MIPS, either endian.
mips*-*-openbsd*)
;;
mips*-*-haiku*)
extra_parts="crtbegin.o crtend.o"
;;
mips*-sde-elf*)
tmake_file="$tmake_file mips/t-crtstuff mips/t-mips16"

View File

@@ -104,7 +104,9 @@ call_ ## FUNC (void) \
&& defined(HAVE_LD_EH_FRAME_HDR) \
&& !defined(inhibit_libc) && !defined(CRTSTUFFT_O) \
&& defined(__GLIBC__) && __GLIBC__ >= 2
#ifndef __HAIKU__
#include <link.h>
#endif
/* uClibc pretends to be glibc 2.2 and DT_CONFIG is defined in its link.h.
But it doesn't use PT_GNU_EH_FRAME ELF segment currently. */
# if !defined(__UCLIBC__) \