diff options
author | Marc Espie <espie@cvs.openbsd.org> | 2001-09-10 22:28:58 +0000 |
---|---|---|
committer | Marc Espie <espie@cvs.openbsd.org> | 2001-09-10 22:28:58 +0000 |
commit | 40c96d3e0f32d23408b3774d27518514a53b3bc1 (patch) | |
tree | e090a876cf04d2c8d7e4aacd6b38c6ab25905932 /gnu/egcs/gcc | |
parent | 56e4b27fa4fa918d4a968781cc071f26ca7a9cd5 (diff) |
ctor/dtor emission, stolen from solaris2.
Plus, no sjlj by default.
Diffstat (limited to 'gnu/egcs/gcc')
-rw-r--r-- | gnu/egcs/gcc/config/sparc/openbsd64.h | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/gnu/egcs/gcc/config/sparc/openbsd64.h b/gnu/egcs/gcc/config/sparc/openbsd64.h index 8d0b3cd13b0..9b0e35c9747 100644 --- a/gnu/egcs/gcc/config/sparc/openbsd64.h +++ b/gnu/egcs/gcc/config/sparc/openbsd64.h @@ -61,5 +61,25 @@ Boston, MA 02111-1307, USA. */ #undef ENDFILE_SPEC #define ENDFILE_SPEC "%{!shared:crtend%O%s} %{shared:crtendS%O%s}" -/* Use sjlj exceptions. */ -#define DWARF2_UNWIND_INFO 0 +/* A C statement (sans semicolon) to output an element in the table of + global constructors. */ +#undef ASM_OUTPUT_CONSTRUCTOR +#define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \ + do { \ + ctors_section (); \ + fprintf ((FILE), "\t%s\t ", TARGET_ARCH64 ? ASM_LONGLONG : INT_ASM_OP) ; \ + assemble_name ((FILE), (NAME)); \ + fprintf ((FILE), "\n"); \ + } while (0) + +/* A C statement (sans semicolon) to output an element in the table of + global destructors. */ +#undef ASM_OUTPUT_DESTRUCTOR +#define ASM_OUTPUT_DESTRUCTOR(FILE,NAME) \ + do { \ + dtors_section (); \ + fprintf ((FILE), "\t%s\t ", TARGET_ARCH64 ? ASM_LONGLONG : INT_ASM_OP); \ + assemble_name ((FILE), (NAME)); \ + fprintf ((FILE), "\n"); \ + } while (0) + |