summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/config/ia64/crtbegin.asm
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/gcc/config/ia64/crtbegin.asm')
-rw-r--r--contrib/gcc/config/ia64/crtbegin.asm15
1 files changed, 14 insertions, 1 deletions
diff --git a/contrib/gcc/config/ia64/crtbegin.asm b/contrib/gcc/config/ia64/crtbegin.asm
index 388b24e..cb49e10 100644
--- a/contrib/gcc/config/ia64/crtbegin.asm
+++ b/contrib/gcc/config/ia64/crtbegin.asm
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc.
Contributed by Jes Sorensen, <Jes.Sorensen@cern.ch>
The GNU C Library is free software; you can redistribute it and/or
@@ -16,6 +16,8 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+#include "auto-host.h"
+
.section .ctors,"aw","progbits"
.align 8
__CTOR_LIST__:
@@ -52,6 +54,16 @@ __dso_handle:
.hidden __dso_handle#
+#ifdef HAVE_INITFINI_ARRAY
+
+.section .fini_array,"a","progbits"
+ data8 @fptr(__do_global_dtors_aux)
+
+.section .init_array,"a","progbits"
+ data8 @fptr(__do_jv_register_classes)
+ data8 @fptr(__do_global_ctors_aux)
+
+#else /* !HAVE_INITFINI_ARRAY */
/*
* Fragment of the ELF _fini routine that invokes our dtor cleanup.
*
@@ -98,6 +110,7 @@ __dso_handle:
br.call.sptk.many b0 = b6
;;
}
+#endif /* !HAVE_INITFINI_ARRAY */
.section .text
.align 16
OpenPOWER on IntegriCloud