OSDN Git Service

* pa/t-pa, pa/t-pro, pa/som.h: Revert last patch.
authordanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 16 Feb 2002 22:30:35 +0000 (22:30 +0000)
committerdanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 16 Feb 2002 22:30:35 +0000 (22:30 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49811 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/pa/som.h
gcc/config/pa/t-pa
gcc/config/pa/t-pro

index c1ba0e9..144e6c9 100644 (file)
@@ -1,5 +1,9 @@
 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
 
+       * pa/t-pa, pa/t-pro, som.h: Revert last patch.
+
+2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
+
        * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
        * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
        * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
index 5b8b198..5604f54 100644 (file)
@@ -351,6 +351,22 @@ readonly_data ()                                                   \
 
 #define ASM_FILE_END(FILE) output_deferred_plabels (FILE)
 
+/* We want __gcc_plt_call to appear in every program built by
+   gcc, so we make a reference to it out of __main.
+   We use the asm statement to fool the optimizer into not
+   removing the dead (but important) initialization of
+   REFERENCE.  */
+
+#define DO_GLOBAL_DTORS_BODY                   \
+do {                                           \
+  extern void __gcc_plt_call ();               \
+  void (*reference)() = &__gcc_plt_call;       \
+  func_ptr *p;                                 \
+  __asm__ ("" : : "r" (reference));            \
+  for (p = __DTOR_LIST__ + 1; *p; )            \
+    (*p++) ();                                 \
+} while (0)
+
 /* The .align directive in the HP assembler allows up to a 32 alignment.  */
 #define MAX_OFILE_ALIGNMENT 32768
 
index ddb44ab..863e843 100644 (file)
@@ -1,5 +1,9 @@
 T_ADAFLAGS=-mdisable-indexing
-LIB2FUNCS_EXTRA=quadlib.c
+LIB2FUNCS_EXTRA=lib2funcs.asm quadlib.c
+
+lib2funcs.asm: $(srcdir)/config/pa/lib2funcs.asm
+       rm -f lib2funcs.asm
+       cp $(srcdir)/config/pa/lib2funcs.asm .
 
 quadlib.c: $(srcdir)/config/pa/quadlib.c
        rm -f quadlib.c
index 0f52313..a47d72f 100644 (file)
@@ -1,5 +1,7 @@
 T_ADAFLAGS=-mdisable-indexing
 
+LIB2FUNCS_EXTRA=lib2funcs.asm 
+
 # We want fine grained libraries, so use the new code to build the
 # floating point emulation libraries.
 FPBIT = fp-bit.c
@@ -11,3 +13,7 @@ dp-bit.c: $(srcdir)/config/fp-bit.c
 fp-bit.c: $(srcdir)/config/fp-bit.c
        echo '#define FLOAT' > fp-bit.c
        cat $(srcdir)/config/fp-bit.c >> fp-bit.c
+
+lib2funcs.asm: $(srcdir)/config/pa/lib2funcs.asm
+       rm -f lib2funcs.asm
+       cp $(srcdir)/config/pa/lib2funcs.asm .