--- gcc/config/svr4.h 2018/04/24 17:51:38 1.1 +++ gcc/config/svr4.h 2018/04/24 17:55:17 1.1.1.2 @@ -72,7 +72,8 @@ the Free Software Foundation, 675 Mass A there are no such switches except those implemented by GCC itself. */ #define WORD_SWITCH_TAKES_ARG(STR) \ - (!strcmp (STR, "include") || !strcmp (STR, "imacros")) + (!strcmp (STR, "include") || !strcmp (STR, "imacros") \ + || !strcmp (STR, "aux-info")) /* You should redefine CPP_PREDEFINES in any file which includes this one. The definition should be appropriate for the type of target system @@ -117,7 +118,7 @@ the Free Software Foundation, 675 Mass A #undef MD_STARTFILE_PREFIX #define MD_STARTFILE_PREFIX "/usr/ccs/lib/" -/* Provide a LIB_SPEC appropropriate for svr4. Here we tack on the default +/* Provide a LIB_SPEC appropriate for svr4. Here we tack on the default standard C library (unless we are building a shared library) followed by our own magical crtend.o file (see crtstuff.c) which provides part of the support for getting C++ file-scope static object constructed before @@ -154,11 +155,12 @@ the Free Software Foundation, 675 Mass A not being done. */ #undef LINK_SPEC -#define LINK_SPEC "%{z*} %{h*} %{V} %{v:%{!V:-V}} \ - %{b} %{t} %{Wl,*:%*} \ +#define LINK_SPEC "%{h*} %{V} %{v:%{!V:-V}} \ + %{b} %{Wl,*:%*} \ %{static:-dn -Bstatic} \ %{shared:-G -dy} \ %{symbolic:-Bsymbolic -G -dy} \ + %{G:-G} \ %{YP,*} \ %{!YP,*:%{p:-Y P,/usr/ccs/lib/libp:/usr/lib/libp:/usr/ccs/lib:/usr/lib} \ %{!p:-Y P,/usr/ccs/lib:/usr/lib}} \ @@ -173,7 +175,7 @@ the Free Software Foundation, 675 Mass A The SVR4 library routines query the value of `_lib_version' at run to decide how they should behave. Specifically, they decide (based upon the value of `_lib_version') if they will act in a strictly ANSI - conformant manner or not. + conforming manner or not. */ #undef STARTFILE_SPEC @@ -186,9 +188,9 @@ the Free Software Foundation, 675 Mass A %{traditional:values-Xt.o%s} \ %{!traditional:values-Xa.o%s}}}} crtbegin.o%s" -/* Attach a sepcial .ident directive to the end of the file to identify +/* Attach a special .ident directive to the end of the file to identify the version of GCC which compiled this code. The format of the - .ident string is patterened after the ones produced by native svr4 + .ident string is patterned after the ones produced by native svr4 C compilers. */ #define ASM_FILE_END(FILE) \ @@ -248,6 +250,8 @@ do { \ #undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE BITS_PER_WORD +#define MULTIBYTE_CHARS + #undef ASM_BYTE_OP #define ASM_BYTE_OP "\t.byte" @@ -302,12 +306,12 @@ do { \ the linker seems to want the alignment of data objects to depend on their types. We do exactly that here. */ -#define BSS_ASM_OP "\t.bss" +#define BSS_ASM_OP ".bss" #undef ASM_OUTPUT_ALIGNED_LOCAL #define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN) \ do { \ - fprintf ((FILE), "%s\t%s,%u,%u\n", \ + fprintf ((FILE), "\t%s\t%s,%u,%u\n", \ BSS_ASM_OP, (NAME), (SIZE), (ALIGN) / BITS_PER_UNIT); \ } while (0) @@ -315,7 +319,7 @@ do { \ specific value in some section. This is the same for all known svr4 assemblers. */ -#define INT_ASM_OP "\t.long\t" +#define INT_ASM_OP ".long" /* This is the pseudo-op used to generate a contiguous sequence of byte values from a double-quoted string WITHOUT HAVING A TERMINATING NUL @@ -334,9 +338,9 @@ do { \ #define USE_CONST_SECTION 1 -#define CONST_SECTION_ASM_OP "\t.section\t.rodata" -#define CTORS_SECTION_ASM_OP "\t.section\t.ctors,\"a\",@progbits\n" -#define DTORS_SECTION_ASM_OP "\t.section\t.dtors,\"a\",@progbits\n" +#define CONST_SECTION_ASM_OP ".section\t.rodata" +#define CTORS_SECTION_ASM_OP ".section\t.ctors,\"a\",@progbits" +#define DTORS_SECTION_ASM_OP ".section\t.dtors,\"a\",@progbits" /* On svr4, we *do* have support for the .init section, and we can put stuff in there to be executed before `main'. We let crtstuff.c and @@ -344,7 +348,7 @@ do { \ says how to change sections to the .init section. This is the same for all know svr4 assemblers. */ -#define INIT_SECTION_ASM_OP "\t.section\t.init" +#define INIT_SECTION_ASM_OP ".section\t.init" /* 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 @@ -408,7 +412,7 @@ dtors_section () \ #define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \ do { \ ctors_section (); \ - fprintf (FILE, "%s\t ", INT_ASM_OP); \ + fprintf (FILE, "\t%s\t ", INT_ASM_OP); \ assemble_name (FILE, NAME); \ fprintf (FILE, "\n"); \ } while (0) @@ -418,7 +422,7 @@ dtors_section () \ #define ASM_OUTPUT_DESTRUCTOR(FILE,NAME) \ do { \ dtors_section (); \ - fprintf (FILE, "%s\t ", INT_ASM_OP); \ + fprintf (FILE, "\t%s\t ", INT_ASM_OP); \ assemble_name (FILE, NAME); \ fprintf (FILE, "\n"); \ } while (0) @@ -464,8 +468,8 @@ dtors_section () \ different pseudo-op names for these, they may be overridden in the file which includes this one. */ -#define TYPE_ASM_OP "\t.type" -#define SIZE_ASM_OP "\t.size" +#define TYPE_ASM_OP ".type" +#define SIZE_ASM_OP ".size" /* The following macro defines the format used to output the second operand of the .type assembler directive. Different svr4 assemblers @@ -483,7 +487,7 @@ dtors_section () \ #define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \ do { \ - fprintf (FILE, "%s\t ", TYPE_ASM_OP); \ + fprintf (FILE, "\t%s\t ", TYPE_ASM_OP); \ assemble_name (FILE, NAME); \ putc (',', FILE); \ fprintf (FILE, TYPE_OPERAND_FMT, "function"); \ @@ -495,14 +499,14 @@ dtors_section () \ #define ASM_DECLARE_OBJECT_NAME(FILE, NAME, DECL) \ do { \ - fprintf (FILE, "%s\t ", TYPE_ASM_OP); \ + fprintf (FILE, "\t%s\t ", TYPE_ASM_OP); \ assemble_name (FILE, NAME); \ putc (',', FILE); \ fprintf (FILE, TYPE_OPERAND_FMT, "object"); \ putc ('\n', FILE); \ if (!flag_inhibit_size_directive) \ { \ - fprintf (FILE, "%s\t ", SIZE_ASM_OP); \ + fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \ assemble_name (FILE, NAME); \ fprintf (FILE, ",%d\n", int_size_in_bytes (TREE_TYPE (decl))); \ } \ @@ -520,7 +524,7 @@ dtors_section () \ labelno++; \ ASM_GENERATE_INTERNAL_LABEL (label, "Lfe", labelno); \ ASM_OUTPUT_INTERNAL_LABEL (FILE, "Lfe", labelno); \ - fprintf (FILE, "%s\t ", SIZE_ASM_OP); \ + fprintf (FILE, "\t%s\t ", SIZE_ASM_OP); \ assemble_name (FILE, (FNAME)); \ fprintf (FILE, ","); \ assemble_name (FILE, label); \ @@ -558,7 +562,7 @@ dtors_section () \ has such a limitation, you should define STRING_LIMIT to reflect that limit. Note that at least some svr4 assemblers have a limit on the actual number of bytes in the double-quoted string, and that they - count each chanacter in an escape sequence as one byte. Thus, an + count each character in an escape sequence as one byte. Thus, an escape sequence like \377 would count as four bytes. If your target assembler doesn't support the .string directive, you