aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1998-05-18 20:21:22 +0000
committerIan Lance Taylor <ian@airs.com>1998-05-18 20:21:22 +0000
commitb4c61dc9000e402e5174c35c97cfffd06c23e875 (patch)
treef7c0fbab9cfba4173f7a45db0ed3eb4102fcbb56
parent1190b223b8a3c8000cc6764fa7f9a44b1cb2efc2 (diff)
downloadgdb-b4c61dc9000e402e5174c35c97cfffd06c23e875.zip
gdb-b4c61dc9000e402e5174c35c97cfffd06c23e875.tar.gz
gdb-b4c61dc9000e402e5174c35c97cfffd06c23e875.tar.bz2
From Jason Merrill <jason@cygnus.com>:
* ldlang.c (wild_sort): Correct order of sort. * scripttempl/elf.sc: Put *crtbegin.o before other .ctors and .dtors. * scripttempl/elfd10v.sc: Likewise. start-sanitize-d30v * scripttempl/elfd30v.sc: Likewise. end-sanitize-d30v * scripttempl/elfppc.sc: Likewise.
-rw-r--r--ld/ChangeLog14
-rw-r--r--ld/scripttempl/elfppc.sc19
2 files changed, 31 insertions, 2 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 457b6e8..6a249f8 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,15 @@
+Mon May 18 13:14:43 1998 Ian Lance Taylor <ian@cygnus.com>
+
+ From Jason Merrill <jason@cygnus.com>:
+ * ldlang.c (wild_sort): Correct order of sort.
+ * scripttempl/elf.sc: Put *crtbegin.o before other .ctors and
+ .dtors.
+ * scripttempl/elfd10v.sc: Likewise.
+start-sanitize-d30v
+ * scripttempl/elfd30v.sc: Likewise.
+end-sanitize-d30v
+ * scripttempl/elfppc.sc: Likewise.
+
Fri May 15 00:22:35 1998 Ian Lance Taylor <ian@cygnus.com>
* ldlex.l: Recognize keyword SORT.
@@ -18,7 +30,9 @@ Fri May 15 00:22:35 1998 Ian Lance Taylor <ian@cygnus.com>
* mri.c (mri_draw_tree): Update calls to lang_add_wild.
* scripttempl/elf.sc: Sort .ctors.* and .dtors.* by section name.
* scripttempl/elfd10v.sc: Likewise.
+start-sanitize-d30v
* scripttempl/elfd30v.sc: Likewise.
+end-sanitize-d30v
* scripttempl/elfppc.sc: Likewise.
Thu May 14 18:39:16 1998 Richard Henderson <rth@cygnus.com>
diff --git a/ld/scripttempl/elfppc.sc b/ld/scripttempl/elfppc.sc
index 5671d56..61ef133 100644
--- a/ld/scripttempl/elfppc.sc
+++ b/ld/scripttempl/elfppc.sc
@@ -129,11 +129,26 @@ SECTIONS
.got2 ${RELOCATING-0} : { *(.got2) }
${RELOCATING+PROVIDE (__CTOR_LIST__ = .);}
- .ctors ${RELOCATING-0} : { *(SORT(.ctors.*)) *(.ctors) }
+ .ctors ${RELOCATING-0} : {
+ /* gcc uses crtbegin.o to find the start of
+ the constructors, so we make sure it is
+ first. Because this is a wildcard, it
+ doesn't matter if the user does not
+ actually link against crtbegin.o; the
+ linker won't look for a file to match a
+ wildcard. The wildcard also means that it
+ doesn't matter which directory crtbegin.o
+ is in. */
+ *crtbegin.o(.ctors)
+ *(SORT(.ctors.*))
+ *(.ctors) }
${RELOCATING+PROVIDE (__CTOR_END__ = .);}
${RELOCATING+PROVIDE (__DTOR_LIST__ = .);}
- .dtors ${RELOCATING-0} : { *(SORT(.dtors.*)) *(.dtors) }
+ .dtors ${RELOCATING-0} : {
+ *crtbegin.o(.dtors)
+ *(SORT(.dtors.*))
+ *(.dtors) }
${RELOCATING+PROVIDE (__DTOR_END__ = .);}
${RELOCATING+PROVIDE (_FIXUP_START_ = .);}