aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRobert Lipe <robertl@dgii.com>1998-07-02 08:13:44 +0000
committerRobert Lipe <robertl@gcc.gnu.org>1998-07-02 08:13:44 +0000
commitf7c9c2bb24b9c4d88bf7b0fb26930fd4283a81d3 (patch)
tree7296df950e18a2a58cd7c62c02dbfda9470f8a6e /gcc
parentc92293e702e7076d8e0f1edb8734b68aacf9af73 (diff)
downloadgcc-f7c9c2bb24b9c4d88bf7b0fb26930fd4283a81d3.zip
gcc-f7c9c2bb24b9c4d88bf7b0fb26930fd4283a81d3.tar.gz
gcc-f7c9c2bb24b9c4d88bf7b0fb26930fd4283a81d3.tar.bz2
install.texi (sco3.2v5): Document new --with-gnu-as flag.
* install.texi (sco3.2v5): Document new --with-gnu-as flag. * config/i386/sco5.h (JUMP_TABLES_IN_TEXT_SECTION): Defined as in other targets. (USE_GAS): Conditionalize away native assembler usage. * config/i386/sco5gas.h: New file. * config/i386/t-sco5gas: New file. * configure.in (ix86-sco3.2v5*): Use new files if --with-gnu-as From-SVN: r20890
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/config/i386/sco5.h26
-rw-r--r--gcc/config/i386/sco5gas.h24
-rw-r--r--gcc/config/i386/t-sco5gas16
-rw-r--r--gcc/configure.in8
-rw-r--r--gcc/install.texi12
6 files changed, 86 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ac34888..2724be4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+Thu Jul 2 10:11:47 1998 Robert Lipe <robertl@dgii.com>
+
+ * install.texi (sco3.2v5): Document new --with-gnu-as flag.
+ * config/i386/sco5.h (JUMP_TABLES_IN_TEXT_SECTION): Defined as
+ in other targets.
+ (USE_GAS): Conditionalize away native assembler usage.
+ * config/i386/sco5gas.h: New file.
+ * config/i386/t-sco5gas: New file.
+ * configure.in (ix86-sco3.2v5*): Use new files if --with-gnu-as
+
Thu Jul 2 08:20:00 1998 Catherine Moore <clm@cygnus.com>
* haifa-sched.c (alloc_EXPR_LIST): Change to use
diff --git a/gcc/config/i386/sco5.h b/gcc/config/i386/sco5.h
index 70d1bdd..d656eb9 100644
--- a/gcc/config/i386/sco5.h
+++ b/gcc/config/i386/sco5.h
@@ -653,7 +653,7 @@ dtors_section () \
(current_function_calls_setjmp || current_function_calls_longjmp))
#undef JUMP_TABLES_IN_TEXT_SECTION
-#define JUMP_TABLES_IN_TEXT_SECTION 1
+#define JUMP_TABLES_IN_TEXT_SECTION (TARGET_ELF && flag_pic)
#undef LOCAL_LABEL_PREFIX
#define LOCAL_LABEL_PREFIX \
@@ -777,19 +777,29 @@ dtors_section () \
SCO also allows you to compile, link and generate either ELF or COFF
binaries. With gcc, unlike the SCO compiler, the default is ELF.
- Specify -mcoff to gcc to produce elf binaries. -fpic will get the
+ Specify -mcoff to gcc to produce COFF binaries. -fpic will get the
assembler and linker to produce PIC code.
*/
/* Set up assembler flags for PIC and ELF compilations */
#undef ASM_SPEC
+
+#if USE_GAS
+ /* Leave ASM_SPEC undefined so we pick up the master copy from gcc.c
+ * Undef MD_EXEC_PREFIX becuase we don't know where GAS is, but it's not
+ * likely in /usr/ccs/bin/
+ */
+#undef MD_EXEC_PREFIX
+#else
+
#define ASM_SPEC \
- "-b %{!mcoff:elf}%{mcoff:coff \
- %{static:%e-static not valid with -mcoff} \
- %{shared:%e-shared not valid with -mcoff} \
- %{symbolic:%e-symbolic not valid with -mcoff}} \
- %{Ym,*} %{Yd,*} %{Wa,*:%*} \
- %{!mcoff:-E%{Xa:a}%{!Xa:%{Xc:c}%{!Xc:%{Xk:k}%{!Xk:%{Xt:t}%{!Xt:a}}}},%{ansi:ansi}%{!ansi:%{posix:posix}%{!posix:%{Xpg4:xpg4}%{!Xpg4:%{Xpg4plus:XPG4PLUS}%{!Xpg4plus:%{Xods30:ods30}%{!Xods30:XPG4PLUS}}}}},ELF %{Qn:} %{!Qy:-Qn}}"
+ "-b %{!mcoff:elf}%{mcoff:coff \
+ %{static:%e-static not valid with -mcoff} \
+ %{shared:%e-shared not valid with -mcoff} \
+ %{symbolic:%e-symbolic not valid with -mcoff}} \
+ %{Ym,*} %{Yd,*} %{Wa,*:%*} \
+ %{!mcoff:-E%{Xa:a}%{!Xa:%{Xc:c}%{!Xc:%{Xk:k}%{!Xk:%{Xt:t}%{!Xt:a}}}},%{ansi:ansi}%{!ansi:%{posix:posix}%{!posix:%{Xpg4:xpg4}%{!Xpg4:%{Xpg4plus:XPG4PLUS}%{!Xpg4plus:%{Xods30:ods30}%{!Xods30:XPG4PLUS}}}}},ELF %{Qn:} %{!Qy:-Qn}}"
+#endif
/* Use crt1.o as a startup file and crtn.o as a closing file. */
diff --git a/gcc/config/i386/sco5gas.h b/gcc/config/i386/sco5gas.h
new file mode 100644
index 0000000..de3e5d5
--- /dev/null
+++ b/gcc/config/i386/sco5gas.h
@@ -0,0 +1,24 @@
+/* Definitions for Intel x86 running SCO OpenServer, running GNU assembler
+ Copyright (C) 1998 Free Software Foundation, Inc.
+
+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. */
+
+
+/* Just set a single flag we can test for inside of sco5.h and include it. */
+
+#define USE_GAS 1
diff --git a/gcc/config/i386/t-sco5gas b/gcc/config/i386/t-sco5gas
new file mode 100644
index 0000000..6aa15d2
--- /dev/null
+++ b/gcc/config/i386/t-sco5gas
@@ -0,0 +1,16 @@
+# The pushl in CTOR initialization interferes with frame pointer elimination.
+CRTSTUFF_T_CFLAGS = -fPIC -fno-omit-frame-pointer
+CRTSTUFF_T_CFLAGS_S = -mcoff -fno-omit-frame-pointer
+
+#
+# I am still a little unsure of the multilib architecture. The following
+# 4 lines are based on advice from meissner@cygnus.com.
+#
+MULTILIB_OPTIONS = fPIC
+MULTILIB_DIRNAMES = pic
+MULTILIB_EXCEPTIONS = *fPIC*
+MULTILIB_MATCHES = fPIC=fpic
+MULTILIB_EXTRA_OPTS =
+
+LIBGCC=stmp-multilib
+INSTALL_LIBGCC=install-multilib
diff --git a/gcc/configure.in b/gcc/configure.in
index 9a6ed54..661d8b0 100644
--- a/gcc/configure.in
+++ b/gcc/configure.in
@@ -997,7 +997,13 @@ for machine in $build $host $target; do
fixincludes=fixinc.sco
install_headers_dir=install-headers-cpio
tm_file=i386/sco5.h
- tmake_file=i386/t-sco5
+ if [[ x$gas = xyes ]]
+ then
+ tm_file="i386/sco5gas.h ${tm_file}"
+ tmake_file=i386/t-sco5gas
+ else
+ tmake_file=i386/t-sco5
+ fi
extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
;;
i[[34567]]86-*-sco3.2v4*) # 80386 running SCO 3.2v4 system
diff --git a/gcc/install.texi b/gcc/install.texi
index d5b6d1c..06572c8 100644
--- a/gcc/install.texi
+++ b/gcc/install.texi
@@ -990,7 +990,7 @@ Use this configuration for SCO release 3.2 version 4.
@item i386-*-sco3.2v5*
Use this for the SCO OpenServer Release family including 5.0.0, 5.0.2,
-5.0.4, Internet FastStart 1.0, and Internet FastStart 1.1.
+5.0.4, 5.0.5, Internet FastStart 1.0, and Internet FastStart 1.1.
GNU CC can generate either ELF or COFF binaries. ELF is the default.
To get COFF output, you must specify @samp{-mcoff}) on the command line.
@@ -998,6 +998,16 @@ To get COFF output, you must specify @samp{-mcoff}) on the command line.
For 5.0.0 and 5.0.2, you must install TLS597 from ftp.sco.com/TLS.
5.0.4 and later do not require this patch.
+The native SCO assembler that is provided with the OS at no charge
+is normally required. If, however, you must be able to use the GNU
+assembler (perhaps you have complex asms) you must configure this
+package @samp{--with-gnu-as}. To do this, install (cp or symlink)
+gcc/as to your copy of the GNU assembler. You must use a recent version
+of GNU binutils; version 2.9.1 seems to work well. If you select this
+option, you will be unable to build COFF images. Trying to do so will
+result in non-obvious failures. In general, the "--with-gnu-as" option
+isn't as well tested as the native assembler.
+
@emph{NOTE:} You must follow the instructions about invoking
@samp{make bootstrap} because the native OpenServer compiler builds
a @file{cc1plus} that will not correctly parse many valid C++ programs.