--- gcc/config/mips/svr3-5.h 2018/04/24 18:10:25 1.1.1.1 +++ gcc/config/mips/svr3-5.h 2018/04/24 18:22:03 1.1.1.3 @@ -19,28 +19,19 @@ the Free Software Foundation, 675 Mass A #define MIPS_SYSV -#define CPP_PREDEFINES "-Dmips -Dunix -Dhost_mips -DMIPSEB -DR3000 -DSYSTYPE_SYSV \ --D_mips -D_unix -D_host_mips -D_MIPSEB -D_R3000 -D_SYSTYPE_SYSV" +#define CPP_PREDEFINES "\ +-Dmips -Dunix -Dhost_mips -DMIPSEB -DR3000 -DSYSTYPE_SYSV \ +-D_mips -D_unix -D_host_mips -D_MIPSEB -D_R3000 -D_SYSTYPE_SYSV \ +-Asystem(unix) -Asystem(svr3) -Acpu(mips) -Amachine(mips)" #define STANDARD_INCLUDE_DIR "/sysv/usr/include" -#define CPP_SPEC "\ -%{.cc: -D__LANGUAGE_C_PLUS_PLUS -D_LANGUAGE_C_PLUS_PLUS} \ -%{.cxx: -D__LANGUAGE_C_PLUS_PLUS -D_LANGUAGE_C_PLUS_PLUS} \ -%{.C: -D__LANGUAGE_C_PLUS_PLUS -D_LANGUAGE_C_PLUS_PLUS} \ -%{.m: -D__LANGUAGE_OBJECTIVE_C -D_LANGUAGE_OBJECTIVE_C} \ -%{.S: -D__LANGUAGE_ASSEMBLY -D_LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY}} \ -%{!.S: -D__LANGUAGE_C -D_LANGUAGE_C %{!ansi:-DLANGUAGE_C}}" - #define LINK_SPEC "\ -%{G*} \ -%{!mgas: \ - %{EB} %{!EB:-EB} \ - %{EL: %e-EL not supported} \ - %{mips1} %{mips2} %{mips3} %{bestGnum} \ - %{shared} %{non_shared} %{call_shared} %{no_archive} %{exact_version} \ - %{!shared: %{!non_shared: %{!call_shared: -non_shared}}} \ - -systype /sysv/ }" +%{G*} %{EB} %{EL} %{mips1} %{mips2} %{mips3} \ +%{bestGnum} %{shared} %{non_shared} \ +%{call_shared} %{no_archive} %{exact_version} \ +%{!shared: %{!non_shared: %{!call_shared: -non_shared}}} \ +-systype /sysv/ " #define LIB_SPEC "%{p:-lprof1} %{pg:-lprof1} -lc crtn.o%s" @@ -60,6 +51,12 @@ the Free Software Foundation, 675 Mass A #include #include +/* In at least 5.0 and 5.01, there is no _SC_PAGE_SIZE macro, only a + _SC_PAGESIZE macro. */ +#ifdef _SC_PAGESIZE +#define _SC_PAGE_SIZE _SC_PAGESIZE +#endif + #ifdef _SC_PAGE_SIZE #define getpagesize() sysconf(_SC_PAGE_SIZE) @@ -72,3 +69,19 @@ the Free Software Foundation, 675 Mass A #define TARGET_MEM_FUNCTIONS #include "mips/mips.h" + +/* Some assemblers have a bug that causes backslash escaped chars in .ascii + to be misassembled, so we just completely avoid it. */ +#undef ASM_OUTPUT_ASCII +#define ASM_OUTPUT_ASCII(FILE,PTR,LEN) \ +do { \ + unsigned char *s; \ + int i; \ + for (i = 0, s = (unsigned char *)(PTR); i < (LEN); s++, i++) \ + { \ + if ((i % 8) == 0) \ + fputs ("\n\t.byte\t", (FILE)); \ + fprintf ((FILE), "%s0x%x", (i%8?",":""), (unsigned)*s); \ + } \ + fputs ("\n", (FILE)); \ +} while (0)