OSDN Git Service

* alpha/osf5.h (CPP_XFLOAT_SPEC): Override default definition.
authorro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 7 Jun 2001 17:04:51 +0000 (17:04 +0000)
committerro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 7 Jun 2001 17:04:51 +0000 (17:04 +0000)
(ASM_OLDAS_SPEC): Likewise.

* alpha/osf.h (CPP_XFLOAT_SPEC): Define.
(CPP_SUBTARGET_SPEC): Use it.
(ASM_OLDAS_SPEC): Define.
(ASM_SPEC): Use it.
(SUBTARGET_EXTRA_SPECS): Define, declare the new specs above.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@42971 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/alpha/osf.h
gcc/config/alpha/osf5.h

index 7b78f12..7f2310e 100644 (file)
@@ -1,5 +1,16 @@
 2001-06-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
 
+       * alpha/osf5.h (CPP_XFLOAT_SPEC): Override default definition.
+       (ASM_OLDAS_SPEC): Likewise.
+
+       * alpha/osf.h (CPP_XFLOAT_SPEC): Define.
+       (CPP_SUBTARGET_SPEC): Use it.
+       (ASM_OLDAS_SPEC): Define.
+       (ASM_SPEC): Use it.
+       (SUBTARGET_EXTRA_SPECS): Define, declare the new specs above.
+
+2001-06-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
        * config/alpha/alpha.c (alpha_va_arg): Handle TFmode, TCmode args,
        passed by reference.
 
index b6e80d0..7f49585 100644 (file)
@@ -36,13 +36,18 @@ Boston, MA 02111-1307, USA.  */
 -Dunix -D__osf__ -D_LONGLONG -DSYSTYPE_BSD \
 -D_SYSTYPE_BSD -Asystem=unix -Asystem=xpg4"
 
+/* Tru64 UNIX V5 requires additional definitions for 16 byte long double
+   support.  Empty by default.  */
+
+#define CPP_XFLOAT_SPEC ""
+
 /* Accept DEC C flags for multithreaded programs.  We use _PTHREAD_USE_D4
    instead of PTHREAD_USE_D4 since both have the same effect and the former
    doesn't invade the users' namespace.  */
 
 #undef CPP_SUBTARGET_SPEC
 #define CPP_SUBTARGET_SPEC \
-"%{pthread|threads:-D_REENTRANT} %{threads:-D_PTHREAD_USE_D4}"
+"%{pthread|threads:-D_REENTRANT} %{threads:-D_PTHREAD_USE_D4} %(cpp_xfloat)"
 
 /* Under OSF4, -p and -pg require -lprof1, and -lprof1 requires -lpdf.  */
 
@@ -79,10 +84,14 @@ Boston, MA 02111-1307, USA.  */
   ASM_OUTPUT_SOURCE_FILENAME (FILE, main_input_filename);      \
 }
 
+/* Tru64 UNIX V5.1 requires a special as flag.  Empty by default.  */
+
+#define ASM_OLDAS_SPEC ""
+
 /* No point in running CPP on our assembler output.  */
 #if ((TARGET_DEFAULT | TARGET_CPU_DEFAULT) & MASK_GAS) != 0
 /* Don't pass -g to GNU as, because some versions don't accept this option.  */
-#define ASM_SPEC "%{malpha-as:-g} -nocpp %{pg}"
+#define ASM_SPEC "%{malpha-as:-g %(asm_oldas)} -nocpp %{pg}"
 #else
 /* In OSF/1 v3.2c, the assembler by default does not output file names which
    causes mips-tfile to fail.  Passing -g to the assembler fixes this problem.
@@ -91,7 +100,7 @@ Boston, MA 02111-1307, USA.  */
    if the user does not specify -g.  If we don't pass -g, then mips-tfile
    will need to be fixed to work in this case.  Pass -O0 since some
    optimization are broken and don't help us anyway.  */
-#define ASM_SPEC "%{!mgas:-g} -nocpp %{pg} -O0"
+#define ASM_SPEC "%{!mgas:-g %(asm_oldas)} -nocpp %{pg} -O0"
 #endif
 
 /* Specify to run a post-processor, mips-tfile after the assembler
@@ -120,6 +129,11 @@ Boston, MA 02111-1307, USA.  */
 
 #endif
 
+#undef SUBTARGET_EXTRA_SPECS
+#define SUBTARGET_EXTRA_SPECS          \
+  { "cpp_xfloat", CPP_XFLOAT_SPEC },   \
+  { "asm_oldas", ASM_OLDAS_SPEC }
+
 /* Indicate that we have a stamp.h to use.  */
 #ifndef CROSS_COMPILE
 #define HAVE_STAMP_H 1
index 1c336bd..eb4c039 100644 (file)
@@ -1,5 +1,5 @@
 /* Definitions of target machine for GNU compiler, for DEC Alpha on Tru64 5.
-   Copyright (C) 2000 Free Software Foundation, Inc.
+   Copyright (C) 2000, 2001 Free Software Foundation, Inc.
 
    This file is part of GNU CC.
 
 
 #undef LONG_DOUBLE_TYPE_SIZE
 #define LONG_DOUBLE_TYPE_SIZE  128
+
+/* Tru64 UNIX V5 has a 16 byte long double type and requires __X_FLOAT to be
+   defined to get the appropriate prototypes for the long double functions
+   in <math.h>.  */
+
+#undef CPP_XFLOAT_SPEC
+#define CPP_XFLOAT_SPEC "-D__X_FLOAT"
+
+/* In Tru64 UNIX V5.1, Compaq introduced a new assembler
+   (/usr/lib/cmplrs/cc/adu) which currently (versions between 3.04.29 and
+   3.04.32) breaks mips-tfile.  Passing the undocumented -oldas flag reverts
+   to using the old assembler (/usr/lib/cmplrs/cc/as[01]).
+
+   The V5.0 and V5.0A assemblers silently ignore -oldas, so it can be
+   specified here.
+
+   It is clearly not desirable to depend on this undocumented flag, and
+   Compaq wants -oldas to go away soon, but until they have released a
+   new adu that works with mips-tfile, this is the only option.  */
+
+#undef ASM_OLDAS_SPEC
+#define ASM_OLDAS_SPEC "-oldas"