diff options
author | Robert Lipe <robertl@dgii.com> | 1998-07-02 08:13:44 +0000 |
---|---|---|
committer | Robert Lipe <robertl@gcc.gnu.org> | 1998-07-02 08:13:44 +0000 |
commit | f7c9c2bb24b9c4d88bf7b0fb26930fd4283a81d3 (patch) | |
tree | 7296df950e18a2a58cd7c62c02dbfda9470f8a6e /gcc | |
parent | c92293e702e7076d8e0f1edb8734b68aacf9af73 (diff) | |
download | gcc-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/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/config/i386/sco5.h | 26 | ||||
-rw-r--r-- | gcc/config/i386/sco5gas.h | 24 | ||||
-rw-r--r-- | gcc/config/i386/t-sco5gas | 16 | ||||
-rw-r--r-- | gcc/configure.in | 8 | ||||
-rw-r--r-- | gcc/install.texi | 12 |
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. |