mirror of git://gcc.gnu.org/git/gcc.git
Simplify Solaris 2 configuration
* config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
* config/sol2.h: ... here.
* config/sol2-10.h: Remove.
* config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
(WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
(DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
(LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
(LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
* config/sol2.h: ... here.
(SECTION_NAME_FORMAT): Don't redefine.
(STARTFILE_ARCH32_SPEC): Rename to ...
(STARTFILE_ARCH_SPEC): ... this.
(ASM_OUTPUT_ALIGNED_COMMON): Move ...
* config/sparc/sol2.h: ... here.
(SECTION_NAME_FORMAT): Don't undef.
* config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
(SUBTARGET_EXTRA_SPECS): Remove.
* config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
* config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
(MD_STARTFILE_PREFIX): Remove.
(SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
(ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
(ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
(ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
(ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
(USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
* config/i386/sol2.h: ... here.
(TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
* config/i386/sol2-bi.h: Remove.
* config/sol2.h (MD_STARTFILE_PREFIX): Remove.
(LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
* config/i386/t-sol2-64: Rename to ...
* config/i386/t-sol2: ... this.
* config/sparc/t-sol2-64: Rename to ...
* config/sparc/t-sol2: ... this.
* config.gcc (*-*-solaris2*): Split sol2_tm_file into
sol2_tm_file_head, sol2_tm_file_tail.
Include ${cpu_type}/sol2.h before sol2.h.
Remove sol2-10.h.
(i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
Reflect i386/t-sol2-64 renaming.
(sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
Reflect sparc/t-sol2-64 renaming.
From-SVN: r209931
This commit is contained in:
parent
a32776927e
commit
2cf03b11f7
|
|
@ -1,3 +1,55 @@
|
|||
2014-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||
|
||||
* config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
|
||||
* config/sol2.h: ... here.
|
||||
* config/sol2-10.h: Remove.
|
||||
|
||||
* config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
|
||||
(WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
|
||||
(DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
|
||||
(LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
|
||||
(LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
|
||||
* config/sol2.h: ... here.
|
||||
(SECTION_NAME_FORMAT): Don't redefine.
|
||||
(STARTFILE_ARCH32_SPEC): Rename to ...
|
||||
(STARTFILE_ARCH_SPEC): ... this.
|
||||
(ASM_OUTPUT_ALIGNED_COMMON): Move ...
|
||||
* config/sparc/sol2.h: ... here.
|
||||
(SECTION_NAME_FORMAT): Don't undef.
|
||||
* config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
|
||||
(SUBTARGET_EXTRA_SPECS): Remove.
|
||||
* config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
|
||||
|
||||
* config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
|
||||
(MD_STARTFILE_PREFIX): Remove.
|
||||
(SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
|
||||
(ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
|
||||
(ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
|
||||
(ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
|
||||
(ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
|
||||
(USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
|
||||
* config/i386/sol2.h: ... here.
|
||||
(TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
|
||||
* config/i386/sol2-bi.h: Remove.
|
||||
* config/sol2.h (MD_STARTFILE_PREFIX): Remove.
|
||||
(LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
|
||||
|
||||
* config/i386/t-sol2-64: Rename to ...
|
||||
* config/i386/t-sol2: ... this.
|
||||
* config/sparc/t-sol2-64: Rename to ...
|
||||
* config/sparc/t-sol2: ... this.
|
||||
|
||||
* config.gcc (*-*-solaris2*): Split sol2_tm_file into
|
||||
sol2_tm_file_head, sol2_tm_file_tail.
|
||||
Include ${cpu_type}/sol2.h before sol2.h.
|
||||
Remove sol2-10.h.
|
||||
(i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
|
||||
i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
|
||||
Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
|
||||
Reflect i386/t-sol2-64 renaming.
|
||||
(sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
|
||||
Reflect sparc/t-sol2-64 renaming.
|
||||
|
||||
2014-04-30 Richard Biener <rguenther@suse.de>
|
||||
|
||||
* passes.c (execute_function_todo): Move TODO_verify_stmts
|
||||
|
|
|
|||
|
|
@ -808,8 +808,9 @@ case ${target} in
|
|||
*-*-solaris2*)
|
||||
# i?86-*-solaris2* needs to insert headers between cpu default and
|
||||
# Solaris 2 specific ones.
|
||||
sol2_tm_file="dbxelf.h elfos.h ${cpu_type}/sysv4.h sol2.h ${cpu_type}/sol2.h"
|
||||
sol2_tm_file="${sol2_tm_file} sol2-10.h"
|
||||
sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
|
||||
sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
|
||||
sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
|
||||
use_gcc_stdint=wrap
|
||||
if test x$gnu_ld = xyes; then
|
||||
tm_file="usegld.h ${tm_file}"
|
||||
|
|
@ -1515,14 +1516,13 @@ i[34567]86-*-rtems*)
|
|||
tmake_file="${tmake_file} i386/t-rtems"
|
||||
;;
|
||||
i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
|
||||
tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file}"
|
||||
# Set default arch_32 to pentium4, tune_32 to generic like the other
|
||||
# i386 targets, although config.guess defaults to i386-pc-solaris2*.
|
||||
with_arch_32=${with_arch_32:-pentium4}
|
||||
with_tune_32=${with_tune_32:-generic}
|
||||
tm_file="${tm_file} i386/x86-64.h i386/sol2-bi.h sol2-bi.h"
|
||||
tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
|
||||
tm_defines="${tm_defines} TARGET_BI_ARCH=1"
|
||||
tmake_file="$tmake_file i386/t-sol2-64"
|
||||
tmake_file="$tmake_file i386/t-sol2"
|
||||
need_64bit_isa=yes
|
||||
if test x$with_cpu = x; then
|
||||
if test x$with_cpu_64 = x; then
|
||||
|
|
@ -2661,7 +2661,7 @@ sparc-*-netbsdelf*)
|
|||
tmake_file="${tmake_file} sparc/t-sparc"
|
||||
;;
|
||||
sparc*-*-solaris2*)
|
||||
tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sol2-bi.h sparc/tso.h"
|
||||
tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
|
||||
case ${target} in
|
||||
sparc64-*-* | sparcv9-*-*)
|
||||
tm_file="sparc/default-64.h ${tm_file}"
|
||||
|
|
@ -2670,7 +2670,7 @@ sparc*-*-solaris2*)
|
|||
test x$with_cpu != x || with_cpu=v9
|
||||
;;
|
||||
esac
|
||||
tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2-64"
|
||||
tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
|
||||
;;
|
||||
sparc-wrs-vxworks)
|
||||
tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
|
||||
|
|
|
|||
|
|
@ -1,109 +0,0 @@
|
|||
/* Definitions of target machine for GCC, for bi-arch Solaris 2/x86.
|
||||
Copyright (C) 2004-2014 Free Software Foundation, Inc.
|
||||
Contributed by CodeSourcery, LLC.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GCC; see the file COPYING3. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* Override i386/sol2.h version: return 8-byte vectors in MMX registers if
|
||||
possible, matching Sun Studio 12 Update 1+ compilers and other x86
|
||||
targets. */
|
||||
#undef TARGET_SUBTARGET_DEFAULT
|
||||
#define TARGET_SUBTARGET_DEFAULT \
|
||||
(MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS)
|
||||
|
||||
#define SUBTARGET_OPTIMIZATION_OPTIONS \
|
||||
{ OPT_LEVELS_1_PLUS, OPT_momit_leaf_frame_pointer, NULL, 1 }
|
||||
|
||||
/* GNU as understands --32 and --64, but the native Solaris
|
||||
assembler requires -xarch=generic or -xarch=generic64 instead. */
|
||||
#ifdef USE_GAS
|
||||
#define ASM_CPU32_DEFAULT_SPEC "--32"
|
||||
#define ASM_CPU64_DEFAULT_SPEC "--64"
|
||||
#else
|
||||
#define ASM_CPU32_DEFAULT_SPEC "-xarch=generic"
|
||||
#define ASM_CPU64_DEFAULT_SPEC "-xarch=generic64"
|
||||
#endif
|
||||
|
||||
#undef ASM_CPU_SPEC
|
||||
#define ASM_CPU_SPEC "%(asm_cpu_default)"
|
||||
|
||||
/* Don't let i386/x86-64.h override i386/sol2.h version. Still cannot use
|
||||
-K PIC with the Solaris 10+ assembler, it gives many warnings:
|
||||
Absolute relocation is used for symbol "<symbol>" */
|
||||
#undef ASM_SPEC
|
||||
#define ASM_SPEC ASM_SPEC_BASE
|
||||
|
||||
/* We do not need to search a special directory for startup files. */
|
||||
#undef MD_STARTFILE_PREFIX
|
||||
|
||||
#define DEFAULT_ARCH32_P !TARGET_64BIT_DEFAULT
|
||||
|
||||
#define ARCH64_SUBDIR "amd64"
|
||||
|
||||
#ifdef USE_GLD
|
||||
/* Since binutils 2.21, GNU ld supports new *_sol2 emulations to strictly
|
||||
follow the Solaris 2 ABI. Prefer them if present. */
|
||||
#ifdef HAVE_LD_SOL2_EMULATION
|
||||
#define ARCH32_EMULATION "elf_i386_sol2"
|
||||
#define ARCH64_EMULATION "elf_x86_64_sol2"
|
||||
#else
|
||||
#define ARCH32_EMULATION "elf_i386"
|
||||
#define ARCH64_EMULATION "elf_x86_64"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#undef ASM_COMMENT_START
|
||||
#define ASM_COMMENT_START "/"
|
||||
|
||||
/* The native Solaris assembler can't calculate the difference between
|
||||
symbols in different sections, which causes problems for -fPIC jump
|
||||
tables in .rodata. */
|
||||
#ifndef HAVE_AS_IX86_DIFF_SECT_DELTA
|
||||
#undef JUMP_TABLES_IN_TEXT_SECTION
|
||||
#define JUMP_TABLES_IN_TEXT_SECTION 1
|
||||
|
||||
/* The native Solaris assembler cannot handle the SYMBOL-. syntax, but
|
||||
requires SYMBOL@rel/@rel64 instead. */
|
||||
#define ASM_OUTPUT_DWARF_PCREL(FILE, SIZE, LABEL) \
|
||||
do { \
|
||||
fputs (integer_asm_op (SIZE, FALSE), FILE); \
|
||||
assemble_name (FILE, LABEL); \
|
||||
fputs (SIZE == 8 ? "@rel64" : "@rel", FILE); \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
/* As in sol2.h, override the default from i386/x86-64.h to work around
|
||||
Sun as TLS bug. */
|
||||
#undef ASM_OUTPUT_ALIGNED_COMMON
|
||||
#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \
|
||||
do \
|
||||
{ \
|
||||
if (TARGET_SUN_TLS \
|
||||
&& in_section \
|
||||
&& ((in_section->common.flags & SECTION_TLS) == SECTION_TLS)) \
|
||||
switch_to_section (bss_section); \
|
||||
x86_elf_aligned_common (FILE, NAME, SIZE, ALIGN); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
#define USE_IX86_FRAME_POINTER 1
|
||||
#define USE_X86_64_FRAME_POINTER 1
|
||||
|
||||
#undef NO_PROFILE_COUNTERS
|
||||
|
||||
#undef MCOUNT_NAME
|
||||
#define MCOUNT_NAME "_mcount"
|
||||
|
|
@ -18,12 +18,8 @@ You should have received a copy of the GNU General Public License
|
|||
along with GCC; see the file COPYING3. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* Augment i386/unix.h version to return 8-byte vectors in memory, matching
|
||||
Sun Studio compilers until version 12, the only ones supported on
|
||||
Solaris 9. */
|
||||
#undef TARGET_SUBTARGET_DEFAULT
|
||||
#define TARGET_SUBTARGET_DEFAULT \
|
||||
(MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_VECT8_RETURNS)
|
||||
#define SUBTARGET_OPTIMIZATION_OPTIONS \
|
||||
{ OPT_LEVELS_1_PLUS, OPT_momit_leaf_frame_pointer, NULL, 1 }
|
||||
|
||||
/* Old versions of the Solaris assembler can not handle the difference of
|
||||
labels in different sections, so force DW_EH_PE_datarel if so. */
|
||||
|
|
@ -50,27 +46,46 @@ along with GCC; see the file COPYING3. If not see
|
|||
#undef TARGET_SUN_TLS
|
||||
#define TARGET_SUN_TLS 1
|
||||
|
||||
#undef SIZE_TYPE
|
||||
#define SIZE_TYPE "unsigned int"
|
||||
|
||||
#undef PTRDIFF_TYPE
|
||||
#define PTRDIFF_TYPE "int"
|
||||
|
||||
/* Solaris 2/Intel as chokes on #line directives before Solaris 10. */
|
||||
#undef CPP_SPEC
|
||||
#define CPP_SPEC "%{,assembler-with-cpp:-P} %(cpp_subtarget)"
|
||||
|
||||
#define ASM_CPU_DEFAULT_SPEC ""
|
||||
/* GNU as understands --32 and --64, but the native Solaris
|
||||
assembler requires -xarch=generic or -xarch=generic64 instead. */
|
||||
#ifdef USE_GAS
|
||||
#define ASM_CPU32_DEFAULT_SPEC "--32"
|
||||
#define ASM_CPU64_DEFAULT_SPEC "--64"
|
||||
#else
|
||||
#define ASM_CPU32_DEFAULT_SPEC "-xarch=generic"
|
||||
#define ASM_CPU64_DEFAULT_SPEC "-xarch=generic64"
|
||||
#endif
|
||||
|
||||
#define ASM_CPU_SPEC ""
|
||||
#undef ASM_CPU_SPEC
|
||||
#define ASM_CPU_SPEC "%(asm_cpu_default)"
|
||||
|
||||
/* Don't include ASM_PIC_SPEC. While the Solaris 9 assembler accepts
|
||||
-K PIC, it gives many warnings:
|
||||
R_386_32 relocation is used for symbol "<symbol>"
|
||||
/* Don't include ASM_PIC_SPEC. While the Solaris 10+ assembler accepts -K PIC,
|
||||
it gives many warnings:
|
||||
Absolute relocation is used for symbol "<symbol>"
|
||||
GNU as doesn't recognize -K at all. */
|
||||
#undef ASM_SPEC
|
||||
#define ASM_SPEC ASM_SPEC_BASE
|
||||
|
||||
#define DEFAULT_ARCH32_P !TARGET_64BIT_DEFAULT
|
||||
|
||||
#define ARCH64_SUBDIR "amd64"
|
||||
|
||||
#ifdef USE_GLD
|
||||
/* Since binutils 2.21, GNU ld supports new *_sol2 emulations to strictly
|
||||
follow the Solaris 2 ABI. Prefer them if present. */
|
||||
#ifdef HAVE_LD_SOL2_EMULATION
|
||||
#define ARCH32_EMULATION "elf_i386_sol2"
|
||||
#define ARCH64_EMULATION "elf_x86_64_sol2"
|
||||
#else
|
||||
#define ARCH32_EMULATION "elf_i386"
|
||||
#define ARCH64_EMULATION "elf_x86_64"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#undef ENDFILE_SPEC
|
||||
#define ENDFILE_SPEC \
|
||||
"%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
|
||||
|
|
@ -84,23 +99,39 @@ along with GCC; see the file COPYING3. If not see
|
|||
{ "asm_cpu", ASM_CPU_SPEC }, \
|
||||
{ "asm_cpu_default", ASM_CPU_DEFAULT_SPEC }, \
|
||||
|
||||
#undef SUBTARGET_EXTRA_SPECS
|
||||
#define SUBTARGET_EXTRA_SPECS \
|
||||
{ "startfile_arch", STARTFILE_ARCH_SPEC }, \
|
||||
{ "link_arch", LINK_ARCH_SPEC }, \
|
||||
SUBTARGET_CPU_EXTRA_SPECS
|
||||
|
||||
/* Register the Solaris-specific #pragma directives. */
|
||||
#define REGISTER_SUBTARGET_PRAGMAS() solaris_register_pragmas ()
|
||||
|
||||
#undef LOCAL_LABEL_PREFIX
|
||||
#define LOCAL_LABEL_PREFIX "."
|
||||
|
||||
/* The Solaris 10 FCS as doesn't accept "#" comments, while later versions
|
||||
do. */
|
||||
#undef ASM_COMMENT_START
|
||||
#define ASM_COMMENT_START "/"
|
||||
|
||||
/* The 32-bit Solaris assembler does not support .quad. Do not use it. */
|
||||
#ifndef HAVE_AS_IX86_QUAD
|
||||
#undef ASM_QUAD
|
||||
#endif
|
||||
|
||||
/* The native Solaris assembler can't calculate the difference between
|
||||
symbols in different sections, which causes problems for -fPIC jump
|
||||
tables in .rodata. */
|
||||
#ifndef HAVE_AS_IX86_DIFF_SECT_DELTA
|
||||
#undef JUMP_TABLES_IN_TEXT_SECTION
|
||||
#define JUMP_TABLES_IN_TEXT_SECTION 1
|
||||
|
||||
/* The native Solaris assembler cannot handle the SYMBOL-. syntax, but
|
||||
requires SYMBOL@rel/@rel64 instead. */
|
||||
#define ASM_OUTPUT_DWARF_PCREL(FILE, SIZE, LABEL) \
|
||||
do { \
|
||||
fputs (integer_asm_op (SIZE, FALSE), FILE); \
|
||||
assemble_name (FILE, LABEL); \
|
||||
fputs (SIZE == 8 ? "@rel64" : "@rel", FILE); \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
/* The Solaris assembler wants a .local for non-exported aliases. */
|
||||
#define ASM_OUTPUT_DEF_FROM_DECLS(FILE, DECL, TARGET) \
|
||||
do { \
|
||||
|
|
@ -148,6 +179,20 @@ along with GCC; see the file COPYING3. If not see
|
|||
while (0)
|
||||
#endif /* !USE_GAS */
|
||||
|
||||
/* As in sparc/sol2.h, override the default from i386/x86-64.h to work
|
||||
around Sun as TLS bug. */
|
||||
#undef ASM_OUTPUT_ALIGNED_COMMON
|
||||
#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \
|
||||
do \
|
||||
{ \
|
||||
if (TARGET_SUN_TLS \
|
||||
&& in_section \
|
||||
&& ((in_section->common.flags & SECTION_TLS) == SECTION_TLS)) \
|
||||
switch_to_section (bss_section); \
|
||||
x86_elf_aligned_common (FILE, NAME, SIZE, ALIGN); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* Output a simple call for .init/.fini. */
|
||||
#define ASM_OUTPUT_CALL(FILE, FN) \
|
||||
do \
|
||||
|
|
@ -174,6 +219,14 @@ along with GCC; see the file COPYING3. If not see
|
|||
#define DTORS_SECTION_ASM_OP "\t.section\t.dtors, \"aw\""
|
||||
#endif
|
||||
|
||||
#define USE_IX86_FRAME_POINTER 1
|
||||
#define USE_X86_64_FRAME_POINTER 1
|
||||
|
||||
#undef NO_PROFILE_COUNTERS
|
||||
|
||||
#undef MCOUNT_NAME
|
||||
#define MCOUNT_NAME "_mcount"
|
||||
|
||||
/* We do not need NT_VERSION notes. */
|
||||
#undef X86_FILE_START_VERSION_DIRECTIVE
|
||||
#define X86_FILE_START_VERSION_DIRECTIVE false
|
||||
|
|
|
|||
|
|
@ -1,24 +0,0 @@
|
|||
/* Operating system specific defines to be used when targeting GCC for any
|
||||
Solaris 2 system starting from Solaris 10.
|
||||
Copyright (C) 2006-2014 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3, or (at your option)
|
||||
any later version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GCC; see the file COPYING3. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* Solaris 10 has the float and long double forms of math functions.
|
||||
We redefine this hook so the version from elfos.h header won't be used. */
|
||||
#undef TARGET_LIBC_HAS_FUNCTION
|
||||
#define TARGET_LIBC_HAS_FUNCTION default_libc_has_function
|
||||
|
|
@ -1,135 +0,0 @@
|
|||
/* Definitions of target machine for GCC, for bi-arch Solaris 2.
|
||||
Copyright (C) 2011-2014 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free
|
||||
Software Foundation; either version 3, or (at your option) any later
|
||||
version.
|
||||
|
||||
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
Under Section 7 of GPL version 3, you are granted additional
|
||||
permissions described in the GCC Runtime Library Exception, version
|
||||
3.1, as published by the Free Software Foundation.
|
||||
|
||||
You should have received a copy of the GNU General Public License and
|
||||
a copy of the GCC Runtime Library Exception along with this program;
|
||||
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* wchar_t is called differently in <wchar.h> for 32 and 64-bit
|
||||
compilations. This is called for by SCD 2.4.1, p. 6-83, Figure 6-65
|
||||
(32-bit) and p. 6P-10, Figure 6.38 (64-bit). */
|
||||
|
||||
#undef WCHAR_TYPE
|
||||
#define WCHAR_TYPE (TARGET_64BIT ? "int" : "long int")
|
||||
|
||||
#undef WCHAR_TYPE_SIZE
|
||||
#define WCHAR_TYPE_SIZE 32
|
||||
|
||||
/* Same for wint_t. See SCD 2.4.1, p. 6-83, Figure 6-66 (32-bit). There's
|
||||
no corresponding 64-bit definition, but this is what Solaris 8
|
||||
<iso/wchar_iso.h> uses. */
|
||||
|
||||
#undef WINT_TYPE
|
||||
#define WINT_TYPE (TARGET_64BIT ? "int" : "long int")
|
||||
|
||||
#undef WINT_TYPE_SIZE
|
||||
#define WINT_TYPE_SIZE 32
|
||||
|
||||
#if DEFAULT_ARCH32_P
|
||||
#define MULTILIB_DEFAULTS { "m32" }
|
||||
#else
|
||||
#define MULTILIB_DEFAULTS { "m64" }
|
||||
#endif
|
||||
|
||||
#if DEFAULT_ARCH32_P
|
||||
#define DEF_ARCH32_SPEC(__str) "%{!m64:" __str "}"
|
||||
#define DEF_ARCH64_SPEC(__str) "%{m64:" __str "}"
|
||||
#else
|
||||
#define DEF_ARCH32_SPEC(__str) "%{m32:" __str "}"
|
||||
#define DEF_ARCH64_SPEC(__str) "%{!m32:" __str "}"
|
||||
#endif
|
||||
|
||||
#undef ASM_CPU_DEFAULT_SPEC
|
||||
#define ASM_CPU_DEFAULT_SPEC \
|
||||
(DEFAULT_ARCH32_P ? "\
|
||||
%{m64:" ASM_CPU64_DEFAULT_SPEC "} \
|
||||
%{!m64:" ASM_CPU32_DEFAULT_SPEC "} \
|
||||
" : "\
|
||||
%{m32:" ASM_CPU32_DEFAULT_SPEC "} \
|
||||
%{!m32:" ASM_CPU64_DEFAULT_SPEC "} \
|
||||
")
|
||||
|
||||
/* This should be the same as LINK_ARCH32_SPEC_BASE, except with
|
||||
ARCH64_SUBDIR appended to the paths and /usr/ccs/lib is no longer
|
||||
necessary. */
|
||||
#undef LINK_ARCH64_SPEC_BASE
|
||||
#define LINK_ARCH64_SPEC_BASE \
|
||||
"%{G:-G} \
|
||||
%{YP,*} \
|
||||
%{R*} \
|
||||
%{!YP,*:%{p|pg:-Y P,%R/usr/lib/libp/" ARCH64_SUBDIR ":%R/lib/" ARCH64_SUBDIR ":%R/usr/lib/" ARCH64_SUBDIR "} \
|
||||
%{!p:%{!pg:-Y P,%R/lib/" ARCH64_SUBDIR ":%R/usr/lib/" ARCH64_SUBDIR "}}}"
|
||||
|
||||
#undef LINK_ARCH64_SPEC
|
||||
#ifndef USE_GLD
|
||||
/* FIXME: Used to be SPARC-only. Not SPARC-specfic but for the model name! */
|
||||
#define LINK_ARCH64_SPEC \
|
||||
"%{mcmodel=medlow:-M /usr/lib/ld/" ARCH64_SUBDIR "/map.below4G} " \
|
||||
LINK_ARCH64_SPEC_BASE
|
||||
#else
|
||||
#define LINK_ARCH64_SPEC LINK_ARCH64_SPEC_BASE
|
||||
#endif
|
||||
|
||||
#ifdef USE_GLD
|
||||
#if DEFAULT_ARCH32_P
|
||||
#define ARCH_DEFAULT_EMULATION ARCH32_EMULATION
|
||||
#else
|
||||
#define ARCH_DEFAULT_EMULATION ARCH64_EMULATION
|
||||
#endif
|
||||
#define TARGET_LD_EMULATION "%{m32:-m " ARCH32_EMULATION "}" \
|
||||
"%{m64:-m " ARCH64_EMULATION "}" \
|
||||
"%{!m32:%{!m64:-m " ARCH_DEFAULT_EMULATION "}} "
|
||||
#else
|
||||
#define TARGET_LD_EMULATION ""
|
||||
#endif
|
||||
|
||||
#undef LINK_ARCH_SPEC
|
||||
#if DISABLE_MULTILIB
|
||||
#if DEFAULT_ARCH32_P
|
||||
#define LINK_ARCH_SPEC TARGET_LD_EMULATION " \
|
||||
%{m32:%(link_arch32)} \
|
||||
%{m64:%edoes not support multilib} \
|
||||
%{!m32:%{!m64:%(link_arch_default)}} \
|
||||
"
|
||||
#else
|
||||
#define LINK_ARCH_SPEC TARGET_LD_EMULATION " \
|
||||
%{m32:%edoes not support multilib} \
|
||||
%{m64:%(link_arch64)} \
|
||||
%{!m32:%{!m64:%(link_arch_default)}} \
|
||||
"
|
||||
#endif
|
||||
#else
|
||||
#define LINK_ARCH_SPEC TARGET_LD_EMULATION " \
|
||||
%{m32:%(link_arch32)} \
|
||||
%{m64:%(link_arch64)} \
|
||||
%{!m32:%{!m64:%(link_arch_default)}}"
|
||||
#endif
|
||||
|
||||
#define LINK_ARCH_DEFAULT_SPEC \
|
||||
(DEFAULT_ARCH32_P ? LINK_ARCH32_SPEC : LINK_ARCH64_SPEC)
|
||||
|
||||
#undef SUBTARGET_EXTRA_SPECS
|
||||
#define SUBTARGET_EXTRA_SPECS \
|
||||
{ "startfile_arch", STARTFILE_ARCH_SPEC }, \
|
||||
{ "link_arch32", LINK_ARCH32_SPEC }, \
|
||||
{ "link_arch64", LINK_ARCH64_SPEC }, \
|
||||
{ "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \
|
||||
{ "link_arch", LINK_ARCH_SPEC }, \
|
||||
SUBTARGET_CPU_EXTRA_SPECS
|
||||
|
|
@ -21,20 +21,25 @@ along with GCC; see the file COPYING3. If not see
|
|||
/* We are compiling for Solaris 2 now. */
|
||||
#define TARGET_SOLARIS 1
|
||||
|
||||
/* Solaris 2 (at least as of 2.5.1) uses a 32-bit wchar_t. */
|
||||
/* wchar_t is called differently in <wchar.h> for 32 and 64-bit
|
||||
compilations. This is called for by SCD 2.4.1, p. 6-83, Figure 6-65
|
||||
(32-bit) and p. 6P-10, Figure 6.38 (64-bit). */
|
||||
|
||||
#undef WCHAR_TYPE
|
||||
#define WCHAR_TYPE "long int"
|
||||
#define WCHAR_TYPE (TARGET_64BIT ? "int" : "long int")
|
||||
|
||||
#undef WCHAR_TYPE_SIZE
|
||||
#define WCHAR_TYPE_SIZE BITS_PER_WORD
|
||||
#define WCHAR_TYPE_SIZE 32
|
||||
|
||||
/* Solaris 2 uses a wint_t different from the default. This is required
|
||||
by the SCD 2.4.1, p. 6-83, Figure 6-66. */
|
||||
#undef WINT_TYPE
|
||||
#define WINT_TYPE "long int"
|
||||
/* Same for wint_t. See SCD 2.4.1, p. 6-83, Figure 6-66 (32-bit). There's
|
||||
no corresponding 64-bit definition, but this is what Solaris 8
|
||||
<iso/wchar_iso.h> uses. */
|
||||
|
||||
#undef WINT_TYPE_SIZE
|
||||
#define WINT_TYPE_SIZE BITS_PER_WORD
|
||||
#undef WINT_TYPE
|
||||
#define WINT_TYPE (TARGET_64BIT ? "int" : "long int")
|
||||
|
||||
#undef WINT_TYPE_SIZE
|
||||
#define WINT_TYPE_SIZE 32
|
||||
|
||||
#define SIG_ATOMIC_TYPE "int"
|
||||
|
||||
|
|
@ -103,6 +108,19 @@ along with GCC; see the file COPYING3. If not see
|
|||
solaris_override_options (); \
|
||||
} while (0)
|
||||
|
||||
#if DEFAULT_ARCH32_P
|
||||
#define MULTILIB_DEFAULTS { "m32" }
|
||||
#else
|
||||
#define MULTILIB_DEFAULTS { "m64" }
|
||||
#endif
|
||||
|
||||
#if DEFAULT_ARCH32_P
|
||||
#define DEF_ARCH32_SPEC(__str) "%{!m64:" __str "}"
|
||||
#define DEF_ARCH64_SPEC(__str) "%{m64:" __str "}"
|
||||
#else
|
||||
#define DEF_ARCH32_SPEC(__str) "%{m32:" __str "}"
|
||||
#define DEF_ARCH64_SPEC(__str) "%{!m32:" __str "}"
|
||||
#endif
|
||||
|
||||
/* It's safe to pass -s always, even if -g is not used. Those options are
|
||||
handled by both Sun as and GNU as. */
|
||||
|
|
@ -111,6 +129,16 @@ along with GCC; see the file COPYING3. If not see
|
|||
|
||||
#define ASM_PIC_SPEC " %{fpic|fpie|fPIC|fPIE:-K PIC}"
|
||||
|
||||
#undef ASM_CPU_DEFAULT_SPEC
|
||||
#define ASM_CPU_DEFAULT_SPEC \
|
||||
(DEFAULT_ARCH32_P ? "\
|
||||
%{m64:" ASM_CPU64_DEFAULT_SPEC "} \
|
||||
%{!m64:" ASM_CPU32_DEFAULT_SPEC "} \
|
||||
" : "\
|
||||
%{m32:" ASM_CPU32_DEFAULT_SPEC "} \
|
||||
%{!m32:" ASM_CPU64_DEFAULT_SPEC "} \
|
||||
")
|
||||
|
||||
#undef LIB_SPEC
|
||||
#define LIB_SPEC \
|
||||
"%{!symbolic:\
|
||||
|
|
@ -120,17 +148,11 @@ along with GCC; see the file COPYING3. If not see
|
|||
#ifndef CROSS_DIRECTORY_STRUCTURE
|
||||
#undef MD_EXEC_PREFIX
|
||||
#define MD_EXEC_PREFIX "/usr/ccs/bin/"
|
||||
|
||||
#undef MD_STARTFILE_PREFIX
|
||||
#define MD_STARTFILE_PREFIX "/usr/ccs/lib/"
|
||||
#endif
|
||||
|
||||
#undef STARTFILE_ARCH32_SPEC
|
||||
#define STARTFILE_ARCH32_SPEC "%{ansi:values-Xc.o%s} \
|
||||
%{!ansi:values-Xa.o%s}"
|
||||
|
||||
#undef STARTFILE_ARCH_SPEC
|
||||
#define STARTFILE_ARCH_SPEC STARTFILE_ARCH32_SPEC
|
||||
#define STARTFILE_ARCH_SPEC "%{ansi:values-Xc.o%s} \
|
||||
%{!ansi:values-Xa.o%s}"
|
||||
|
||||
/* We don't use the standard svr4 STARTFILE_SPEC because it's wrong for us. */
|
||||
#undef STARTFILE_SPEC
|
||||
|
|
@ -153,14 +175,78 @@ along with GCC; see the file COPYING3. If not see
|
|||
"%{G:-G} \
|
||||
%{YP,*} \
|
||||
%{R*} \
|
||||
%{!YP,*:%{p|pg:-Y P,%R/usr/ccs/lib/libp:%R/usr/lib/libp:%R/usr/ccs/lib:%R/lib:%R/usr/lib} \
|
||||
%{!p:%{!pg:-Y P,%R/usr/ccs/lib:%R/lib:%R/usr/lib}}}"
|
||||
%{!YP,*:%{p|pg:-Y P,%R/usr/lib/libp%R/lib:%R/usr/lib} \
|
||||
%{!p:%{!pg:-Y P,%R/lib:%R/usr/lib}}}"
|
||||
|
||||
#undef LINK_ARCH32_SPEC
|
||||
#define LINK_ARCH32_SPEC LINK_ARCH32_SPEC_BASE
|
||||
|
||||
/* This should be the same as LINK_ARCH32_SPEC_BASE, except with
|
||||
ARCH64_SUBDIR appended to the paths. */
|
||||
#undef LINK_ARCH64_SPEC_BASE
|
||||
#define LINK_ARCH64_SPEC_BASE \
|
||||
"%{G:-G} \
|
||||
%{YP,*} \
|
||||
%{R*} \
|
||||
%{!YP,*:%{p|pg:-Y P,%R/usr/lib/libp/" ARCH64_SUBDIR ":%R/lib/" ARCH64_SUBDIR ":%R/usr/lib/" ARCH64_SUBDIR "} \
|
||||
%{!p:%{!pg:-Y P,%R/lib/" ARCH64_SUBDIR ":%R/usr/lib/" ARCH64_SUBDIR "}}}"
|
||||
|
||||
#undef LINK_ARCH64_SPEC
|
||||
#ifndef USE_GLD
|
||||
/* FIXME: Used to be SPARC-only. Not SPARC-specfic but for the model name! */
|
||||
#define LINK_ARCH64_SPEC \
|
||||
"%{mcmodel=medlow:-M /usr/lib/ld/" ARCH64_SUBDIR "/map.below4G} " \
|
||||
LINK_ARCH64_SPEC_BASE
|
||||
#else
|
||||
#define LINK_ARCH64_SPEC LINK_ARCH64_SPEC_BASE
|
||||
#endif
|
||||
|
||||
#ifdef USE_GLD
|
||||
#if DEFAULT_ARCH32_P
|
||||
#define ARCH_DEFAULT_EMULATION ARCH32_EMULATION
|
||||
#else
|
||||
#define ARCH_DEFAULT_EMULATION ARCH64_EMULATION
|
||||
#endif
|
||||
#define TARGET_LD_EMULATION "%{m32:-m " ARCH32_EMULATION "}" \
|
||||
"%{m64:-m " ARCH64_EMULATION "}" \
|
||||
"%{!m32:%{!m64:-m " ARCH_DEFAULT_EMULATION "}} "
|
||||
#else
|
||||
#define TARGET_LD_EMULATION ""
|
||||
#endif
|
||||
|
||||
#undef LINK_ARCH_SPEC
|
||||
#define LINK_ARCH_SPEC LINK_ARCH32_SPEC
|
||||
#if DISABLE_MULTILIB
|
||||
#if DEFAULT_ARCH32_P
|
||||
#define LINK_ARCH_SPEC TARGET_LD_EMULATION " \
|
||||
%{m32:%(link_arch32)} \
|
||||
%{m64:%edoes not support multilib} \
|
||||
%{!m32:%{!m64:%(link_arch_default)}} \
|
||||
"
|
||||
#else
|
||||
#define LINK_ARCH_SPEC TARGET_LD_EMULATION " \
|
||||
%{m32:%edoes not support multilib} \
|
||||
%{m64:%(link_arch64)} \
|
||||
%{!m32:%{!m64:%(link_arch_default)}} \
|
||||
"
|
||||
#endif
|
||||
#else
|
||||
#define LINK_ARCH_SPEC TARGET_LD_EMULATION " \
|
||||
%{m32:%(link_arch32)} \
|
||||
%{m64:%(link_arch64)} \
|
||||
%{!m32:%{!m64:%(link_arch_default)}}"
|
||||
#endif
|
||||
|
||||
#define LINK_ARCH_DEFAULT_SPEC \
|
||||
(DEFAULT_ARCH32_P ? LINK_ARCH32_SPEC : LINK_ARCH64_SPEC)
|
||||
|
||||
#undef SUBTARGET_EXTRA_SPECS
|
||||
#define SUBTARGET_EXTRA_SPECS \
|
||||
{ "startfile_arch", STARTFILE_ARCH_SPEC }, \
|
||||
{ "link_arch32", LINK_ARCH32_SPEC }, \
|
||||
{ "link_arch64", LINK_ARCH64_SPEC }, \
|
||||
{ "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \
|
||||
{ "link_arch", LINK_ARCH_SPEC }, \
|
||||
SUBTARGET_CPU_EXTRA_SPECS
|
||||
|
||||
/* C++11 programs need -lrt for nanosleep. */
|
||||
#define TIME_LIBRARY "rt"
|
||||
|
|
@ -235,7 +321,9 @@ along with GCC; see the file COPYING3. If not see
|
|||
#define TARGET_CXX_DECL_MANGLING_CONTEXT solaris_cxx_decl_mangling_context
|
||||
|
||||
/* Solaris/x86 as and gas support unquoted section names. */
|
||||
#ifndef SECTION_NAME_FORMAT
|
||||
#define SECTION_NAME_FORMAT "%s"
|
||||
#endif
|
||||
|
||||
/* This is how to declare the size of a function. For Solaris, we output
|
||||
any .init or .fini entries here. */
|
||||
|
|
@ -249,23 +337,6 @@ along with GCC; see the file COPYING3. If not see
|
|||
} \
|
||||
while (0)
|
||||
|
||||
/* Solaris as has a bug: a .common directive in .tbss or .tdata section
|
||||
behaves as .tls_common rather than normal non-TLS .common. */
|
||||
#undef ASM_OUTPUT_ALIGNED_COMMON
|
||||
#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \
|
||||
do \
|
||||
{ \
|
||||
if (TARGET_SUN_TLS \
|
||||
&& in_section \
|
||||
&& ((in_section->common.flags & SECTION_TLS) == SECTION_TLS)) \
|
||||
switch_to_section (bss_section); \
|
||||
fprintf ((FILE), "%s", COMMON_ASM_OP); \
|
||||
assemble_name ((FILE), (NAME)); \
|
||||
fprintf ((FILE), ","HOST_WIDE_INT_PRINT_UNSIGNED",%u\n", \
|
||||
(SIZE), (ALIGN) / BITS_PER_UNIT); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
#ifndef USE_GAS
|
||||
#undef TARGET_ASM_ASSEMBLE_VISIBILITY
|
||||
#define TARGET_ASM_ASSEMBLE_VISIBILITY solaris_assemble_visibility
|
||||
|
|
@ -291,8 +362,10 @@ along with GCC; see the file COPYING3. If not see
|
|||
|
||||
#define TARGET_POSIX_IO
|
||||
|
||||
/* Solaris 10 has the float and long double forms of math functions.
|
||||
We redefine this hook so the version from elfos.h header won't be used. */
|
||||
#undef TARGET_LIBC_HAS_FUNCTION
|
||||
#define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function
|
||||
#define TARGET_LIBC_HAS_FUNCTION default_libc_has_function
|
||||
|
||||
extern GTY(()) tree solaris_pending_aligns;
|
||||
extern GTY(()) tree solaris_pending_inits;
|
||||
|
|
|
|||
|
|
@ -109,8 +109,6 @@ along with GCC; see the file COPYING3. If not see
|
|||
#define CPP_CPU64_DEFAULT_SPEC ""
|
||||
#undef ASM_CPU32_DEFAULT_SPEC
|
||||
#define ASM_CPU32_DEFAULT_SPEC "-xarch=v8plus"
|
||||
#undef ASM_CPU_DEFAULT_SPEC
|
||||
#define ASM_CPU_DEFAULT_SPEC ASM_CPU32_DEFAULT_SPEC
|
||||
#endif
|
||||
|
||||
#if TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc
|
||||
|
|
@ -120,8 +118,6 @@ along with GCC; see the file COPYING3. If not see
|
|||
#define ASM_CPU32_DEFAULT_SPEC "-xarch=v8plusa"
|
||||
#undef ASM_CPU64_DEFAULT_SPEC
|
||||
#define ASM_CPU64_DEFAULT_SPEC "-xarch=v9a"
|
||||
#undef ASM_CPU_DEFAULT_SPEC
|
||||
#define ASM_CPU_DEFAULT_SPEC ASM_CPU32_DEFAULT_SPEC
|
||||
#endif
|
||||
|
||||
#if TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3
|
||||
|
|
@ -131,8 +127,6 @@ along with GCC; see the file COPYING3. If not see
|
|||
#define ASM_CPU32_DEFAULT_SPEC "-xarch=v8plusb"
|
||||
#undef ASM_CPU64_DEFAULT_SPEC
|
||||
#define ASM_CPU64_DEFAULT_SPEC "-xarch=v9b"
|
||||
#undef ASM_CPU_DEFAULT_SPEC
|
||||
#define ASM_CPU_DEFAULT_SPEC ASM_CPU32_DEFAULT_SPEC
|
||||
#endif
|
||||
|
||||
#if TARGET_CPU_DEFAULT == TARGET_CPU_niagara
|
||||
|
|
@ -142,8 +136,6 @@ along with GCC; see the file COPYING3. If not see
|
|||
#define ASM_CPU32_DEFAULT_SPEC "-xarch=v8plusb"
|
||||
#undef ASM_CPU64_DEFAULT_SPEC
|
||||
#define ASM_CPU64_DEFAULT_SPEC "-xarch=v9b"
|
||||
#undef ASM_CPU_DEFAULT_SPEC
|
||||
#define ASM_CPU_DEFAULT_SPEC ASM_CPU32_DEFAULT_SPEC
|
||||
#endif
|
||||
|
||||
#if TARGET_CPU_DEFAULT == TARGET_CPU_niagara2
|
||||
|
|
@ -153,8 +145,6 @@ along with GCC; see the file COPYING3. If not see
|
|||
#define ASM_CPU32_DEFAULT_SPEC "-xarch=v8plusb"
|
||||
#undef ASM_CPU64_DEFAULT_SPEC
|
||||
#define ASM_CPU64_DEFAULT_SPEC "-xarch=v9b"
|
||||
#undef ASM_CPU_DEFAULT_SPEC
|
||||
#define ASM_CPU_DEFAULT_SPEC ASM_CPU32_DEFAULT_SPEC
|
||||
#endif
|
||||
|
||||
#if TARGET_CPU_DEFAULT == TARGET_CPU_niagara3
|
||||
|
|
@ -164,8 +154,6 @@ along with GCC; see the file COPYING3. If not see
|
|||
#define ASM_CPU32_DEFAULT_SPEC "-xarch=v8plus" AS_NIAGARA3_FLAG
|
||||
#undef ASM_CPU64_DEFAULT_SPEC
|
||||
#define ASM_CPU64_DEFAULT_SPEC "-xarch=v9" AS_NIAGARA3_FLAG
|
||||
#undef ASM_CPU_DEFAULT_SPEC
|
||||
#define ASM_CPU_DEFAULT_SPEC ASM_CPU32_DEFAULT_SPEC
|
||||
#endif
|
||||
|
||||
#if TARGET_CPU_DEFAULT == TARGET_CPU_niagara4
|
||||
|
|
@ -175,8 +163,6 @@ along with GCC; see the file COPYING3. If not see
|
|||
#define ASM_CPU32_DEFAULT_SPEC AS_SPARC32_FLAG AS_NIAGARA4_FLAG
|
||||
#undef ASM_CPU64_DEFAULT_SPEC
|
||||
#define ASM_CPU64_DEFAULT_SPEC AS_SPARC64_FLAG AS_NIAGARA4_FLAG
|
||||
#undef ASM_CPU_DEFAULT_SPEC
|
||||
#define ASM_CPU_DEFAULT_SPEC ASM_CPU32_DEFAULT_SPEC
|
||||
#endif
|
||||
|
||||
#undef CPP_CPU_SPEC
|
||||
|
|
@ -361,6 +347,23 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
|
|||
} \
|
||||
while (0)
|
||||
|
||||
/* Solaris as has a bug: a .common directive in .tbss or .tdata section
|
||||
behaves as .tls_common rather than normal non-TLS .common. */
|
||||
#undef ASM_OUTPUT_ALIGNED_COMMON
|
||||
#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \
|
||||
do \
|
||||
{ \
|
||||
if (TARGET_SUN_TLS \
|
||||
&& in_section \
|
||||
&& ((in_section->common.flags & SECTION_TLS) == SECTION_TLS)) \
|
||||
switch_to_section (bss_section); \
|
||||
fprintf ((FILE), "%s", COMMON_ASM_OP); \
|
||||
assemble_name ((FILE), (NAME)); \
|
||||
fprintf ((FILE), ","HOST_WIDE_INT_PRINT_UNSIGNED",%u\n", \
|
||||
(SIZE), (ALIGN) / BITS_PER_UNIT); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
#ifndef USE_GAS
|
||||
/* This is how to output an assembler line that says to advance
|
||||
the location counter to a multiple of 2**LOG bytes using the
|
||||
|
|
@ -376,7 +379,6 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
|
|||
|
||||
/* Sun as requires doublequoted section names on SPARC. While GNU as
|
||||
supports that, too, we prefer the standard variant. */
|
||||
#undef SECTION_NAME_FORMAT
|
||||
#define SECTION_NAME_FORMAT "\"%s\""
|
||||
#endif /* !USE_GAS */
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue