re PR bootstrap/19364 (embedded sparc does not bootstrap)

PR bootstrap/19364
	* config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
	sparc/elf.h, add sparc/sp-elf.h.
	(sparc-*-rtems*): Likewise.
	(sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
	tm-dwarf2.h, add sparc/sp-elf.h.
	(sparc86x-*-elf): Likewise.
	(sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
	* config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
	TARGET_OS_CPP_BUILTINS.
	* config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
	* config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
	Undefine it.
	* config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
	* config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
	(SWITCH_TAKES_ARG): Likewise.
	(LOCAL_LABEL_PREFIX): Likewise.
	(ASM_GENERATE_INTERNAL_LABEL): Likewise.
	(TARGET_N_FORMAT_TYPES): Delete.
	(TARGET_FORMAT_TYPES): Likewise.
	(ASM_DECLARE_FUNCTION_SIZE): Likewise.
	* config/sparc/elf.h: Delete.
	* config/sparc/sp-elf.h: New file.

From-SVN: r94185
This commit is contained in:
Eric Botcazou 2005-01-24 22:31:52 +01:00 committed by Eric Botcazou
parent 3a2f1f0665
commit 81b4721953
9 changed files with 157 additions and 104 deletions

View File

@ -1,3 +1,29 @@
2005-01-24 Eric Botcazou <ebotcazou@libertysurf.fr>
PR bootstrap/19364
* config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
sparc/elf.h, add sparc/sp-elf.h.
(sparc-*-rtems*): Likewise.
(sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
tm-dwarf2.h, add sparc/sp-elf.h.
(sparc86x-*-elf): Likewise.
(sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
* config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
TARGET_OS_CPP_BUILTINS.
* config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
* config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
Undefine it.
* config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
* config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
(SWITCH_TAKES_ARG): Likewise.
(LOCAL_LABEL_PREFIX): Likewise.
(ASM_GENERATE_INTERNAL_LABEL): Likewise.
(TARGET_N_FORMAT_TYPES): Delete.
(TARGET_FORMAT_TYPES): Likewise.
(ASM_DECLARE_FUNCTION_SIZE): Likewise.
* config/sparc/elf.h: Delete.
* config/sparc/sp-elf.h: New file.
2005-01-24 Kazu Hirata <kazu@cs.umass.edu>
* tree-flow-inline.h (phi_arg_from_edge): Remove.

View File

@ -1889,7 +1889,7 @@ sparc64-*-openbsd*)
with_cpu=ultrasparc
;;
sparc-*-elf*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/elf.h"
tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp-elf.h"
tmake_file="sparc/t-elf sparc/t-crtfm"
extra_parts="crti.o crtn.o crtbegin.o crtend.o"
use_fixproto=yes
@ -1899,7 +1899,7 @@ sparc-*-linux*) # SPARC's running GNU/Linux, libc6
tmake_file="${tmake_file} sparc/t-crtfm"
;;
sparc-*-rtems*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/elf.h sparc/rtemself.h rtems.h"
tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h"
tmake_file="sparc/t-elf sparc/t-crtfm t-rtems"
extra_parts="crti.o crtn.o crtbegin.o crtend.o"
;;
@ -1997,19 +1997,19 @@ sparclite-*-coff*)
tmake_file=sparc/t-sparclite
;;
sparclite-*-elf*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/elf.h sparc/liteelf.h tm-dwarf2.h"
tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp-elf.h sparc/liteelf.h"
tmake_file="sparc/t-sparclite sparc/t-crtfm"
extra_parts="crtbegin.o crtend.o"
use_fixproto=yes
;;
sparc86x-*-elf*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/elf.h sparc/sp86x-elf.h tm-dwarf2.h"
tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp-elf.h sparc/sp86x-elf.h"
tmake_file="sparc/t-sp86x sparc/t-crtfm"
extra_parts="crtbegin.o crtend.o"
use_fixproto=yes
;;
sparc64-*-elf*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/sp64-elf.h tm-dwarf2.h"
tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp64-elf.h"
tmake_file="${tmake_file} sparc/t-crtfm"
extra_parts="crtbegin.o crtend.o"
use_fixproto=yes

View File

@ -1,64 +0,0 @@
/* Definitions of target machine for GCC,
for SPARC running in an embedded environment using the ELF file format.
Copyright (C) 1997, 2004 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 2, 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 COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#undef STARTFILE_SPEC
#define STARTFILE_SPEC "crt0.o%s crti.o%s crtbegin.o%s"
#undef ENDFILE_SPEC
#define ENDFILE_SPEC \
"%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
crtend.o%s crtn.o%s"
/* Use the default. */
#undef LINK_SPEC
/* Don't set the target flags, this is done by the linker script */
#undef LIB_SPEC
#define LIB_SPEC ""
/* FIXME: until fixed */
#undef LONG_DOUBLE_TYPE_SIZE
#define LONG_DOUBLE_TYPE_SIZE 64
/* This solaris2 define does not apply. */
#undef STDC_0_IN_SYSTEM_HEADERS
/* We don't want to use the Solaris2 specific long long int conversion
routines or 64-bit integer multiply and divide routines. */
#undef SUN_CONVERSION_LIBFUNCS
#define SUN_CONVERSION_LIBFUNCS 0
#undef SUN_INTEGER_MULTIPLY_64
#define SUN_INTEGER_MULTIPLY_64 0
/* Don't include Solaris-specific format checks. */
#undef TARGET_N_FORMAT_TYPES
#undef TARGET_FORMAT_TYPES
/* Don't include Solaris-specific .init / .fini support. */
#undef ASM_DECLARE_FUNCTION_SIZE
#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
do \
{ \
if (!flag_inhibit_size_directive) \
ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
} \
while (0)

View File

@ -1,5 +1,5 @@
/* Definitions of target machine for GCC, for SPARClite w/o FPU, ELF.
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2005 Free Software Foundation, Inc.
Contributed by Stan Cox (scox@cygnus.com).
This file is part of GCC.
@ -19,17 +19,17 @@ along with GCC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#undef TARGET_SUB_OS_CPP_BUILTINS
#define TARGET_SUB_OS_CPP_BUILTINS() \
#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (sparclite)");
#undef TARGET_OS_CPP_BUILTINS
#define TARGET_OS_CPP_BUILTINS() \
do \
{ \
builtin_define ("__sparclite__"); \
} \
while (0)
#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (sparclite)");
/* Enable app-regs and epilogue options. Do not enable the fpu. */
#undef TARGET_DEFAULT

View File

@ -1,5 +1,5 @@
/* Configuration file for sparc64 OpenBSD target.
Copyright (C) 1999 Free Software Foundation, Inc.
Copyright (C) 1999, 2005 Free Software Foundation, Inc.
This file is part of GCC.
@ -51,6 +51,9 @@ Boston, MA 02111-1307, USA. */
#undef MD_EXEC_PREFIX
#undef MD_STARTFILE_PREFIX
/* Inherited from sp64-elf. */
#undef NO_IMPLICIT_EXTERN_C
#undef ASM_SPEC
#define ASM_SPEC "\
%{v:-V} -s %{fpic|fPIC|fpie|fPIE:-K PIC} \

View File

@ -1,5 +1,5 @@
/* Definitions for rtems targeting a SPARC using ELF.
Copyright (C) 1996, 1997, 2000, 2002 Free Software Foundation, Inc.
Copyright (C) 1996, 1997, 2000, 2002, 2005 Free Software Foundation, Inc.
Contributed by Joel Sherrill (joel@OARcorp.com).
This file is part of GCC.
@ -20,7 +20,8 @@ the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* Target OS builtins. */
#define TARGET_SUB_OS_CPP_BUILTINS() \
#undef TARGET_OS_CPP_BUILTINS
#define TARGET_OS_CPP_BUILTINS() \
do \
{ \
builtin_define ("__rtems__"); \

83
gcc/config/sparc/sp-elf.h Normal file
View File

@ -0,0 +1,83 @@
/* Definitions of target machine for GCC,
for SPARC running in an embedded environment using the ELF file format.
Copyright (C) 2005 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 2, 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 COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (sparc-elf)")
#undef TARGET_DEFAULT
#define TARGET_DEFAULT MASK_FPU
/* Don't assume anything about the header files. */
#define NO_IMPLICIT_EXTERN_C
/* The sun bundled assembler doesn't accept -Yd, (and neither does gas).
It's safe to pass -s always, even if -g is not used. */
#undef ASM_SPEC
#define ASM_SPEC \
"%{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Wa,*:%*} -s \
%{fpic|fpie|fPIC|fPIE:-K PIC} %(asm_cpu)"
/* Use the default. */
#undef LINK_SPEC
#undef STARTFILE_SPEC
#define STARTFILE_SPEC "crt0.o%s crti.o%s crtbegin.o%s"
#undef ENDFILE_SPEC
#define ENDFILE_SPEC \
"%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
crtend.o%s crtn.o%s"
/* Don't set the target flags, this is done by the linker script */
#undef LIB_SPEC
#define LIB_SPEC ""
/* This defines which switch letters take arguments.
It is as in svr4.h but with -R added. */
#undef SWITCH_TAKES_ARG
#define SWITCH_TAKES_ARG(CHAR) \
(DEFAULT_SWITCH_TAKES_ARG(CHAR) \
|| (CHAR) == 'R' \
|| (CHAR) == 'h' \
|| (CHAR) == 'z')
#undef LOCAL_LABEL_PREFIX
#define LOCAL_LABEL_PREFIX "."
/* This is how to store into the string LABEL
the symbol_ref name of an internal numbered label where
PREFIX is the class of label and NUM is the number within the class.
This is suitable for output with `assemble_name'. */
#undef ASM_GENERATE_INTERNAL_LABEL
#define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM) \
sprintf ((LABEL), "*.L%s%ld", (PREFIX), (long)(NUM))
/* ??? Inherited from sol2.h. Probably wrong. */
#undef WCHAR_TYPE
#define WCHAR_TYPE "long int"
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE BITS_PER_WORD
/* ??? until fixed. */
#undef LONG_DOUBLE_TYPE_SIZE
#define LONG_DOUBLE_TYPE_SIZE 64

View File

@ -20,16 +20,10 @@ along with GCC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* ??? We're taking the scheme of including another file and then overriding
the values we don't like a bit too far here. The alternative is to more or
less duplicate all of svr4.h, sparc/sysv4.h, and sparc/sol2.h here
(suitably cleaned up). */
#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (sparc64-elf)")
/* A 64 bit v9 compiler in a Medium/Anywhere code model environment. */
#undef TARGET_DEFAULT
#define TARGET_DEFAULT \
(MASK_V9 + MASK_PTR64 + MASK_64BIT + MASK_HARD_QUAD \
@ -38,6 +32,9 @@ Boston, MA 02111-1307, USA. */
#undef SPARC_DEFAULT_CMODEL
#define SPARC_DEFAULT_CMODEL CM_EMBMEDANY
/* Don't assume anything about the header files. */
#define NO_IMPLICIT_EXTERN_C
/* __svr4__ is used by the C library (FIXME) */
#undef CPP_SUBTARGET_SPEC
#define CPP_SUBTARGET_SPEC "-D__svr4__"
@ -75,6 +72,15 @@ crtbegin.o%s \
/* Use the default (for now). */
#undef LIB_SPEC
/* This defines which switch letters take arguments.
It is as in svr4.h but with -R added. */
#undef SWITCH_TAKES_ARG
#define SWITCH_TAKES_ARG(CHAR) \
(DEFAULT_SWITCH_TAKES_ARG(CHAR) \
|| (CHAR) == 'R' \
|| (CHAR) == 'h' \
|| (CHAR) == 'z')
/* V9 chips can handle either endianness. */
#undef SUBTARGET_SWITCHES
#define SUBTARGET_SWITCHES \
@ -86,7 +92,19 @@ crtbegin.o%s \
#undef WORDS_BIG_ENDIAN
#define WORDS_BIG_ENDIAN (! TARGET_LITTLE_ENDIAN)
#undef LOCAL_LABEL_PREFIX
#define LOCAL_LABEL_PREFIX "."
/* This is how to store into the string LABEL
the symbol_ref name of an internal numbered label where
PREFIX is the class of label and NUM is the number within the class.
This is suitable for output with `assemble_name'. */
#undef ASM_GENERATE_INTERNAL_LABEL
#define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM) \
sprintf ((LABEL), "*.L%s%ld", (PREFIX), (long)(NUM))
/* ??? This should be 32 bits for v9 but what can we do? */
#undef WCHAR_TYPE
#define WCHAR_TYPE "short unsigned int"
@ -104,17 +122,3 @@ crtbegin.o%s \
this 0 to not confuse the branch shortening code. */
#undef JUMP_TABLES_IN_TEXT_SECTION
#define JUMP_TABLES_IN_TEXT_SECTION 0
/* Don't include Solaris-specific format checks. */
#undef TARGET_N_FORMAT_TYPES
#undef TARGET_FORMAT_TYPES
/* Don't include Solaris-specific .init / .fini support. */
#undef ASM_DECLARE_FUNCTION_SIZE
#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
do \
{ \
if (!flag_inhibit_size_directive) \
ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
} \
while (0)

View File

@ -1,5 +1,5 @@
/* Definitions of target machine for GCC, for sparclite 86x w/o FPU.
Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2000, 2005 Free Software Foundation, Inc.
Contributed by Stan Cox (scox@cygnus.com).
This file is part of GCC.
@ -19,17 +19,17 @@ along with GCC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#undef TARGET_SUB_OS_CPP_BUILTINS
#define TARGET_SUB_OS_CPP_BUILTINS() \
#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (sparclite 86x)");
#undef TARGET_OS_CPP_BUILTINS
#define TARGET_OS_CPP_BUILTINS() \
do \
{ \
builtin_define ("__sparclite86x__"); \
} \
while (0)
#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (sparclite 86x)");
/* Enable app-regs and epilogue options. Do not enable the fpu. */
#undef TARGET_DEFAULT