aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Earnshaw <erich@gnu.org>1993-10-03 16:33:02 +0000
committerRichard Earnshaw <erich@gnu.org>1993-10-03 16:33:02 +0000
commit44d971f540431d11b8a02d7590dfb789762f08df (patch)
tree6fa8246e56897425f84e2bfe13abe696b00b1c56 /gcc
parentff9940b0157fcda551e107ade4107291605fc285 (diff)
downloadgcc-44d971f540431d11b8a02d7590dfb789762f08df.zip
gcc-44d971f540431d11b8a02d7590dfb789762f08df.tar.gz
gcc-44d971f540431d11b8a02d7590dfb789762f08df.tar.bz2
Initial revision
From-SVN: r5565
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/arm/riscix.h116
-rw-r--r--gcc/config/arm/riscix1-1.h92
-rw-r--r--gcc/config/arm/rix-gas.h38
3 files changed, 246 insertions, 0 deletions
diff --git a/gcc/config/arm/riscix.h b/gcc/config/arm/riscix.h
new file mode 100644
index 0000000..6ccb761
--- /dev/null
+++ b/gcc/config/arm/riscix.h
@@ -0,0 +1,116 @@
+/* Definitions of target machine for GNU compiler. ARM RISCiX version.
+ Copyright (C) 1993 Free Software Foundation, Inc.
+ Contributed by Richard Earnshaw (rwe11@cl.cam.ac.uk), based on original
+ work by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
+ and Martin Simmons (@harleqn.co.uk).
+
+This file is part of GNU CC.
+
+GNU CC 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.
+
+GNU CC 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 GNU CC; see the file COPYING. If not, write to
+the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+/* Translation to find startup files. On RISCiX boxes, gcrt0.o is in
+ /usr/lib. */
+#define STARTFILE_SPEC \
+ "%{pg:/usr/lib/gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}"
+
+#ifndef CPP_PREDEFINES
+#define CPP_PREDEFINES \
+ "-Darm -Driscix -Dunix -Asystem(unix) -Acpu(arm) -Amachine(arm)"
+#endif
+#if 0
+#define CPP_PREDEFINES "-Darm -Driscos -Acpu(arm) -Amachine(arm)"
+#endif
+
+#ifndef CPP_SPEC
+#define CPP_SPEC "%{m6:-D__arm6__} \
+ %{mbsd:%{pedantic:%e-mbsd and -pedantic incompatible} -D_BSD_C} \
+ %{mxopen:%{mbsd:%e-mbsd and -mxopen incompatible} \
+ %{pedantic:%e-mxopen and -pedantic incompatible} -D_XOPEN_C} \
+ %{!mbsd:%{!mxopen:%{!ansi: -D_BSD_C}}}"
+#endif
+
+/* RISCiX has some wierd symbol name munging, that is done to the object module
+ after assembly, which enables multiple libraries to be supported within
+ one (possibly shared) library. It basically changes the symbol name of
+ certain symbols (for example _bcopy is converted to _$bcopy if using BSD)
+ Symrename's parameters are determined as follows:
+ -mno-symrename Don't run symrename
+ -mbsd symrename -BSD <file>
+ -mxopen symrename -XOPEN <file>
+ -ansi symrename - <file>
+ <none> symrename -BSD <file>
+ */
+
+#ifndef ASM_FINAL_SPEC
+#if !defined (CROSS_COMPILER)
+#define ASM_FINAL_SPEC "\
+%{!mno-symrename: \
+ \n /usr/bin/symrename \
+ -%{mbsd:%{ansi:%e-mbsd and -ansi incompatible}BSD}\
+%{mxopen:%{mbsd:%e-mbsd and -mxopen incompatible}\
+%{ansi:%e-mxopen and -ansi incompatible}XOPEN}\
+%{!mbsd:%{!mxopen:%{!ansi:BSD}}} %{c:%{o*:%*}%{!o*:%b.o}}%{!c:%U.o}}"
+#endif
+#endif
+
+/* None of these is actually used in cc1, so they modify bit 31 */
+#define ARM_EXTRA_TARGET_SWITCHES \
+{"bsd", 0x80000000}, {"xopen", 0x80000000}, {"no-symrename", 0x80000000},
+
+
+
+/* Run-time Target Specification. */
+#define TARGET_VERSION \
+ fputs (" (ARM/RISCiX)", stderr);
+
+/* This is used in ASM_FILE_START */
+#define ARM_OS_NAME "RISCiX"
+
+#ifdef riscos
+#define TARGET_WHEN_DEBUGGING 3
+#else
+#define TARGET_WHEN_DEBUGGING 1
+#endif
+
+/* 'char' is signed by default on RISCiX, unsigned on RISCOS. */
+#ifdef riscos
+#define DEFAULT_SIGNED_CHAR 0
+#else
+#define DEFAULT_SIGNED_CHAR 1
+#endif
+
+/* Define this if the target system supports the function atexit form the
+ ANSI C standard. If this is not defined, and INIT_SECTION_ASM_OP is not
+ defined, a default exit function will be provided to support C++.
+ The man page only describes on_exit, but atexit is also there. */
+#define HAVE_ATEXIT 1
+/* Some systems use __main in a way incompatible with its use in gcc, in these
+ cases use the macros NAME__MAIN to give a quoted symbol and SYMBOL__MAIN to
+ give the same symbol without quotes for an alternative entry point. You
+ must define both, or niether. */
+#ifndef NAME__MAIN
+#define NAME__MAIN "__gccmain"
+#define SYMBOL__MAIN __gccmain
+#endif
+
+#include "arm/arm.h"
+
+/* The native RISCiX assembler does not support stabs of any kind; because
+ the native assembler is not used by the compiler, Acorn didn't feel it was
+ necessary to put them in! */
+
+#ifdef DBX_DEBUGGING_INFO
+#undef DBX_DEBUGGING_INFO
+#endif
diff --git a/gcc/config/arm/riscix1-1.h b/gcc/config/arm/riscix1-1.h
new file mode 100644
index 0000000..8a12c29
--- /dev/null
+++ b/gcc/config/arm/riscix1-1.h
@@ -0,0 +1,92 @@
+/* Definitions of target machine for GNU compiler. ARM RISCiX 1.1x version.
+ Copyright (C) 1993 Free Software Foundation, Inc.
+ Contributed by Richard Earnshaw (rwe11@cl.cam.ac.uk), based on original
+ work by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
+ and Martin Simmons (@harleqn.co.uk).
+
+This file is part of GNU CC.
+
+GNU CC 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.
+
+GNU CC 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 GNU CC; see the file COPYING. If not, write to
+the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+/* RISCix 1.1x is basically the same as 1.2x except that it doesn't have
+ symrename or atexit. */
+
+/* Translation to find startup files. On RISCiX boxes, gcrt0.o is in
+ /usr/lib. */
+#define STARTFILE_SPEC \
+ "%{pg:/usr/lib/gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}"
+
+#ifndef CPP_PREDEFINES
+#define CPP_PREDEFINES "-Darm -Driscix -Dunix -Asystem(unix) -Acpu(arm) -Amachine(arm)"
+#endif
+
+#ifndef CPP_SPEC
+#define CPP_SPEC "%{m6:-D__arm6__} %{!ansi: -D_BSD_C}"
+#endif
+
+/* Riscix 1.1 doesn't have X/OPEN support, so only accept -mbsd (but ignore
+ it).
+ By not having -mxopen and -mno-symrename, we get warning messages,
+ but everything still compiles. */
+/* None of these is actually used in cc1, so they modify bit 31 */
+#define ARM_EXTRA_TARGET_SWITCHES \
+{"bsd", 0x80000000},
+
+
+
+/* Run-time Target Specification. */
+#define TARGET_VERSION \
+ fputs (" (ARM/RISCiX)", stderr);
+
+/* This is used in ASM_FILE_START */
+#define ARM_OS_NAME "RISCiX"
+
+#ifdef riscos
+#define TARGET_WHEN_DEBUGGING 3
+#else
+#define TARGET_WHEN_DEBUGGING 1
+#endif
+
+/* 'char' is signed by default on RISCiX, unsigned on RISCOS. */
+#ifdef riscos
+#define DEFAULT_SIGNED_CHAR 0
+#else
+#define DEFAULT_SIGNED_CHAR 1
+#endif
+
+/* Define this if the target system supports the function atexit form the
+ ANSI C standard. If this is not defined, and INIT_SECTION_ASM_OP is not
+ defined, a default exit function will be provided to support C++.
+ The man page only describes on_exit, but atexit is also there.
+ This seems to be missing in early versions. */
+/*#define HAVE_ATEXIT 1 */
+/* Some systems use __main in a way incompatible with its use in gcc, in these
+ cases use the macros NAME__MAIN to give a quoted symbol and SYMBOL__MAIN to
+ give the same symbol without quotes for an alternative entry point. You
+ must define both, or niether. */
+#ifndef NAME__MAIN
+#define NAME__MAIN "__gccmain"
+#define SYMBOL__MAIN __gccmain
+#endif
+
+#include "arm/arm.h"
+
+/* The native RISCiX assembler does not support stabs of any kind; because
+ the native assembler is not used by the compiler, Acorn didn't feel it was
+ necessary to put them in! */
+
+#ifdef DBX_DEBUGGING_INFO
+#undef DBX_DEBUGGING_INFO
+#endif
diff --git a/gcc/config/arm/rix-gas.h b/gcc/config/arm/rix-gas.h
new file mode 100644
index 0000000..7431e91
--- /dev/null
+++ b/gcc/config/arm/rix-gas.h
@@ -0,0 +1,38 @@
+/* Definitions of target machine for GNU compiler. ARM RISCiX(stabs) version.
+ Copyright (C) 1993 Free Software Foundation, Inc.
+ Contributed by Richard Earnshaw (rwe11@cl.cam.ac.uk), based on original
+ work by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
+ and Martin Simmons (@harleqn.co.uk).
+
+This file is part of GNU CC.
+
+GNU CC 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.
+
+GNU CC 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 GNU CC; see the file COPYING. If not, write to
+the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+#include "arm/riscix.h"
+
+/* The native RISCiX assembler does not support stabs of any kind; because
+ the native assembler is not used by the compiler, Acorn didn't feel it was
+ necessary to put them in!
+ However, this file assumes that we have an assembler that does have stabs,
+ so we put them back in. */
+
+#define DBX_DEBUGGING_INFO
+
+/* Unfortunately dbx doesn't understand these */
+#define DEFAULT_GDB_EXTENSIONS 0
+/* RISCiX dbx doesn't accept xrefs */
+#define DBX_NO_XREFS 1
+/* dbx wants lbracs before variables */
+/* #define DBX_LBRAC_FIRST 1*/