aboutsummaryrefslogtreecommitdiff
path: root/ld/scripttempl
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 /ld/scripttempl
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.
Diffstat (limited to 'ld/scripttempl')
-rw-r--r--ld/scripttempl/elfppc.sc19
1 files changed, 17 insertions, 2 deletions
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_ = .);}