From 8116a5d9ffdc704a2fe1095bd9bdac3a36ad56bb Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Mon, 22 Nov 2010 13:03:49 +0000 Subject: [PATCH] Merged gcc4-weak-symbols branch. git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@39570 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- gcc/gcc/config/arm/haiku.h | 4 ++-- gcc/gcc/config/i386/haiku.h | 8 +------- gcc/gcc/config/i386/haiku64.h | 20 +++++--------------- gcc/gcc/config/m68k/haiku.h | 10 ++-------- gcc/gcc/config/mips/haiku.h | 8 +------- gcc/gcc/config/rs6000/haiku.h | 8 +------- 6 files changed, 11 insertions(+), 47 deletions(-) diff --git a/gcc/gcc/config/arm/haiku.h b/gcc/gcc/config/arm/haiku.h index df1d39b..19dff3c 100644 --- a/gcc/gcc/config/arm/haiku.h +++ b/gcc/gcc/config/arm/haiku.h @@ -74,6 +74,6 @@ /* If ELF is the default format, we should not use /lib/elf. */ #undef LINK_SPEC -#define LINK_SPEC "%{!o*:-o %b} -m armelf -shared -no-undefined -Bsymbolic %{nostart:-e 0} \ - %{mbig-endian:-EB} %{mlittle-endian:-EL} -X" +#define LINK_SPEC "%{!o*:-o %b} -m armelf -shared -no-undefined %{nostart:-e 0} \ + %{mbig-endian:-EB} %{mlittle-endian:-EL} -X" diff --git a/gcc/gcc/config/i386/haiku.h b/gcc/gcc/config/i386/haiku.h index 335c414..79025a8 100644 --- a/gcc/gcc/config/i386/haiku.h +++ b/gcc/gcc/config/i386/haiku.h @@ -40,12 +40,6 @@ builtin_define ("__stdcall=__attribute__((__stdcall__))"); \ builtin_define ("__cdecl=__attribute__((__cdecl__))"); \ builtin_assert ("system=haiku"); \ - /* Haiku apparently doesn't support merging of symbols across shared \ - object boundaries. Hence we need to explicitly specify that \ - type_infos are not merged, so that they get compared by name \ - instead of by pointer. */ \ - builtin_define ("__GXX_MERGED_TYPEINFO_NAMES=0"); \ - builtin_define ("__GXX_TYPEINFO_EQUALITY_INLINE=0"); \ } \ while (0) @@ -57,7 +51,7 @@ /* If ELF is the default format, we should not use /lib/elf. */ #undef LINK_SPEC -#define LINK_SPEC "-m elf_i386_haiku -shared -Bsymbolic %{nostart:-e 0} %{shared:-e 0} %{!shared: %{!nostart: -no-undefined}}" +#define LINK_SPEC "-m elf_i386_haiku -shared %{nostart:-e 0} %{shared:-e 0} %{!shared: %{!nostart: -no-undefined}}" /* A C statement (sans semicolon) to output to the stdio stream FILE the assembler definition of uninitialized global DECL named diff --git a/gcc/gcc/config/i386/haiku64.h b/gcc/gcc/config/i386/haiku64.h index 24a44ad..7a0ba68 100644 --- a/gcc/gcc/config/i386/haiku64.h +++ b/gcc/gcc/config/i386/haiku64.h @@ -27,9 +27,9 @@ #endif /* The SVR4 ABI for the i386 says that records and unions are returned - * in memory. + * in memory. * - * TODO: Linux64 doesn't use pcc_struct_return scheme. Does haiku? + * TODO: Linux64 doesn't use pcc_struct_return scheme. Does haiku? * If not this could be removed. */ #undef DEFAULT_PCC_STRUCT_RETURN @@ -48,12 +48,6 @@ builtin_define ("__stdcall=__attribute__((__stdcall__))"); \ builtin_define ("__cdecl=__attribute__((__cdecl__))"); \ builtin_assert ("system=haiku"); \ - /* Haiku apparently doesn't support merging of symbols across shared \ - object boundaries. Hence we need to explicitly specify that \ - type_infos are not merged, so that they get compared by name \ - instead of by pointer. */ \ - builtin_define ("__GXX_MERGED_TYPEINFO_NAMES=0"); \ - builtin_define ("__GXX_TYPEINFO_EQUALITY_INLINE=0"); \ } \ while (0) #else @@ -66,12 +60,6 @@ builtin_define ("__stdcall=__attribute__((__stdcall__))"); \ builtin_define ("__cdecl=__attribute__((__cdecl__))"); \ builtin_assert ("system=haiku"); \ - /* Haiku apparently doesn't support merging of symbols across shared \ - object boundaries. Hence we need to explicitly specify that \ - type_infos are not merged, so that they get compared by name \ - instead of by pointer. */ \ - builtin_define ("__GXX_MERGED_TYPEINFO_NAMES=0"); \ - builtin_define ("__GXX_TYPEINFO_EQUALITY_INLINE=0"); \ } \ while (0) #endif @@ -83,9 +71,9 @@ #undef LINK_SPEC #if TARGET_64BIT -#define LINK_SPEC "-m elf_x86_64 -z max-page-size=0x1000 -shared -Bsymbolic %{nostart:-e 0} %{shared:-e 0} %{!shared: %{!nostart: -no-undefined}}" +#define LINK_SPEC "-m elf_x86_64 -z max-page-size=0x1000 -shared %{nostart:-e 0} %{shared:-e 0} %{!shared: %{!nostart: -no-undefined}}" #else -#define LINK_SPEC "-m elf_i386_haiku -shared -Bsymbolic %{nostart:-e 0} %{shared:-e 0} %{!shared: %{!nostart: -no-undefined}}" +#define LINK_SPEC "-m elf_i386_haiku -shared %{nostart:-e 0} %{shared:-e 0} %{!shared: %{!nostart: -no-undefined}}" #endif diff --git a/gcc/gcc/config/m68k/haiku.h b/gcc/gcc/config/m68k/haiku.h index c587983..0f241b1 100644 --- a/gcc/gcc/config/m68k/haiku.h +++ b/gcc/gcc/config/m68k/haiku.h @@ -75,12 +75,6 @@ builtin_define ("__stdcall=__attribute__((__stdcall__))"); \ builtin_define ("__cdecl=__attribute__((__cdecl__))"); \ builtin_assert ("system=haiku"); \ - /* Haiku apparently doesn't support merging of symbols across shared\ - object boundaries. Hence we need to explicitly specify that \ - type_infos are not merged, so that they get compared by name \ - instead of by pointer. */ \ - builtin_define ("__GXX_MERGED_TYPEINFO_NAMES=0"); \ - builtin_define ("__GXX_TYPEINFO_EQUALITY_INLINE=0"); \ } \ while (0) @@ -115,8 +109,8 @@ /* If ELF is the default format, we should not use /lib/elf. */ #undef LINK_SPEC -/*#define LINK_SPEC "%{!o*:-o %b} -m elf_m68k_haiku -shared -no-undefined -Bsymbolic %{nostart:-e 0}"*/ -#define LINK_SPEC "%{!o*:-o %b} -m m68kelf -shared -no-undefined -Bsymbolic %{nostart:-e 0}" +/*#define LINK_SPEC "%{!o*:-o %b} -m elf_m68k_haiku -shared -no-undefined %{nostart:-e 0}"*/ +#define LINK_SPEC "%{!o*:-o %b} -m m68kelf -shared -no-undefined %{nostart:-e 0}" /* XXX: not sure for the rest there... */ diff --git a/gcc/gcc/config/mips/haiku.h b/gcc/gcc/config/mips/haiku.h index c4029b2..5db9078 100644 --- a/gcc/gcc/config/mips/haiku.h +++ b/gcc/gcc/config/mips/haiku.h @@ -38,15 +38,9 @@ builtin_define ("__PIC__"); \ builtin_define ("__pic__"); \ } \ - /* Haiku apparently doesn't support merging of symbols across shared \ - object boundaries. Hence we need to explicitly specify that \ - type_infos are not merged, so that they get compared by name \ - instead of by pointer. */ \ - builtin_define ("__GXX_MERGED_TYPEINFO_NAMES=0"); \ - builtin_define ("__GXX_TYPEINFO_EQUALITY_INLINE=0"); \ } \ while (0) #undef LINK_SPEC -#define LINK_SPEC "%{!o*:-o %b} -m elf_mipsel_haiku -shared -Bsymbolic %{nostart:-e 0}" +#define LINK_SPEC "%{!o*:-o %b} -m elf_mipsel_haiku -shared %{nostart:-e 0}" diff --git a/gcc/gcc/config/rs6000/haiku.h b/gcc/gcc/config/rs6000/haiku.h index d306faa..d80b05f 100644 --- a/gcc/gcc/config/rs6000/haiku.h +++ b/gcc/gcc/config/rs6000/haiku.h @@ -44,12 +44,6 @@ builtin_assert ("cpu=powerpc"); \ builtin_assert ("machine=powerpc"); \ TARGET_OS_SYSV_CPP_BUILTINS (); \ - /* Haiku apparently doesn't support merging of symbols across shared \ - object boundaries. Hence we need to explicitly specify that \ - type_infos are not merged, so that they get compared by name \ - instead of by pointer. */ \ - builtin_define ("__GXX_MERGED_TYPEINFO_NAMES=0"); \ - builtin_define ("__GXX_TYPEINFO_EQUALITY_INLINE=0"); \ } \ while (0) @@ -61,4 +55,4 @@ /* If ELF is the default format, we should not use /lib/elf. */ #undef LINK_SPEC -#define LINK_SPEC "%{!o*:-o %b} -m elf_ppc_haiku -shared -no-undefined -Bsymbolic %{nostart:-e 0}" +#define LINK_SPEC "%{!o*:-o %b} -m elf_ppc_haiku -shared -no-undefined %{nostart:-e 0}" -- gitore 0.2.2