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.
This commit is contained in:
Ian Lance Taylor 1998-05-18 20:21:22 +00:00
parent 1190b223b8
commit b4c61dc900
2 changed files with 31 additions and 2 deletions

View File

@ -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>

View File

@ -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_ = .);}