summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorGeoff Keating <geoffk@cygnus.com>2000-10-18 19:57:54 +0000
committerGeoffrey Keating <geoffk@gcc.gnu.org>2000-10-18 19:57:54 +0000
commit4c2c5712af14f6d1b8f1c6da6ba7813ac7705563 (patch)
treeb057fdbe6c9a08df053a493df67446cfc45b5bfe /gcc
parent6bcedb4e1cdc77c336e1742cdcff7f89ecbbb660 (diff)
downloadgcc-4c2c5712af14f6d1b8f1c6da6ba7813ac7705563.tar.gz
t-netware: Bring in from the Red Hat tree.
2000-10-18 Geoffrey Keating <geoffk@cygnus.com> David V. Henkel-Wallace <gumby@cygnus.com> * config/i386/t-netware: Bring in from the Red Hat tree. * config/i386/netware.h: Likewise. * config/netware.h: Likewise. * config/rs6000/netware.h: Delete. * configure.in: Add i[34567]86-*-netware. * configure: Hand-edit to match configure.in change. Co-Authored-By: David V. Henkel-Wallace <gumby@cygnus.com> From-SVN: r36941
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/config/i386/netware.h38
-rw-r--r--gcc/config/i386/t-netware5
-rw-r--r--gcc/config/netware.h151
-rw-r--r--gcc/config/rs6000/netware.h271
-rwxr-xr-xgcc/configure4
-rw-r--r--gcc/configure.in6
7 files changed, 214 insertions, 271 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 88c5ee60195..605ab537b61 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2000-10-18 Geoffrey Keating <geoffk@cygnus.com>
+ David V. Henkel-Wallace <gumby@cygnus.com>
+
+ * config/i386/t-netware: Bring in from the Red Hat tree.
+ * config/i386/netware.h: Likewise.
+ * config/netware.h: Likewise.
+ * config/rs6000/netware.h: Delete.
+ * configure.in: Add i[34567]86-*-netware.
+ * configure: Hand-edit to match configure.in change.
+
2000-10-18 Mark Mitchell <mark@codesourcery.com>
* c-common.h (flag_no_builtin): Declare.
diff --git a/gcc/config/i386/netware.h b/gcc/config/i386/netware.h
new file mode 100644
index 00000000000..c8cc6487d07
--- /dev/null
+++ b/gcc/config/i386/netware.h
@@ -0,0 +1,38 @@
+/* Core target definitions for GNU compiler for Intel 80386 running Netware 4.
+ and using stabs-in-elf for the debugging format.
+ Copyright (C) 1993, 1994 Free Software Foundation, Inc.
+
+ Written by David V. Henkel-Wallace (gumby@cygnus.com)
+
+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 "i386/sysv4.h" /* Build on the base i386 SVR4 configuration */
+#include "netware.h" /* Then add netware-specific goo. */
+
+#undef TARGET_VERSION
+#define TARGET_VERSION fprintf (stderr, " (i386 Netware 4)");
+
+/* These surely require augmentation */
+#undef CPP_PREDEFINES
+#define CPP_PREDEFINES \
+ "-DAPX386 -D__i386__ -D__netware__ -Asystem(netware) -Acpu(i386) -Amachine(i386)"
+
+#undef WCHAR_TYPE
+#define WCHAR_TYPE "short unsigned int"
+
+#undef WCHAR_TYPE_SIZE
+#define WCHAR_TYPE_SIZE 16
diff --git a/gcc/config/i386/t-netware b/gcc/config/i386/t-netware
new file mode 100644
index 00000000000..68fe92fe9d4
--- /dev/null
+++ b/gcc/config/i386/t-netware
@@ -0,0 +1,5 @@
+LIBGCC1 = libgcc1.null
+CROSS_LIBGCC1 = libgcc1.null
+
+# Our header files are supposed to be correct, nein?
+STMP_FIXPROTO =
diff --git a/gcc/config/netware.h b/gcc/config/netware.h
new file mode 100644
index 00000000000..58386a1fd14
--- /dev/null
+++ b/gcc/config/netware.h
@@ -0,0 +1,151 @@
+/* netware.h -- operating system specific defines to be used when
+ targeting GCC for some generic NetWare 4 system.
+ Copyright (C) 1993, 1994 Free Software Foundation, Inc.
+
+ Written by David V. Henkel-Wallace (gumby@cygnus.com)
+
+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. */
+
+/* We don't actually need any of these; the MD_ vars are ignored
+ anyway for cross-compilers, and the other specs won't get picked up
+ 'coz the user is supposed to do ld -r (hmm, perhaps that should be
+ the default). In any case, setting them thus will catch some
+ common user errors. */
+
+#undef MD_EXEC_PREFIX
+#undef MD_STARTFILE_PREFIX
+
+#undef LIB_SPEC
+#define LIB_SPEC ""
+
+/* Kinda useless, but what the hell */
+#undef LINK_SPEC
+#define LINK_SPEC "%{h*} %{V} %{v:%{!V:-V}} \
+ %{b} %{Wl,*:%*} \
+ %{Qy:} %{!Qn:-Qy}"
+
+#undef STARTFILE_SPEC
+#define STARTFILE_SPEC ""
+
+#undef ENDFILE_SPEC
+#define ENDFILE_SPEC ""
+
+#undef RELATIVE_PREFIX_NOT_LINKDIR
+#undef LIBGCC_SPEC
+
+/* set debugging info */
+#define DBX_DEBUGGING_INFO
+#undef SDB_DEBUGGING_INFO
+#undef DWARF_DEBUGGING_INFO
+#undef XCOFF_DEBUGGING_INFO
+#undef PREFERRED_DEBUGGING_TYPE
+#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
+
+/* Support const sections and the ctors and dtors sections for g++.
+ Note that there appears to be two different ways to support const
+ sections at the moment. You can either #define the symbol
+ READONLY_DATA_SECTION (giving it some code which switches to the
+ readonly data section) or else you can #define the symbols
+ EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, SELECT_SECTION, and
+ SELECT_RTX_SECTION. We do both here just to be on the safe side. */
+
+#define HAVE_ATEXIT
+
+#undef HAS_INIT_SECTION
+#undef INIT_SECTION_ASM_OP
+
+#undef READONLY_DATA_SECTION
+#define READONLY_DATA_SECTION const_section
+
+#undef CONST_SECTION_ASM_OP
+#define CONST_SECTION_ASM_OP ".section\t.rodata"
+#undef CTORS_SECTION_ASM_OP
+#define CTORS_SECTION_ASM_OP ".section\t.ctors,\"x\""
+#undef DTORS_SECTION_ASM_OP
+#define DTORS_SECTION_ASM_OP ".section\t.dtors,\"x\""
+
+/* A list of other sections which the compiler might be "in" at any
+ given time. */
+
+#undef EXTRA_SECTIONS
+#define EXTRA_SECTIONS in_const, in_ctors, in_dtors
+
+/* A list of extra section function definitions. */
+
+#undef EXTRA_SECTION_FUNCTIONS
+#define EXTRA_SECTION_FUNCTIONS \
+ CONST_SECTION_FUNCTION \
+ CTORS_SECTION_FUNCTION \
+ DTORS_SECTION_FUNCTION
+
+#undef CONST_SECTION_FUNCTION
+#define CONST_SECTION_FUNCTION \
+void \
+const_section () \
+{ \
+ if (in_section != in_const) \
+ { \
+ fprintf (asm_out_file, "%s\n", CONST_SECTION_ASM_OP); \
+ in_section = in_const; \
+ } \
+}
+
+#undef CTORS_SECTION_FUNCTION
+#define CTORS_SECTION_FUNCTION \
+void \
+ctors_section () \
+{ \
+ if (in_section != in_ctors) \
+ { \
+ fprintf (asm_out_file, "%s\n", CTORS_SECTION_ASM_OP); \
+ in_section = in_ctors; \
+ } \
+}
+
+#undef DTORS_SECTION_FUNCTION
+#define DTORS_SECTION_FUNCTION \
+void \
+dtors_section () \
+{ \
+ if (in_section != in_dtors) \
+ { \
+ fprintf (asm_out_file, "%s\n", DTORS_SECTION_ASM_OP); \
+ in_section = in_dtors; \
+ } \
+}
+
+#define INT_ASM_OP ".long"
+
+/* A C statement (sans semicolon) to output an element in the table of
+ global constructors. */
+#define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \
+ do { \
+ ctors_section (); \
+ fprintf (FILE, "\t%s\t ", INT_ASM_OP); \
+ assemble_name (FILE, NAME); \
+ fprintf (FILE, "\n"); \
+ } while (0)
+
+/* A C statement (sans semicolon) to output an element in the table of
+ global destructors. */
+#define ASM_OUTPUT_DESTRUCTOR(FILE,NAME) \
+ do { \
+ dtors_section (); \
+ fprintf (FILE, "\t%s\t ", INT_ASM_OP); \
+ assemble_name (FILE, NAME); \
+ fprintf (FILE, "\n"); \
+ } while (0)
diff --git a/gcc/config/rs6000/netware.h b/gcc/config/rs6000/netware.h
deleted file mode 100644
index 880323e4724..00000000000
--- a/gcc/config/rs6000/netware.h
+++ /dev/null
@@ -1,271 +0,0 @@
-/* Core target definitions for GNU compiler
- for IBM RS/6000 PowerPC running NetWare
- Copyright (C) 1994, 1995, 1996, 1998, 2000 Free Software Foundation, Inc.
- Contributed by Cygnus Support.
-
-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, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA. */
-
-#define TARGET_AIX 0
-
-#define CPP_DEFAULT_SPEC "-D_ARCH_PPC"
-
-#define ASM_DEFAULT_SPEC "-mppc"
-
-#include "rs6000/rs6000.h"
-
-#undef TARGET_DEFAULT
-#define TARGET_DEFAULT (MASK_POWERPC | MASK_NEW_MNEMONICS)
-
-#undef PROCESSOR_DEFAULT
-#define PROCESSOR_DEFAULT PROCESSOR_PPC601
-
-/* The XCOFF support uses weird symbol suffixes, which we don't want
- for ELF. */
-
-#undef STRIP_NAME_ENCODING
-
-/* Undefine some things which are defined by the generic svr4.h. */
-
-#undef ASM_FILE_END
-#undef ASM_OUTPUT_EXTERNAL_LIBCALL
-#undef READONLY_DATA_SECTION
-#undef SELECT_SECTION
-#undef ASM_DECLARE_FUNCTION_NAME
-
-/* Use the regular svr4 definitions. */
-
-#include "svr4.h"
-#include "netware.h"
-
-/* Create a function descriptor when we declare a function name. This
- is a mixture of the ASM_DECLARE_FUNCTION_NAME macros in rs6000.h
- and svr4.h. The unmodified function name is used to name the
- descriptor. The function name with an initial `.' is used to name
- the code. */
-
-#undef ASM_DECLARE_FUNCTION_NAME
-#define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \
- do { \
- fprintf (FILE, "%s", TYPE_ASM_OP); \
- assemble_name (FILE, NAME); \
- putc (',', FILE); \
- fprintf (FILE, TYPE_OPERAND_FMT, "function"); \
- putc ('\n', FILE); \
- ASM_DECLARE_RESULT (FILE, DECL_RESULT (DECL)); \
- if (TREE_PUBLIC (DECL)) \
- { \
- fprintf (FILE, "\t.globl ."); \
- assemble_name (FILE, NAME); \
- fprintf (FILE, "\n"); \
- } \
- data_section (); \
- ASM_OUTPUT_ALIGN (FILE, 2); \
- ASM_OUTPUT_LABEL (FILE, NAME); \
- fprintf (FILE, "\t.long ."); \
- assemble_name (FILE, NAME); \
- fprintf (FILE, ", __GOT0, 0\n"); \
- text_section (); \
- fprintf (FILE, "."); \
- ASM_OUTPUT_LABEL (FILE, NAME); \
- } while (0)
-
-/* We need to override the .size output in order to put a `.' before
- the function name. */
-
-#undef ASM_DECLARE_FUNCTION_SIZE
-#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
- do { \
- if (!flag_inhibit_size_directive) \
- { \
- char label[256]; \
- static int labelno; \
- labelno++; \
- ASM_GENERATE_INTERNAL_LABEL (label, "Lfe", labelno); \
- ASM_OUTPUT_INTERNAL_LABEL (FILE, "Lfe", labelno); \
- fprintf (FILE, "%s", SIZE_ASM_OP); \
- assemble_name (FILE, (FNAME)); \
- fprintf (FILE, ","); \
- assemble_name (FILE, label); \
- fprintf (FILE, "-."); \
- assemble_name (FILE, (FNAME)); \
- putc ('\n', FILE); \
- } \
- } while (0)
-
-/* Use ELF style section commands. */
-
-#undef TEXT_SECTION_ASM_OP
-#define TEXT_SECTION_ASM_OP "\t.section\t\".text\""
-
-#undef DATA_SECTION_ASM_OP
-#define DATA_SECTION_ASM_OP "\t.section\t\".data\""
-
-/* Besides the usual ELF sections, we need a toc section. */
-
-#undef EXTRA_SECTIONS
-#define EXTRA_SECTIONS in_const, in_ctors, in_dtors, in_toc
-
-#undef EXTRA_SECTION_FUNCTIONS
-#define EXTRA_SECTION_FUNCTIONS \
- CONST_SECTION_FUNCTION \
- CTORS_SECTION_FUNCTION \
- DTORS_SECTION_FUNCTION \
- TOC_SECTION_FUNCTION
-
-#define TOC_SECTION_FUNCTION \
-void \
-toc_section () \
-{ \
- if (TARGET_MINIMAL_TOC) \
- { \
- static int toc_initialized = 0; \
- \
- if (! toc_initialized) \
- { \
- fprintf (asm_out_file, "%s\n", TOC_SECTION_ASM_OP); \
- fprintf (asm_out_file, ".LCTOC0:\n"); \
- fprintf (asm_out_file, "\t.tc .LCTOC1\n"); \
- fprintf (asm_out_file, "%s\n", MINIMAL_TOC_SECTION_ASM_OP); \
- fprintf (asm_out_file, ".LCTOC1:\n"); \
- toc_initialized = 1; \
- } \
- } \
- \
- if (in_section != in_toc) \
- { \
- fprintf (asm_out_file, "%s\n", \
- (TARGET_MINIMAL_TOC \
- ? MINIMAL_TOC_SECTION_ASM_OP \
- : TOC_SECTION_ASM_OP)); \
- in_section = in_toc; \
- } \
-}
-
-#define TOC_SECTION_ASM_OP "\t.section\t.got,\"aw\""
-#define MINIMAL_TOC_SECTION_ASM_OP "\t.section\t.got1,\"aw\""
-
-/* Use the TOC section for TOC entries. */
-
-#undef SELECT_RTX_SECTION
-#define SELECT_RTX_SECTION(MODE, X) \
-{ if (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P (X, MODE)) \
- toc_section (); \
- else \
- const_section (); \
-}
-
-/* How to renumber registers for dbx and gdb. */
-
-#define DBX_REGISTER_NUMBER(REGNO) (REGNO)
-
-/* svr4.h overrides ASM_OUTPUT_INTERNAL_LABEL. */
-
-#undef ASM_OUTPUT_INTERNAL_LABEL_PREFIX
-#define ASM_OUTPUT_INTERNAL_LABEL_PREFIX(FILE,PREFIX) \
- fprintf (FILE, ".%s", PREFIX)
-
-#undef ASM_SPEC
-#define ASM_SPEC "-u %(asm_cpu) \
-{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}"
-/* This is the end of what might become sysv4.h. */
-
-/* Enable output of DBX (stabs) debugging information when asked for it. */
-
-#define DBX_DEBUGGING_INFO
-
-/* Prefer DBX (stabs) debugging information over the native (DWARF) format. */
-
-#undef PREFERRED_DEBUGGING_TYPE
-#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
-
-/* Line numbers are relative to the current function. */
-
-#undef ASM_OUTPUT_SOURCE_LINE
-#define ASM_OUTPUT_SOURCE_LINE(file, line) \
- { static int sym_lineno = 1; \
- fprintf (file, ".stabn 68,0,%d,.LM%d-.%s\n.LM%d:\n",\
- line, sym_lineno, \
- XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0), \
- sym_lineno); \
- sym_lineno += 1; }
-
-/* But, to make this work, we have to output the stabs for the function
- name *first*... */
-
-#define DBX_FUNCTION_FIRST
-
-/* We need to output LBRAC and RBRAC lines specially to include the
- dot in from of the text symbol for a function. */
-
-#define DBX_OUTPUT_LBRAC(FILE, BUF) \
-do \
- { \
- fprintf (FILE, "%s%d,0,0,", ASM_STABN_OP, N_LBRAC); \
- assemble_name (FILE, BUF); \
- fprintf (FILE, "-."); \
- assemble_name (asmfile, \
- XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0)); \
- fprintf (asmfile, "\n"); \
- } \
-while (0)
-
-#define DBX_OUTPUT_RBRAC(FILE, BUF) \
-do \
- { \
- fprintf (FILE, "%s%d,0,0,", ASM_STABN_OP, N_RBRAC); \
- assemble_name (FILE, BUF); \
- fprintf (FILE, "-."); \
- assemble_name (asmfile, \
- XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0)); \
- fprintf (asmfile, "\n"); \
- } \
-while (0)
-
-/* We are using function descriptors, so the value of a function
- symbol is in the .data section. However, we want the stabs entry
- for that function to point at the actual function code in the .text
- section, which we get by prefixing the symbol with a dot. */
-
-#define DBX_FINISH_SYMBOL(sym) \
-do { \
- int line = 0; \
- if (use_gnu_debug_info_extensions && sym != 0) \
- line = DECL_SOURCE_LINE (sym); \
- \
- fprintf (asmfile, "\",%d,0,%d,", current_sym_code, line); \
- if (current_sym_addr) \
- { \
- if (TREE_CODE (sym) == FUNCTION_DECL) \
- fprintf (asmfile, "."); \
- output_addr_const (asmfile, current_sym_addr); \
- } \
- else \
- fprintf (asmfile, "%d", current_sym_value); \
- putc ('\n', asmfile); \
-} while (0)
-
-/* This is the end of what might become sysv4dbx.h. */
-
-#undef TARGET_VERSION
-#define TARGET_VERSION fprintf (stderr, " (PowerPC Netware)");
-
-/* FIXME: These should actually indicate PowerPC, when there is some
- standard way of expressing that. */
-#undef CPP_PREDEFINES
-#define CPP_PREDEFINES \
- "-DPPC D__netware__ -Asystem(netware) -Acpu(powerpc) -Amachine(powerpc)"
diff --git a/gcc/configure b/gcc/configure
index 8813b0fc05d..f1169ef7d78 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -4509,6 +4509,10 @@ for machine in $build $host $target; do
thread_file='mach'
fi
;;
+ i[34567]86-*-netware) # Intel 80386's running netware
+ tm_file=i386/netware.h
+ tmake_file=i386/t-netware
+ ;;
i[34567]86-sequent-bsd*) # 80386 from Sequent
use_collect2=yes
if test x$gas = xyes
diff --git a/gcc/configure.in b/gcc/configure.in
index ff55d73e53e..1e96471b06c 100644
--- a/gcc/configure.in
+++ b/gcc/configure.in
@@ -1398,6 +1398,12 @@ changequote([,])dnl
fi
;;
changequote(,)dnl
+ i[34567]86-*-netware) # Intel 80386's running netware
+changequote([,])dnl
+ tm_file=i386/netware.h
+ tmake_file=i386/t-netware
+ ;;
+changequote(,)dnl
i[34567]86-sequent-bsd*) # 80386 from Sequent
changequote([,])dnl
use_collect2=yes