Mercurial > hg > CbC > CbC_gcc
diff gcc/config/sparc/freebsd.h @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | f6334be47118 |
children | 84e7813d76e9 |
line wrap: on
line diff
--- a/gcc/config/sparc/freebsd.h Sun Aug 21 07:07:55 2011 +0900 +++ b/gcc/config/sparc/freebsd.h Fri Oct 27 22:46:09 2017 +0900 @@ -1,6 +1,5 @@ /* Definitions for Sun SPARC64 running FreeBSD using the ELF format - Copyright (C) 2001, 2002, 2004, 2005, 2006, 2007, 2010, 2011 - Free Software Foundation, Inc. + Copyright (C) 2001-2017 Free Software Foundation, Inc. Contributed by David E. O'Brien <obrien@FreeBSD.org> and BSDi. This file is part of GCC. @@ -24,14 +23,22 @@ { "fbsd_dynamic_linker", FBSD_DYNAMIC_LINKER } /* FreeBSD needs the platform name (sparc64) defined. - Emacs needs to know if the arch is 64 or 32-bits. */ + Emacs etc needs to know if the arch is 64 or 32-bits. + This also selects which targets are available via -mcpu. */ -#undef CPP_CPU64_DEFAULT_SPEC -#define CPP_CPU64_DEFAULT_SPEC \ - "-D__sparc64__ -D__sparc_v9__ -D__sparcv9 -D__arch64__" +#undef FBSD_TARGET_CPU_CPP_BUILTINS +#define FBSD_TARGET_CPU_CPP_BUILTINS() \ + do \ + { \ + builtin_define ("__sparc64__"); \ + builtin_define ("__sparc__"); \ + builtin_define ("__sparc_v9__"); \ + builtin_define ("__sparcv9"); \ + } \ + while (0) #undef ASM_SPEC -#define ASM_SPEC "%{fpic|fPIC|fpie|fPIE:-K PIC} %(asm_cpu)" +#define ASM_SPEC "%{" FPIE_OR_FPIC_SPEC ":-K PIC} %(asm_cpu)" #define LINK_SPEC "%(link_arch) \ %{!mno-relax:%{!r:-relax}} \ @@ -64,19 +71,8 @@ #undef LONG_DOUBLE_TYPE_SIZE #define LONG_DOUBLE_TYPE_SIZE (TARGET_LONG_DOUBLE_128 ? 128 : 64) -/* Define this to set long double type size to use in libgcc2.c, which can - not depend on target_flags. */ -#if defined(__arch64__) || defined(__LONG_DOUBLE_128__) -#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 128 -#else -#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 64 -#endif - /* Definitions for 64-bit SPARC running systems with ELF. */ -#undef TARGET_VERSION -#define TARGET_VERSION fprintf (stderr, " (FreeBSD/sparc64 ELF)"); - #define TARGET_ELF 1 /* XXX */ @@ -93,31 +89,7 @@ #undef SPARC_DEFAULT_CMODEL #define SPARC_DEFAULT_CMODEL CM_MEDLOW -#define ENABLE_EXECUTE_STACK \ - static int need_enable_exec_stack; \ - static void check_enabling(void) __attribute__ ((constructor)); \ - static void check_enabling(void) \ - { \ - extern int sysctlbyname(const char *, void *, size_t *, void *, size_t);\ - int prot = 0; \ - size_t len = sizeof(prot); \ - \ - sysctlbyname ("kern.stackprot", &prot, &len, NULL, 0); \ - if (prot != 7) \ - need_enable_exec_stack = 1; \ - } \ - extern void __enable_execute_stack (void *); \ - void __enable_execute_stack (void *addr) \ - { \ - if (!need_enable_exec_stack) \ - return; \ - else { \ - /* 7 is PROT_READ | PROT_WRITE | PROT_EXEC */ \ - if (mprotect (addr, TRAMPOLINE_SIZE, 7) < 0) \ - perror ("mprotect of trampoline code"); \ - } \ - } - +#define HAVE_ENABLE_EXECUTE_STACK /************************[ Assembler stuff ]********************************/ @@ -152,9 +124,16 @@ /* #define DWARF_OFFSET_SIZE PTR_SIZE */ +#ifdef HAVE_AS_TLS +#undef TARGET_SUN_TLS +#undef TARGET_GNU_TLS +#define TARGET_SUN_TLS 0 +#define TARGET_GNU_TLS 1 +#endif + #undef ENDFILE_SPEC #define ENDFILE_SPEC \ - "%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} " \ + "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} " \ FBSD_ENDFILE_SPEC /* We use GNU ld so undefine this so that attribute((init_priority)) works. */