--- gcc/config/i386/sco.h 2018/04/24 18:10:27 1.1 +++ gcc/config/i386/sco.h 2018/04/24 18:22:59 1.1.1.3 @@ -16,6 +16,11 @@ #undef TARGET_DEFAULT #define TARGET_DEFAULT 0201 +/* Let's guess that the SCO software FPU emulator can't handle + 80-bit XFmode insns, so don't generate them. */ +#undef LONG_DOUBLE_TYPE_SIZE +#define LONG_DOUBLE_TYPE_SIZE 64 + /* Use crt1.o as a startup file and crtn.o as a closing file. */ #undef STARTFILE_SPEC @@ -33,7 +38,7 @@ /* Specify predefined symbols in preprocessor. */ #undef CPP_PREDEFINES -#define CPP_PREDEFINES "-Dunix -Di386 -DM_UNIX -DM_I386 -DM_COFF -DM_WORDSWAP" +#define CPP_PREDEFINES "-Dunix -Di386 -DM_UNIX -DM_I386 -DM_COFF -DM_WORDSWAP -Asystem(unix) -Asystem(svr3) -Acpu(i386) -Amachine(i386)" #undef CPP_SPEC #define CPP_SPEC "%{scointl:-DM_INTERNAT}" @@ -62,7 +67,8 @@ #undef VALUE_REGNO #define VALUE_REGNO(MODE) \ - ((TARGET_80387 && ((MODE) == SFmode || (MODE) == DFmode)) + ((TARGET_80387 + && ((MODE) == SFmode || (MODE) == DFmode || (MODE) == XFmode) ? FIRST_FLOAT_REG : 0) #undef HARD_REGNO_MODE_OK @@ -88,4 +94,7 @@ == void_type_node))) ? (SIZE) \ : 0) /* On other 386 systems, the last line looks like this: - : (aggregate_value_p (FUNTYPE)) ? GET_MODE_SIZE (Pmode) : 0) */ + : (aggregate_value_p (TREE_TYPE (FUNTYPE))) ? GET_MODE_SIZE (Pmode) : 0) */ + +/* Handle #pragma pack. */ +#define HANDLE_SYSV_PRAGMA