summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-devel/gcc/files/gcc-2.95.3-destructor-atexit.diff')
-rw-r--r--sys-devel/gcc/files/gcc-2.95.3-destructor-atexit.diff123
1 files changed, 0 insertions, 123 deletions
diff --git a/sys-devel/gcc/files/gcc-2.95.3-destructor-atexit.diff b/sys-devel/gcc/files/gcc-2.95.3-destructor-atexit.diff
deleted file mode 100644
index d9cc67f1efaf..000000000000
--- a/sys-devel/gcc/files/gcc-2.95.3-destructor-atexit.diff
+++ /dev/null
@@ -1,123 +0,0 @@
---- gcc-2.95.x/gcc/config/alpha/crtbegin.asm.jj Wed Dec 16 22:00:53 1998
-+++ gcc-2.95.x/gcc/config/alpha/crtbegin.asm Wed Jun 13 12:41:28 2001
-@@ -97,6 +97,31 @@ __EH_FRAME_BEGIN__:
- # Support recursive calls to exit.
- $ptr: .quad __DTOR_LIST__
-
-+/* A globally unique widget for c++ local destructors to hang off.
-+
-+ This has a unique value in every dso; in the main program its
-+ value is zero. The object should be protected. This means the
-+ instance in any dso or the main program is not used in any other
-+ dso. The dynamic linker takes care of this. */
-+
-+ .global __dso_handle
-+ .type __dso_handle,@object
-+ .size __dso_handle,8
-+#ifdef SHARED
-+.section .data
-+ .align 3
-+__dso_handle:
-+ .quad __dso_handle
-+#else
-+.section .bss
-+ .align 3
-+__dso_handle:
-+ .zero 8
-+#endif
-+#ifdef HAVE_GAS_HIDDEN
-+ .hidden __dso_handle
-+#endif
-+
- .text
-
- .align 3
-============================================================
-Index: gcc/crtstuff.c
---- gcc-2.95.x/gcc/crtstuff.c 2001/04/03 10:34:32 1.18.4.1
-+++ gcc-2.95.x/gcc/crtstuff.c 2001/08/09 06:56:33
-@@ -55,6 +55,7 @@ Boston, MA 02111-1307, USA. */
- #include "defaults.h"
- #include <stddef.h>
- #include "frame.h"
-+#include "auto-host.h"
-
- /* We do not want to add the weak attribute to the declarations of these
- routines in frame.h because that will cause the definition of these
-@@ -134,7 +135,29 @@ typedef void (*func_ptr) (void);
- #ifdef INIT_SECTION_ASM_OP
-
- #ifdef OBJECT_FORMAT_ELF
-+/* Declare the __dso_handle variable. It should have a unique value
-+ in every shared-object; in a main program its value is zero. The
-+ object should in any case be protected. This means the instance
-+ in one DSO or the main program is not used in another object. The
-+ dynamic linker takes care of this. */
-+
-+/* XXX Ideally the following should be implemented using
-+ __attribute__ ((__visibility__ ("hidden")))
-+ but the __attribute__ support is not yet there. */
-+#ifdef HAVE_GAS_HIDDEN
-+asm (".hidden\t__dso_handle");
-+#endif
-+
-+#ifdef CRTSTUFFS_O
-+void *__dso_handle = &__dso_handle;
-+#else
-+void *__dso_handle = 0;
-+#endif
-
-+/* The __cxa_finalize function may not be available so we use only a
-+ weak declaration. */
-+extern void __cxa_finalize (void *) TARGET_ATTRIBUTE_WEAK;
-+
- /* Run all the global destructors on exit from the program. */
-
- /* Some systems place the number of pointers in the first word of the
-@@ -164,6 +187,11 @@ __do_global_dtors_aux (void)
-
- if (completed)
- return;
-+
-+#ifdef CRTSTUFFS_O
-+ if (__cxa_finalize)
-+ __cxa_finalize (__dso_handle);
-+#endif
-
- while (*p)
- {
---- gcc-2.95.x/gcc/configure.in.jj Wed Oct 13 09:58:02 1999
-+++ gcc-2.95.x/gcc/configure.in Wed Jun 13 12:44:34 2001
-@@ -4053,6 +4053,21 @@ EOF
- fi
- AC_MSG_RESULT($gcc_cv_as_subsections)
-
-+AC_MSG_CHECKING(assembler hidden support)
-+gcc_cv_as_hidden=
-+if test x$gcc_cv_as != x; then
-+ # Check if we have .hidden
-+ echo " .hidden foobar" > conftest.s
-+ echo "foobar:" >> conftest.s
-+ if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
-+ AC_DEFINE(HAVE_GAS_HIDDEN, 1,
-+ [Define if your assembler supports .hidden.])
-+ gcc_cv_as_hidden="yes"
-+ fi
-+ rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
-+fi
-+AC_MSG_RESULT($gcc_cv_as_hidden)
-+
- AC_MSG_CHECKING(assembler instructions)
- gcc_cv_as_instructions=
- if test x$gcc_cv_as != x; then
---- gcc-2.95.x/gcc/config.in.jj Mon Oct 25 10:02:08 1999
-+++ gcc-2.95.x/gcc/config.in Wed Jun 13 12:45:56 2001
-2 the beginning of your section */
- #undef HAVE_GAS_SUBSECTION_ORDERING
-
-+/* Define if your assembler supports .hidden. */
-+#undef HAVE_GAS_HIDDEN
-+
- /* Define if your assembler uses the old HImode fild and fist notation. */
- #undef HAVE_GAS_FILDS_FISTS
-