diff options
Diffstat (limited to 'gcc/config/mips/iris6.h')
-rw-r--r-- | gcc/config/mips/iris6.h | 48 |
1 files changed, 35 insertions, 13 deletions
diff --git a/gcc/config/mips/iris6.h b/gcc/config/mips/iris6.h index b7a6f8f64e3..c61e32096b9 100644 --- a/gcc/config/mips/iris6.h +++ b/gcc/config/mips/iris6.h @@ -39,6 +39,26 @@ Boston, MA 02111-1307, USA. */ we avoid creating such labels. */ #define DWARF2_GENERATE_TEXT_SECTION_LABEL 0 +/* wchar_t is defined differently with and without -mabi=64. */ + +#define NO_BUILTIN_WCHAR_TYPE + +#undef WCHAR_TYPE +#define WCHAR_TYPE (Pmode == DImode ? "int" : "long int") + +#undef WCHAR_TYPE_SIZE +#define WCHAR_TYPE_SIZE 32 + +/* Same for wint_t. */ + +#define NO_BUILTIN_WINT_TYPE + +#undef WINT_TYPE +#define WINT_TYPE (Pmode == DImode ? "int" : "long int") + +#undef WINT_TYPE_SIZE +#define WINT_TYPE_SIZE 32 + /* For Irix 6, -mabi=64 implies TARGET_LONG64. */ /* This is handled in override_options. */ @@ -57,10 +77,12 @@ Boston, MA 02111-1307, USA. */ #undef SUBTARGET_CPP_SIZE_SPEC #define SUBTARGET_CPP_SIZE_SPEC "\ -%{mabi=32: -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ -%{mabi=n32: -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int} \ -%{mabi=64: -D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int} \ -%{!mabi*: -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int}" +%{mabi=32|mabi=n32: -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int \ +-D__WCHAR_TYPE__=long\\ int -D__WINT_TYPE__=long\\ int} \ +%{mabi=64: -D__SIZE_TYPE__=long\\ unsigned\\ int -D__PTRDIFF_TYPE__=long\\ int \ +-D__WCHAR_TYPE__=int -D__WINT_TYPE__=int} \ +%{!mabi*: -D__SIZE_TYPE__=unsigned\\ int -D__PTRDIFF_TYPE__=int \ +-D__WCHAR_TYPE__=long\\ int -D__WINT_TYPE__=long\\ int}" /* We must make -mips3 do what -mlong64 used to do. */ /* ??? If no mipsX option given, but a mabi=X option is, then should set @@ -128,11 +150,6 @@ Boston, MA 02111-1307, USA. */ #undef MACHINE_TYPE #define MACHINE_TYPE "SGI running IRIX 6.x" -/* The Irix 6.0.1 assembler doesn't like labels in the text section, so - just avoid emitting them. */ -#define ASM_IDENTIFY_GCC(x) ((void)0) -#define ASM_IDENTIFY_LANGUAGE(x) ((void)0) - /* Irix 5 stuff that we don't need for Irix 6. */ /* ??? We do need this for the -mabi=32 switch though. */ #undef ASM_OUTPUT_UNDEF_FUNCTION @@ -209,6 +226,10 @@ Boston, MA 02111-1307, USA. */ #undef SUPPORTS_INIT_PRIORITY #define SUPPORTS_INIT_PRIORITY 0 +/* A linker error can empirically be avoided by removing duplicate + library search directories. */ +#define LINK_ELIMINATE_DUPLICATE_LDIRECTORIES 1 + #define POPSECTION_ASM_OP "\t.popsection" #define DEBUG_INFO_SECTION ".debug_info,0x7000001e,0,0,1" @@ -269,9 +290,12 @@ Boston, MA 02111-1307, USA. */ #if _MIPS_SZPTR == 64 #define CTORS_SECTION_ASM_OP "\t.section\t.ctors,1,2,0,8" #define DTORS_SECTION_ASM_OP "\t.section\t.dtors,1,2,0,8" +#define EH_FRAME_SECTION_ASM_OP "\t.section\t.eh_frame,1,2,0,8" #else /* _MIPS_SZPTR != 64 */ #define CTORS_SECTION_ASM_OP "\t.section\t.ctors,1,2,0,4" #define DTORS_SECTION_ASM_OP "\t.section\t.dtors,1,2,0,4" +#define EH_FRAME_SECTION_ASM_OP "\t.section\t.eh_frame,1,2,0,4" + #endif /* _MIPS_SZPTR == 64 */ #else /* ! (defined (CRT_BEGIN) || defined (CRT_END)) */ @@ -281,12 +305,10 @@ Boston, MA 02111-1307, USA. */ (Pmode == DImode ? "\t.section\t.ctors,1,2,0,8" : "\t.section\t.ctors,1,2,0,4") #define DTORS_SECTION_ASM_OP \ (Pmode == DImode ? "\t.section\t.dtors,1,2,0,8" : "\t.section\t.dtors,1,2,0,4") +#define EH_FRAME_SECTION_ASM_OP \ + (Pmode == DImode ? "\t.section\t.eh_frame,1,2,0,8" : "\t.section\t.eh_frame,1,2,0,4") #endif /* defined (CRT_BEGIN) || defined (CRT_END) */ -/* dwarf2out will handle padding this data properly. We definitely don't - want it 8-byte aligned on n32. */ -#define EH_FRAME_SECTION_ASM_OP "\t.section\t.eh_frame,1,2,0,1" - /* A default list of other sections which we might be "in" at any given time. For targets that use additional sections (e.g. .tdesc) you should override this definition in the target-specific file which |