diff options
Diffstat (limited to 'contrib/gcc/config/elfos.h')
-rw-r--r-- | contrib/gcc/config/elfos.h | 86 |
1 files changed, 35 insertions, 51 deletions
diff --git a/contrib/gcc/config/elfos.h b/contrib/gcc/config/elfos.h index 25a44af..6a138f9 100644 --- a/contrib/gcc/config/elfos.h +++ b/contrib/gcc/config/elfos.h @@ -1,26 +1,32 @@ /* elfos.h -- operating system specific defines to be used when targeting GCC for some generic ELF system - Copyright (C) 1991, 1994, 1995, 1999, 2000, 2001, 2002 + Copyright (C) 1991, 1994, 1995, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Based on svr4.h contributed by Ron Guilmette (rfg@netcom.com). -This file is part of GNU CC. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. -GNU CC is distributed in the hope that it will be useful, +GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to +along with GCC; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#define TARGET_OBJFMT_CPP_BUILTINS() \ + do \ + { \ + builtin_define ("__ELF__"); \ + } \ + while (0) /* Define a symbol indicating that we are using elfos.h. Some CPU specific configuration files use this. */ @@ -60,10 +66,6 @@ Boston, MA 02111-1307, USA. */ #define HANDLE_SYSV_PRAGMA 1 -/* System V Release 4 uses DWARF debugging info. */ - -#define DWARF_DEBUGGING_INFO 1 - /* All ELF targets can support DWARF-2. */ #define DWARF2_DEBUGGING_INFO 1 @@ -90,16 +92,9 @@ Boston, MA 02111-1307, USA. */ #undef SET_ASM_OP #define SET_ASM_OP "\t.set\t" -/* This is how to begin an assembly language file. Most svr4 assemblers want - at least a .file directive to come first, and some want to see a .version - directive come right after that. Here we just establish a default - which generates only the .file directive. If you need a .version - directive for any specific target, you should override this definition - in the target-specific file which includes this one. */ - -#undef ASM_FILE_START -#define ASM_FILE_START(FILE) \ - output_file_directive ((FILE), main_input_filename) +/* Most svr4 assemblers want a .file directive at the beginning of + their input file. */ +#define TARGET_ASM_FILE_START_FILE_DIRECTIVE true /* This is how to allocate empty space in some section. The .zero pseudo-op is used for this on most svr4 assemblers. */ @@ -108,21 +103,8 @@ Boston, MA 02111-1307, USA. */ #undef ASM_OUTPUT_SKIP #define ASM_OUTPUT_SKIP(FILE, SIZE) \ - fprintf (FILE, "%s%u\n", SKIP_ASM_OP, (SIZE)) - -/* This is how to output an internal numbered label where - PREFIX is the class of label and NUM is the number within the class. - - For most svr4 systems, the convention is that any symbol which begins - with a period is not put into the linker symbol table by the assembler. */ - -#undef ASM_OUTPUT_INTERNAL_LABEL -#define ASM_OUTPUT_INTERNAL_LABEL(FILE, PREFIX, NUM) \ - do \ - { \ - fprintf (FILE, ".%s%u:\n", PREFIX, (unsigned) (NUM)); \ - } \ - while (0) + fprintf ((FILE), "%s"HOST_WIDE_INT_PRINT_UNSIGNED"\n",\ + SKIP_ASM_OP, (SIZE)) /* This is how to store into the string LABEL the symbol_ref name of an internal numbered label where @@ -161,7 +143,7 @@ Boston, MA 02111-1307, USA. */ do \ { \ ASM_OUTPUT_BEFORE_CASE_LABEL (FILE, PREFIX, NUM, JUMPTABLE) \ - ASM_OUTPUT_INTERNAL_LABEL (FILE, PREFIX, NUM); \ + (*targetm.asm_out.internal_label) (FILE, PREFIX, NUM); \ } \ while (0) @@ -185,7 +167,8 @@ Boston, MA 02111-1307, USA. */ { \ fprintf ((FILE), "%s", COMMON_ASM_OP); \ assemble_name ((FILE), (NAME)); \ - fprintf ((FILE), ",%u,%u\n", (SIZE), (ALIGN) / BITS_PER_UNIT); \ + fprintf ((FILE), ","HOST_WIDE_INT_PRINT_UNSIGNED",%u\n", \ + (SIZE), (ALIGN) / BITS_PER_UNIT); \ } \ while (0) @@ -234,7 +217,7 @@ Boston, MA 02111-1307, USA. */ #endif #define MAKE_DECL_ONE_ONLY(DECL) (DECL_WEAK (DECL) = 1) - + /* Switch into a generic section. */ #define TARGET_ASM_NAMED_SECTION default_elf_asm_named_section @@ -254,11 +237,11 @@ Boston, MA 02111-1307, USA. */ /* This is how we tell the assembler that a symbol is weak. */ -#define ASM_WEAKEN_LABEL(FILE, NAME) \ +#define ASM_WEAKEN_LABEL(FILE, NAME) \ do \ { \ fputs ("\t.weak\t", (FILE)); \ - assemble_name ((FILE), (NAME)); \ + assemble_name ((FILE), (NAME)); \ fputc ('\n', (FILE)); \ } \ while (0) @@ -327,12 +310,13 @@ Boston, MA 02111-1307, USA. */ size_directive_output was set by ASM_DECLARE_OBJECT_NAME when it was run for the same decl. */ +#undef ASM_FINISH_DECLARE_OBJECT #define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END)\ do \ { \ const char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0); \ HOST_WIDE_INT size; \ - \ + \ if (!flag_inhibit_size_directive \ && DECL_SIZE (DECL) \ && ! AT_END && TOP_LEVEL \ @@ -410,13 +394,13 @@ Boston, MA 02111-1307, USA. */ register const unsigned char *_limited_str = \ (const unsigned char *) (STR); \ register unsigned ch; \ - \ + \ fprintf ((FILE), "%s\"", STRING_ASM_OP); \ - \ + \ for (; (ch = *_limited_str); _limited_str++) \ { \ register int escape; \ - \ + \ switch (escape = ESCAPES[ch]) \ { \ case 0: \ @@ -431,7 +415,7 @@ Boston, MA 02111-1307, USA. */ break; \ } \ } \ - \ + \ fprintf ((FILE), "\"\n"); \ } \ while (0) @@ -455,16 +439,16 @@ Boston, MA 02111-1307, USA. */ for (; _ascii_bytes < limit; _ascii_bytes++) \ { \ register const unsigned char *p; \ - \ + \ if (bytes_in_chunk >= 60) \ { \ fprintf ((FILE), "\"\n"); \ bytes_in_chunk = 0; \ } \ - \ + \ for (p = _ascii_bytes; p < limit && *p != '\0'; p++) \ continue; \ - \ + \ if (p < limit && (p - _ascii_bytes) <= (long)STRING_LIMIT) \ { \ if (bytes_in_chunk > 0) \ @@ -472,7 +456,7 @@ Boston, MA 02111-1307, USA. */ fprintf ((FILE), "\"\n"); \ bytes_in_chunk = 0; \ } \ - \ + \ ASM_OUTPUT_LIMITED_STRING ((FILE), _ascii_bytes); \ _ascii_bytes = p; \ } \ @@ -480,10 +464,10 @@ Boston, MA 02111-1307, USA. */ { \ register int escape; \ register unsigned ch; \ - \ + \ if (bytes_in_chunk == 0) \ fprintf ((FILE), "%s\"", ASCII_DATA_ASM_OP); \ - \ + \ switch (escape = ESCAPES[ch = *_ascii_bytes]) \ { \ case 0: \ @@ -502,7 +486,7 @@ Boston, MA 02111-1307, USA. */ } \ } \ } \ - \ + \ if (bytes_in_chunk > 0) \ fprintf ((FILE), "\"\n"); \ } \ |