aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRainer Orth <ro@TechFak.Uni-Bielefeld.DE>2001-06-07 17:04:51 +0000
committerRainer Orth <ro@gcc.gnu.org>2001-06-07 17:04:51 +0000
commit5076b0ead93634134a9037d90ef107367adbe69d (patch)
tree058f5561ae33b80a0be9e0a3c99496a5a7bcd0ec
parent09e983244e5589b9777ed719e615c5704f163282 (diff)
downloadgcc-5076b0ead93634134a9037d90ef107367adbe69d.zip
gcc-5076b0ead93634134a9037d90ef107367adbe69d.tar.gz
gcc-5076b0ead93634134a9037d90ef107367adbe69d.tar.bz2
osf5.h (CPP_XFLOAT_SPEC): Override default definition.
* 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. From-SVN: r42971
-rw-r--r--gcc/ChangeLog11
-rw-r--r--gcc/config/alpha/osf.h20
-rw-r--r--gcc/config/alpha/osf5.h24
3 files changed, 51 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7b78f12..7f2310e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/alpha/osf.h b/gcc/config/alpha/osf.h
index b6e80d0..7f49585 100644
--- a/gcc/config/alpha/osf.h
+++ b/gcc/config/alpha/osf.h
@@ -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
diff --git a/gcc/config/alpha/osf5.h b/gcc/config/alpha/osf5.h
index 1c336bd..eb4c039 100644
--- a/gcc/config/alpha/osf5.h
+++ b/gcc/config/alpha/osf5.h
@@ -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.
@@ -20,3 +20,25 @@
#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"