diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7b78f124862..7f2310e5a42 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +2001-06-07 Rainer Orth + + * 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 * config/alpha/alpha.c (alpha_va_arg): Handle TFmode, TCmode args, diff --git a/gcc/config/alpha/osf.h b/gcc/config/alpha/osf.h index b6e80d02bbf..7f49585f236 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 1c336bd0670..eb4c0394064 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 . */ + +#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"