diff options
author | Ian Lance Taylor <ian@airs.com> | 1998-05-18 20:21:22 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1998-05-18 20:21:22 +0000 |
commit | b4c61dc9000e402e5174c35c97cfffd06c23e875 (patch) | |
tree | f7c0fbab9cfba4173f7a45db0ed3eb4102fcbb56 | |
parent | 1190b223b8a3c8000cc6764fa7f9a44b1cb2efc2 (diff) | |
download | gdb-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/ChangeLog | 14 | ||||
-rw-r--r-- | ld/scripttempl/elfppc.sc | 19 |
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_ = .);} |