install.texi (sco3.2v5): Document new --with-gnu-as flag.
authorRobert Lipe <robertl@dgii.com>
Thu, 2 Jul 1998 08:13:44 +0000 (08:13 +0000)
committerRobert Lipe <robertl@gcc.gnu.org>
Thu, 2 Jul 1998 08:13:44 +0000 (08:13 +0000)
* 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

gcc/ChangeLog
gcc/config/i386/sco5.h
gcc/config/i386/sco5gas.h [new file with mode: 0644]
gcc/config/i386/t-sco5gas [new file with mode: 0644]
gcc/configure.in
gcc/install.texi

index ac34888..2724be4 100644 (file)
@@ -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
index 70d1bdd..d656eb9 100644 (file)
@@ -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 (file)
index 0000000..de3e5d5
--- /dev/null
@@ -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 (file)
index 0000000..6aa15d2
--- /dev/null
@@ -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
index 9a6ed54..661d8b0 100644 (file)
@@ -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
index d5b6d1c..06572c8 100644 (file)
@@ -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.