aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Evans <dje@gnu.org>1995-03-07 17:16:54 +0000
committerDoug Evans <dje@gnu.org>1995-03-07 17:16:54 +0000
commitae8b85c2ad253791fc8059e5f90b4ec68989e290 (patch)
tree5bc0745089719310d5ed0353654f013932f85c68
parent94a8b9feee8369dc15f004c07b583bcdeb52a15f (diff)
downloadgcc-ae8b85c2ad253791fc8059e5f90b4ec68989e290.zip
gcc-ae8b85c2ad253791fc8059e5f90b4ec68989e290.tar.gz
gcc-ae8b85c2ad253791fc8059e5f90b4ec68989e290.tar.bz2
(TARGET_VERSION): Define.
(CPP_PREDEFINES): Delete sun, sparc, unix. Delete OS assertions. (ASM_SPEC): Define. (LINK_SPEC): Delete solaris stuff, this is an embedded target. (STARTFILE_SPEC, ENDFILE_SPEC): Define. From-SVN: r9127
-rw-r--r--gcc/config/sparc/sp64-elf.h81
1 files changed, 46 insertions, 35 deletions
diff --git a/gcc/config/sparc/sp64-elf.h b/gcc/config/sparc/sp64-elf.h
index 681b1b5..a373f18 100644
--- a/gcc/config/sparc/sp64-elf.h
+++ b/gcc/config/sparc/sp64-elf.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler,
for Sun SPARC-V9 on a hypothetical elf format machine.
- Copyright (C) 1994 Free Software Foundation, Inc.
+ Copyright (C) 1994, 1995 Free Software Foundation, Inc.
Contributed by Doug Evans, dje@cygnus.com.
This file is part of GNU CC.
@@ -37,6 +37,9 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "sparc/sol2.h"
+#undef TARGET_VERSION
+#define TARGET_VERSION fprintf (stderr, " (sparc64-elf)")
+
/* A v9 compiler with stack-bias, 32 bit integers and 64 bit pointers,
in a Medium/Anywhere code model environment. */
@@ -44,10 +47,12 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#define TARGET_DEFAULT \
(MASK_V9 + MASK_STACK_BIAS + MASK_MEDANY + MASK_PTR64 + MASK_HARD_QUAD + MASK_EPILOGUE + MASK_FPU)
+/* __svr4__ is used by the C library */
#undef CPP_PREDEFINES
-#define CPP_PREDEFINES \
- "-Dsun -Dsparc -Dunix -D__svr4__ -D__sparc_v9__ \
- -Asystem(unix) -Asystem(svr4) -Acpu(sparc64) -Amachine(sparc64)"
+#define CPP_PREDEFINES "\
+-D__sparc__ -D__sparc_v9__ -D__svr4__ \
+-Acpu(sparc64) -Amachine(sparc64) \
+"
#undef CPP_SPEC
#define CPP_SPEC "\
@@ -58,27 +63,31 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef MD_EXEC_PREFIX
#undef MD_STARTFILE_PREFIX
-/* Use the default (for now). */
-#undef STARTFILE_SPEC
-
-/* Use the default (for now). */
-#undef LIB_SPEC
+#undef ASM_SPEC
+#define ASM_SPEC "\
+%{V} %{v:%{!V:-V}} -s %{fpic:-K PIC} %{fPIC:-K PIC} \
+"
/* This is taken from sol2.h. */
#undef LINK_SPEC
#define LINK_SPEC "\
-%{!nostdlib:%{!r*:%{!e*:-e _start}}} \
-%{h*} %{V} %{v:%{!V:-V}} \
-%{b} %{Wl,*:%*} \
-%{static:-dn -Bstatic} \
-%{shared:-G -dy} \
-%{symbolic:-Bsymbolic -G -dy} \
-%{G:-G} \
-%{YP,*} \
-%{R*} \
-%{Qy:} %{!Qn:-Qy} \
+%{V} %{v:%{!V:-V}} \
"
+/* We need something a little simpler for the embedded environment.
+ Profiling doesn't really work yet so we just copy the default. */
+#undef STARTFILE_SPEC
+#define STARTFILE_SPEC "\
+%{!shared:%{pg:gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}} \
+crtbegin.o%s \
+"
+
+#undef ENDFILE_SPEC
+#define ENDFILE_SPEC "%{!nostartfiles:crtend.o%s}"
+
+/* Use the default (for now). */
+#undef LIB_SPEC
+
/* Unfortunately, svr4.h redefines these so we have to restore them to
their original values in sparc.h. */
/* ??? It might be possible to eventually get svr4.h to do the right thing. */
@@ -120,22 +129,24 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
/* DWARF stuff. */
-#define ASM_OUTPUT_DWARF_ADDR(FILE,LABEL) \
- do { fprintf ((FILE), "\t%s\t", UNALIGNED_LONGLONG_ASM_OP); \
- assemble_name (FILE, LABEL); \
- fprintf (FILE, "\n"); \
- } while (0)
+#define ASM_OUTPUT_DWARF_ADDR(FILE, LABEL) \
+do { \
+ fprintf ((FILE), "\t%s\t", UNALIGNED_LONGLONG_ASM_OP); \
+ assemble_name ((FILE), (LABEL)); \
+ fprintf ((FILE), "\n"); \
+} while (0)
-#define ASM_OUTPUT_DWARF_ADDR_CONST(FILE,RTX) \
- do { \
- fprintf ((FILE), "\t%s\t", UNALIGNED_LONGLONG_ASM_OP); \
- output_addr_const ((FILE), (RTX)); \
- fputc ('\n', (FILE)); \
- } while (0)
+#define ASM_OUTPUT_DWARF_ADDR_CONST(FILE, RTX) \
+do { \
+ fprintf ((FILE), "\t%s\t", UNALIGNED_LONGLONG_ASM_OP); \
+ output_addr_const ((FILE), (RTX)); \
+ fputc ('\n', (FILE)); \
+} while (0)
/* ??? Not sure if this should be 4 or 8 bytes. 4 works for now. */
-#define ASM_OUTPUT_DWARF_REF(FILE,LABEL) \
- do { fprintf ((FILE), "\t%s\t", UNALIGNED_INT_ASM_OP); \
- assemble_name (FILE, LABEL); \
- fprintf (FILE, "\n"); \
- } while (0)
+#define ASM_OUTPUT_DWARF_REF(FILE, LABEL) \
+do { \
+ fprintf ((FILE), "\t%s\t", UNALIGNED_INT_ASM_OP); \
+ assemble_name ((FILE), (LABEL)); \
+ fprintf ((FILE), "\n"); \
+} while (0)