diff options
author | rearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-04-08 14:29:53 +0000 |
---|---|---|
committer | rearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-04-08 14:29:53 +0000 |
commit | cffb2a26c44c682185b6bb405d48fcbe1fbc0b37 (patch) | |
tree | afad7b23cc154d59312c2bb26dc3d4b1e0f165a1 /gcc/config/arm/coff.h | |
parent | 2442bd9e6db67134b6566e2ebd982645f111b396 (diff) | |
download | gcc-cffb2a26c44c682185b6bb405d48fcbe1fbc0b37.tar.gz |
Merge changes from merged-arm-thumb-backend-branch onto trunk.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33028 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/arm/coff.h')
-rw-r--r-- | gcc/config/arm/coff.h | 82 |
1 files changed, 45 insertions, 37 deletions
diff --git a/gcc/config/arm/coff.h b/gcc/config/arm/coff.h index f98674bc36a..a083be903ac 100644 --- a/gcc/config/arm/coff.h +++ b/gcc/config/arm/coff.h @@ -1,7 +1,7 @@ -/* Definitions of target machine for GNU compiler, - for ARM with COFF obj format. - Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc. - Contributed by Doug Evans (dje@cygnus.com). +/* Definitions of target machine for GNU compiler. + For ARM with COFF object format. + Copyright (C) 1995 - 1999 Free Software Foundation, Inc. + Contributed by Doug Evans (devans@cygnus.com). This file is part of GNU CC. @@ -20,8 +20,8 @@ along with GNU CC; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include "arm/semi.h" -#include "arm/aout.h" +#include "semi.h" +#include "aout.h" /* Note - it is important that this definition matches the one in tcoff.h */ #undef USER_LABEL_PREFIX @@ -33,9 +33,12 @@ Boston, MA 02111-1307, USA. */ #define TARGET_VERSION fputs (" (ARM/coff)", stderr) #undef TARGET_DEFAULT -#define TARGET_DEFAULT (ARM_FLAG_SOFT_FLOAT | ARM_FLAG_APCS_32) +#define TARGET_DEFAULT (ARM_FLAG_SOFT_FLOAT | ARM_FLAG_APCS_32 | ARM_FLAG_APCS_FRAME) -#define MULTILIB_DEFAULTS { "mlittle-endian", "msoft-float", "mapcs-32", "mno-thumb-interwork" } +#ifndef MULTILIB_DEFAULTS +#define MULTILIB_DEFAULTS \ + { "marm", "mlittle-endian", "msoft-float", "mapcs-32", "mno-thumb-interwork" } +#endif /* A C expression whose value is nonzero if IDENTIFIER with arguments ARGS is a valid machine specific attribute for DECL. @@ -70,16 +73,13 @@ Boston, MA 02111-1307, USA. */ fprintf (STREAM, "%s Generated by gcc %s for ARM/coff\n", \ ASM_COMMENT_START, version_string); \ fprintf (STREAM, ASM_APP_OFF); \ - if (write_symbols == SDB_DEBUG) \ - output_file_directive (STREAM, main_input_filename); \ } \ while (0) -/* A C statement to output something to the assembler file to switch to section - NAME for object DECL which is either a FUNCTION_DECL, a VAR_DECL or +/* A C statement to output something to the assembler file to switch to + section NAME for object DECL which is either a FUNCTION_DECL, a VAR_DECL or NULL_TREE. Some target formats do not support arbitrary sections. Do not define this macro in such cases. */ -#undef ASM_OUTPUT_SECTION_NAME #define ASM_OUTPUT_SECTION_NAME(STREAM, DECL, NAME, RELOC) \ do \ { \ @@ -130,36 +130,36 @@ Boston, MA 02111-1307, USA. */ #define SUBTARGET_EXTRA_SECTION_FUNCTIONS #define RDATA_SECTION_FUNCTION \ -void \ -rdata_section () \ -{ \ - if (in_section != in_rdata) \ - { \ - fprintf (asm_out_file, "%s\n", RDATA_SECTION_ASM_OP); \ - in_section = in_rdata; \ - } \ +void \ +rdata_section () \ +{ \ + if (in_section != in_rdata) \ + { \ + fprintf (asm_out_file, "%s\n", RDATA_SECTION_ASM_OP); \ + in_section = in_rdata; \ + } \ } #define CTORS_SECTION_FUNCTION \ -void \ -ctors_section () \ -{ \ - if (in_section != in_ctors) \ - { \ - fprintf (asm_out_file, "%s\n", CTORS_SECTION_ASM_OP); \ - in_section = in_ctors; \ - } \ +void \ +ctors_section () \ +{ \ + if (in_section != in_ctors) \ + { \ + fprintf (asm_out_file, "%s\n", CTORS_SECTION_ASM_OP); \ + in_section = in_ctors; \ + } \ } #define DTORS_SECTION_FUNCTION \ -void \ -dtors_section () \ -{ \ - if (in_section != in_dtors) \ - { \ - fprintf (asm_out_file, "%s\n", DTORS_SECTION_ASM_OP); \ - in_section = in_dtors; \ - } \ +void \ +dtors_section () \ +{ \ + if (in_section != in_dtors) \ + { \ + fprintf (asm_out_file, "%s\n", DTORS_SECTION_ASM_OP); \ + in_section = in_dtors; \ + } \ } /* Support the ctors/dtors sections for g++. */ @@ -198,6 +198,14 @@ dtors_section () \ #undef DO_GLOBAL_CTORS_BODY #undef DO_GLOBAL_DTORS_BODY +/* If you don't define HAVE_ATEXIT, and the object file format/OS/whatever + does not support constructors/destructors, then gcc implements destructors + by defining its own exit function, which calls the destructors. This gcc + exit function overrides the C library's exit function, and this can cause + all kinds of havoc if the C library has a non-trivial exit function. You + really don't want to use the exit function in libgcc2.c. */ +#define HAVE_ATEXIT + /* The ARM development system defines __main. */ #define NAME__MAIN "__gccmain" #define SYMBOL__MAIN __gccmain |