summaryrefslogtreecommitdiff
path: root/gnu/egcs/gcc
diff options
context:
space:
mode:
authorMarc Espie <espie@cvs.openbsd.org>2001-09-10 22:28:58 +0000
committerMarc Espie <espie@cvs.openbsd.org>2001-09-10 22:28:58 +0000
commit40c96d3e0f32d23408b3774d27518514a53b3bc1 (patch)
treee090a876cf04d2c8d7e4aacd6b38c6ab25905932 /gnu/egcs/gcc
parent56e4b27fa4fa918d4a968781cc071f26ca7a9cd5 (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.h24
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)
+