mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-23 19:50:13 +08:00
* scripttempl/elf.sc (CTOR): Handle crtbeginS.o, crtendS.o and
other variants of crtbegin.o, crtend.o. (DTOR): Likewise. * scripttempl/crisaout.sc (ctors, dtors): Likewise. * scripttempl/elf_chaos.sc (CTOR, DTOR): Likewise. * scripttempl/elfd10v.sc (CTOR, DTOR): Likewise. * scripttempl/elfd30v.sc (CTOR, DTOR): Likewise. * scripttempl/elfxtensa.sc (CTOR, DTOR): Likewise. * scripttempl/iq2000.sc (CTOR, DTOR): Likewise. * scripttempl/mmo.sc (ctors, dtors): Likewise. * scripttempl/xstormy16.sc (CTOR, DTOR): Likewise.
This commit is contained in:
49
ld/ChangeLog
49
ld/ChangeLog
@ -1,3 +1,18 @@
|
|||||||
|
2003-04-14 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
From Prashanth Tamraparni <prashanth_t@in.ibm.com>
|
||||||
|
* scripttempl/elf.sc (CTOR): Handle crtbeginS.o, crtendS.o and
|
||||||
|
other variants of crtbegin.o, crtend.o.
|
||||||
|
(DTOR): Likewise.
|
||||||
|
* scripttempl/crisaout.sc (ctors, dtors): Likewise.
|
||||||
|
* scripttempl/elf_chaos.sc (CTOR, DTOR): Likewise.
|
||||||
|
* scripttempl/elfd10v.sc (CTOR, DTOR): Likewise.
|
||||||
|
* scripttempl/elfd30v.sc (CTOR, DTOR): Likewise.
|
||||||
|
* scripttempl/elfxtensa.sc (CTOR, DTOR): Likewise.
|
||||||
|
* scripttempl/iq2000.sc (CTOR, DTOR): Likewise.
|
||||||
|
* scripttempl/mmo.sc (ctors, dtors): Likewise.
|
||||||
|
* scripttempl/xstormy16.sc (CTOR, DTOR): Likewise.
|
||||||
|
|
||||||
2003-04-09 Dmitry Diky <diwil@mail.ru>
|
2003-04-09 Dmitry Diky <diwil@mail.ru>
|
||||||
|
|
||||||
* scripttempl/elf32msp430.sc: Add initX, finiX, ctors, dtors
|
* scripttempl/elf32msp430.sc: Add initX, finiX, ctors, dtors
|
||||||
@ -56,16 +71,16 @@
|
|||||||
|
|
||||||
2003-04-01 Bob Wilson <bob.wilson@acm.org>
|
2003-04-01 Bob Wilson <bob.wilson@acm.org>
|
||||||
|
|
||||||
* Makefile.am (ALL_EMULATIONS): Add eelf32xtensa.o.
|
* Makefile.am (ALL_EMULATIONS): Add eelf32xtensa.o.
|
||||||
(eelf32xtensa.c): New target.
|
(eelf32xtensa.c): New target.
|
||||||
* Makefile.in: Regenerate.
|
* Makefile.in: Regenerate.
|
||||||
* configure.tgt: Handle xtensa-*-*.
|
* configure.tgt: Handle xtensa-*-*.
|
||||||
* gen-doc.texi: Set XTENSA variable.
|
* gen-doc.texi: Set XTENSA variable.
|
||||||
* ld.texinfo: Set XTENSA variable. Add new Xtensa node.
|
* ld.texinfo: Set XTENSA variable. Add new Xtensa node.
|
||||||
* emulparams/elf32xtensa.sh: New file.
|
* emulparams/elf32xtensa.sh: New file.
|
||||||
* emulparams/xtensa-config.sh: Likewise.
|
* emulparams/xtensa-config.sh: Likewise.
|
||||||
* emultempl/xtensaelf.em: Likewise.
|
* emultempl/xtensaelf.em: Likewise.
|
||||||
* scripttempl/elfxtensa.sc: Likewise.
|
* scripttempl/elfxtensa.sc: Likewise.
|
||||||
|
|
||||||
2003-04-01 Jakub Jelinek <jakub@redhat.com>
|
2003-04-01 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
@ -95,7 +110,7 @@
|
|||||||
directory name.
|
directory name.
|
||||||
(add_keepsyms_file): Fix memory leak.
|
(add_keepsyms_file): Fix memory leak.
|
||||||
* ldmisc.c (vfinfo): Likewise.
|
* ldmisc.c (vfinfo): Likewise.
|
||||||
* lexsup.c (parse_args): Likewise
|
* lexsup.c (parse_args): Likewise.
|
||||||
|
|
||||||
2003-03-25 Stan Cox <scox@redhat.com>
|
2003-03-25 Stan Cox <scox@redhat.com>
|
||||||
Nick Clifton <nickc@redhat.com>
|
Nick Clifton <nickc@redhat.com>
|
||||||
@ -131,12 +146,12 @@
|
|||||||
* ldfile.c (ldfile_try_open_bfd): Pop lexer start condition after
|
* ldfile.c (ldfile_try_open_bfd): Pop lexer start condition after
|
||||||
eof.
|
eof.
|
||||||
|
|
||||||
2003-03-18 Danny Smith <dannysmith@users.sourceforge,net>
|
2003-03-18 Danny Smith <dannysmith@users.sourceforge.net>
|
||||||
|
|
||||||
* defilep.y (opt_base): If no number given, set to default
|
* defilep.y (opt_base): If no number given, set to default
|
||||||
(-1), not 0.
|
(-1), not 0.
|
||||||
|
|
||||||
2003-03-13 Danny Smith <dannysmith@users.sourceforge,net>
|
2003-03-13 Danny Smith <dannysmith@users.sourceforge.net>
|
||||||
|
|
||||||
* deffilep.y (def_import): Use default extension of "dll"
|
* deffilep.y (def_import): Use default extension of "dll"
|
||||||
if no extension provided in parsed IMPORT definition.
|
if no extension provided in parsed IMPORT definition.
|
||||||
@ -335,10 +350,10 @@
|
|||||||
2003-02-17 Nick Clifton <nickc@redhat.com>
|
2003-02-17 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
* ldmain.c (main) Default allow_shlib_undefined to true.
|
* ldmain.c (main) Default allow_shlib_undefined to true.
|
||||||
* lexsup.c (ld_options): Add --no-allow-shlib-undefined.
|
* lexsup.c (ld_options): Add --no-allow-shlib-undefined.
|
||||||
(parse_args): Parse the new switch.
|
(parse_args): Parse the new switch.
|
||||||
* ld.texinfo: Document new switch and default behaviour of
|
* ld.texinfo: Document new switch and default behaviour of
|
||||||
allowing undefined symbols in shared libraries.
|
allowing undefined symbols in shared libraries.
|
||||||
|
|
||||||
2003-02-11 Dmitry Diky <diwil@mail.ru>
|
2003-02-11 Dmitry Diky <diwil@mail.ru>
|
||||||
|
|
||||||
|
@ -48,15 +48,15 @@ SECTIONS
|
|||||||
/* Cater to linking from ELF. */
|
/* Cater to linking from ELF. */
|
||||||
${CONSTRUCTING+ PROVIDE(___ctors = .);}
|
${CONSTRUCTING+ PROVIDE(___ctors = .);}
|
||||||
${CONSTRUCTING+ ___elf_ctors_dtors_begin = .;}
|
${CONSTRUCTING+ ___elf_ctors_dtors_begin = .;}
|
||||||
${CONSTRUCTING+ KEEP (*crtbegin.o(.ctors))}
|
${CONSTRUCTING+ KEEP (*crtbegin*.o(.ctors))}
|
||||||
${CONSTRUCTING+ KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))}
|
${CONSTRUCTING+ KEEP (*(EXCLUDE_FILE (*crtend*.o) .ctors))}
|
||||||
${CONSTRUCTING+ KEEP (*(SORT(.ctors.*)))}
|
${CONSTRUCTING+ KEEP (*(SORT(.ctors.*)))}
|
||||||
${CONSTRUCTING+ KEEP (*(.ctors))}
|
${CONSTRUCTING+ KEEP (*(.ctors))}
|
||||||
${CONSTRUCTING+ PROVIDE(___ctors_end = .);}
|
${CONSTRUCTING+ PROVIDE(___ctors_end = .);}
|
||||||
|
|
||||||
${CONSTRUCTING+ PROVIDE(___dtors = .);}
|
${CONSTRUCTING+ PROVIDE(___dtors = .);}
|
||||||
${CONSTRUCTING+ KEEP (*crtbegin.o(.dtors))}
|
${CONSTRUCTING+ KEEP (*crtbegin*.o(.dtors))}
|
||||||
${CONSTRUCTING+ KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))}
|
${CONSTRUCTING+ KEEP (*(EXCLUDE_FILE (*crtend*.o) .dtors))}
|
||||||
${CONSTRUCTING+ KEEP (*(SORT(.dtors.*)))}
|
${CONSTRUCTING+ KEEP (*(SORT(.dtors.*)))}
|
||||||
${CONSTRUCTING+ KEEP (*(.dtors))}
|
${CONSTRUCTING+ KEEP (*(.dtors))}
|
||||||
${CONSTRUCTING+ PROVIDE(___dtors_end = .);}
|
${CONSTRUCTING+ PROVIDE(___dtors_end = .);}
|
||||||
|
@ -127,14 +127,14 @@ CTOR=".ctors ${CONSTRUCTING-0} :
|
|||||||
doesn't matter which directory crtbegin.o
|
doesn't matter which directory crtbegin.o
|
||||||
is in. */
|
is in. */
|
||||||
|
|
||||||
KEEP (*crtbegin.o(.ctors))
|
KEEP (*crtbegin*.o(.ctors))
|
||||||
|
|
||||||
/* We don't want to include the .ctor section from
|
/* We don't want to include the .ctor section from
|
||||||
from the crtend.o file until after the sorted ctors.
|
from the crtend.o file until after the sorted ctors.
|
||||||
The .ctor section from the crtend file contains the
|
The .ctor section from the crtend file contains the
|
||||||
end of ctors marker and it must be last */
|
end of ctors marker and it must be last */
|
||||||
|
|
||||||
KEEP (*(EXCLUDE_FILE (*crtend.o $OTHER_EXCLUDE_FILES) .ctors))
|
KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .ctors))
|
||||||
KEEP (*(SORT(.ctors.*)))
|
KEEP (*(SORT(.ctors.*)))
|
||||||
KEEP (*(.ctors))
|
KEEP (*(.ctors))
|
||||||
${CONSTRUCTING+${CTOR_END}}
|
${CONSTRUCTING+${CTOR_END}}
|
||||||
@ -142,8 +142,8 @@ CTOR=".ctors ${CONSTRUCTING-0} :
|
|||||||
DTOR=".dtors ${CONSTRUCTING-0} :
|
DTOR=".dtors ${CONSTRUCTING-0} :
|
||||||
{
|
{
|
||||||
${CONSTRUCTING+${DTOR_START}}
|
${CONSTRUCTING+${DTOR_START}}
|
||||||
KEEP (*crtbegin.o(.dtors))
|
KEEP (*crtbegin*.o(.dtors))
|
||||||
KEEP (*(EXCLUDE_FILE (*crtend.o $OTHER_EXCLUDE_FILES) .dtors))
|
KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .dtors))
|
||||||
KEEP (*(SORT(.dtors.*)))
|
KEEP (*(SORT(.dtors.*)))
|
||||||
KEEP (*(.dtors))
|
KEEP (*(.dtors))
|
||||||
${CONSTRUCTING+${DTOR_END}}
|
${CONSTRUCTING+${DTOR_END}}
|
||||||
|
@ -116,22 +116,22 @@ CTOR="
|
|||||||
doesn't matter which directory crtbegin.o
|
doesn't matter which directory crtbegin.o
|
||||||
is in. */
|
is in. */
|
||||||
|
|
||||||
KEEP (*crtbegin.o(.ctors))
|
KEEP (*crtbegin*.o(.ctors))
|
||||||
|
|
||||||
/* We don't want to include the .ctor section from
|
/* We don't want to include the .ctor section from
|
||||||
from the crtend.o file until after the sorted ctors.
|
from the crtend.o file until after the sorted ctors.
|
||||||
The .ctor section from the crtend file contains the
|
The .ctor section from the crtend file contains the
|
||||||
end of ctors marker and it must be last */
|
end of ctors marker and it must be last */
|
||||||
|
|
||||||
KEEP (*(EXCLUDE_FILE (*crtend.o $OTHER_EXCLUDE_FILES) .ctors))
|
KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .ctors))
|
||||||
KEEP (*(SORT(.ctors.*)))
|
KEEP (*(SORT(.ctors.*)))
|
||||||
KEEP (*(.ctors))
|
KEEP (*(.ctors))
|
||||||
${CONSTRUCTING+${CTOR_END}}
|
${CONSTRUCTING+${CTOR_END}}
|
||||||
"
|
"
|
||||||
DTOR="
|
DTOR="
|
||||||
${CONSTRUCTING+${DTOR_START}}
|
${CONSTRUCTING+${DTOR_START}}
|
||||||
KEEP (*crtbegin.o(.dtors))
|
KEEP (*crtbegin*.o(.dtors))
|
||||||
KEEP (*(EXCLUDE_FILE (*crtend.o $OTHER_EXCLUDE_FILES) .dtors))
|
KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .dtors))
|
||||||
KEEP (*(SORT(.dtors.*)))
|
KEEP (*(SORT(.dtors.*)))
|
||||||
KEEP (*(.dtors))
|
KEEP (*(.dtors))
|
||||||
${CONSTRUCTING+${DTOR_END}}
|
${CONSTRUCTING+${DTOR_END}}
|
||||||
|
@ -20,14 +20,14 @@ CTOR=".ctors ${CONSTRUCTING-0} :
|
|||||||
doesn't matter which directory crtbegin.o
|
doesn't matter which directory crtbegin.o
|
||||||
is in. */
|
is in. */
|
||||||
|
|
||||||
KEEP (*crtbegin.o(.ctors))
|
KEEP (*crtbegin*.o(.ctors))
|
||||||
|
|
||||||
/* We don't want to include the .ctor section from
|
/* We don't want to include the .ctor section from
|
||||||
from the crtend.o file until after the sorted ctors.
|
from the crtend.o file until after the sorted ctors.
|
||||||
The .ctor section from the crtend file contains the
|
The .ctor section from the crtend file contains the
|
||||||
end of ctors marker and it must be last */
|
end of ctors marker and it must be last */
|
||||||
|
|
||||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
|
KEEP (*(EXCLUDE_FILE (*crtend*.o) .ctors))
|
||||||
KEEP (*(SORT(.ctors.*)))
|
KEEP (*(SORT(.ctors.*)))
|
||||||
KEEP (*(.ctors))
|
KEEP (*(.ctors))
|
||||||
${CONSTRUCTING+${CTOR_END}}
|
${CONSTRUCTING+${CTOR_END}}
|
||||||
@ -36,8 +36,8 @@ CTOR=".ctors ${CONSTRUCTING-0} :
|
|||||||
DTOR=" .dtors ${CONSTRUCTING-0} :
|
DTOR=" .dtors ${CONSTRUCTING-0} :
|
||||||
{
|
{
|
||||||
${CONSTRUCTING+${DTOR_START}}
|
${CONSTRUCTING+${DTOR_START}}
|
||||||
KEEP (*crtbegin.o(.dtors))
|
KEEP (*crtbegin*.o(.dtors))
|
||||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
|
KEEP (*(EXCLUDE_FILE (*crtend*.o) .dtors))
|
||||||
KEEP (*(SORT(.dtors.*)))
|
KEEP (*(SORT(.dtors.*)))
|
||||||
KEEP (*(.dtors))
|
KEEP (*(.dtors))
|
||||||
${CONSTRUCTING+${DTOR_END}}
|
${CONSTRUCTING+${DTOR_END}}
|
||||||
|
@ -12,14 +12,14 @@ CTOR=".ctors ${CONSTRUCTING-0} :
|
|||||||
doesn't matter which directory crtbegin.o
|
doesn't matter which directory crtbegin.o
|
||||||
is in. */
|
is in. */
|
||||||
|
|
||||||
KEEP (*crtbegin.o(.ctors))
|
KEEP (*crtbegin*.o(.ctors))
|
||||||
|
|
||||||
/* We don't want to include the .ctor section from
|
/* We don't want to include the .ctor section from
|
||||||
from the crtend.o file until after the sorted ctors.
|
from the crtend.o file until after the sorted ctors.
|
||||||
The .ctor section from the crtend file contains the
|
The .ctor section from the crtend file contains the
|
||||||
end of ctors marker and it must be last */
|
end of ctors marker and it must be last */
|
||||||
|
|
||||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
|
KEEP (*(EXCLUDE_FILE (*crtend*.o) .ctors))
|
||||||
KEEP (*(SORT(.ctors.*)))
|
KEEP (*(SORT(.ctors.*)))
|
||||||
KEEP (*(.ctors))
|
KEEP (*(.ctors))
|
||||||
${CONSTRUCTING+ __CTOR_END__ = .; }
|
${CONSTRUCTING+ __CTOR_END__ = .; }
|
||||||
@ -28,8 +28,8 @@ CTOR=".ctors ${CONSTRUCTING-0} :
|
|||||||
DTOR=" .dtors ${CONSTRUCTING-0} :
|
DTOR=" .dtors ${CONSTRUCTING-0} :
|
||||||
{
|
{
|
||||||
${CONSTRUCTING+ __DTOR_LIST__ = .; }
|
${CONSTRUCTING+ __DTOR_LIST__ = .; }
|
||||||
KEEP (*crtbegin.o(.dtors))
|
KEEP (*crtbegin*.o(.dtors))
|
||||||
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
|
KEEP (*(EXCLUDE_FILE (*crtend*.o) .dtors))
|
||||||
KEEP (*(SORT(.dtors.*)))
|
KEEP (*(SORT(.dtors.*)))
|
||||||
KEEP (*(.dtors))
|
KEEP (*(.dtors))
|
||||||
${CONSTRUCTING+ __DTOR_END__ = .; }
|
${CONSTRUCTING+ __DTOR_END__ = .; }
|
||||||
|
@ -125,14 +125,14 @@ CTOR=".ctors ${CONSTRUCTING-0} :
|
|||||||
doesn't matter which directory crtbegin.o
|
doesn't matter which directory crtbegin.o
|
||||||
is in. */
|
is in. */
|
||||||
|
|
||||||
KEEP (*crtbegin.o(.ctors))
|
KEEP (*crtbegin*.o(.ctors))
|
||||||
|
|
||||||
/* We don't want to include the .ctor section from
|
/* We don't want to include the .ctor section from
|
||||||
from the crtend.o file until after the sorted ctors.
|
from the crtend.o file until after the sorted ctors.
|
||||||
The .ctor section from the crtend file contains the
|
The .ctor section from the crtend file contains the
|
||||||
end of ctors marker and it must be last */
|
end of ctors marker and it must be last */
|
||||||
|
|
||||||
KEEP (*(EXCLUDE_FILE (*crtend.o $OTHER_EXCLUDE_FILES) .ctors))
|
KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .ctors))
|
||||||
KEEP (*(SORT(.ctors.*)))
|
KEEP (*(SORT(.ctors.*)))
|
||||||
KEEP (*(.ctors))
|
KEEP (*(.ctors))
|
||||||
${CONSTRUCTING+${CTOR_END}}
|
${CONSTRUCTING+${CTOR_END}}
|
||||||
@ -140,8 +140,8 @@ CTOR=".ctors ${CONSTRUCTING-0} :
|
|||||||
DTOR=".dtors ${CONSTRUCTING-0} :
|
DTOR=".dtors ${CONSTRUCTING-0} :
|
||||||
{
|
{
|
||||||
${CONSTRUCTING+${DTOR_START}}
|
${CONSTRUCTING+${DTOR_START}}
|
||||||
KEEP (*crtbegin.o(.dtors))
|
KEEP (*crtbegin*.o(.dtors))
|
||||||
KEEP (*(EXCLUDE_FILE (*crtend.o $OTHER_EXCLUDE_FILES) .dtors))
|
KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .dtors))
|
||||||
KEEP (*(SORT(.dtors.*)))
|
KEEP (*(SORT(.dtors.*)))
|
||||||
KEEP (*(.dtors))
|
KEEP (*(.dtors))
|
||||||
${CONSTRUCTING+${DTOR_END}}
|
${CONSTRUCTING+${DTOR_END}}
|
||||||
|
@ -84,14 +84,14 @@ CTOR=".ctors ${CONSTRUCTING-0} :
|
|||||||
doesn't matter which directory crtbegin.o
|
doesn't matter which directory crtbegin.o
|
||||||
is in. */
|
is in. */
|
||||||
|
|
||||||
KEEP (*crtbegin.o(.ctors))
|
KEEP (*crtbegin*.o(.ctors))
|
||||||
|
|
||||||
/* We don't want to include the .ctor section from
|
/* We don't want to include the .ctor section from
|
||||||
from the crtend.o file until after the sorted ctors.
|
from the crtend.o file until after the sorted ctors.
|
||||||
The .ctor section from the crtend file contains the
|
The .ctor section from the crtend file contains the
|
||||||
end of ctors marker and it must be last */
|
end of ctors marker and it must be last */
|
||||||
|
|
||||||
KEEP (*(EXCLUDE_FILE (*crtend.o $OTHER_EXCLUDE_FILES) .ctors))
|
KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .ctors))
|
||||||
KEEP (*(SORT(.ctors.*)))
|
KEEP (*(SORT(.ctors.*)))
|
||||||
KEEP (*(.ctors))
|
KEEP (*(.ctors))
|
||||||
${CONSTRUCTING+${CTOR_END}}
|
${CONSTRUCTING+${CTOR_END}}
|
||||||
@ -100,8 +100,8 @@ CTOR=".ctors ${CONSTRUCTING-0} :
|
|||||||
DTOR=" .dtors ${CONSTRUCTING-0} :
|
DTOR=" .dtors ${CONSTRUCTING-0} :
|
||||||
{
|
{
|
||||||
${CONSTRUCTING+${DTOR_START}}
|
${CONSTRUCTING+${DTOR_START}}
|
||||||
KEEP (*crtbegin.o(.dtors))
|
KEEP (*crtbegin*.o(.dtors))
|
||||||
KEEP (*(EXCLUDE_FILE (*crtend.o $OTHER_EXCLUDE_FILES) .dtors))
|
KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .dtors))
|
||||||
KEEP (*(SORT(.dtors.*)))
|
KEEP (*(SORT(.dtors.*)))
|
||||||
KEEP (*(.dtors))
|
KEEP (*(.dtors))
|
||||||
${CONSTRUCTING+${DTOR_END}}
|
${CONSTRUCTING+${DTOR_END}}
|
||||||
|
@ -29,8 +29,8 @@ SECTIONS
|
|||||||
${RELOCATING+ PROVIDE (__ctors_start = .);}
|
${RELOCATING+ PROVIDE (__ctors_start = .);}
|
||||||
${RELOCATING+ PROVIDE (_ctors = .);}
|
${RELOCATING+ PROVIDE (_ctors = .);}
|
||||||
${RELOCATING+ PROVIDE (__ctors = .);}
|
${RELOCATING+ PROVIDE (__ctors = .);}
|
||||||
${RELOCATING+ KEEP (*crtbegin.o(.ctors))}
|
${RELOCATING+ KEEP (*crtbegin*.o(.ctors))}
|
||||||
${RELOCATING+ KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))}
|
${RELOCATING+ KEEP (*(EXCLUDE_FILE (*crtend*.o) .ctors))}
|
||||||
${RELOCATING+ KEEP (*(SORT(.ctors.*)))}
|
${RELOCATING+ KEEP (*(SORT(.ctors.*)))}
|
||||||
${RELOCATING+ KEEP (*(.ctors))}
|
${RELOCATING+ KEEP (*(.ctors))}
|
||||||
${RELOCATING+ PROVIDE (_ctors_end = .);}
|
${RELOCATING+ PROVIDE (_ctors_end = .);}
|
||||||
@ -40,8 +40,8 @@ SECTIONS
|
|||||||
${RELOCATING+ PROVIDE (__dtors_start = .);}
|
${RELOCATING+ PROVIDE (__dtors_start = .);}
|
||||||
${RELOCATING+ PROVIDE (_dtors = .);}
|
${RELOCATING+ PROVIDE (_dtors = .);}
|
||||||
${RELOCATING+ PROVIDE (__dtors = .);}
|
${RELOCATING+ PROVIDE (__dtors = .);}
|
||||||
${RELOCATING+ KEEP (*crtbegin.o(.dtors))}
|
${RELOCATING+ KEEP (*crtbegin*.o(.dtors))}
|
||||||
${RELOCATING+ KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))}
|
${RELOCATING+ KEEP (*(EXCLUDE_FILE (*crtend*.o) .dtors))}
|
||||||
${RELOCATING+ KEEP (*(SORT(.dtors.*)))}
|
${RELOCATING+ KEEP (*(SORT(.dtors.*)))}
|
||||||
${RELOCATING+ KEEP (*(.dtors))}
|
${RELOCATING+ KEEP (*(.dtors))}
|
||||||
${RELOCATING+ PROVIDE (_dtors_end = .);}
|
${RELOCATING+ PROVIDE (_dtors_end = .);}
|
||||||
|
@ -68,14 +68,14 @@ CTOR=".ctors ${CONSTRUCTING-0} :
|
|||||||
doesn't matter which directory crtbegin.o
|
doesn't matter which directory crtbegin.o
|
||||||
is in. */
|
is in. */
|
||||||
|
|
||||||
KEEP (*crtbegin.o(.ctors))
|
KEEP (*crtbegin*.o(.ctors))
|
||||||
|
|
||||||
/* We don't want to include the .ctor section from
|
/* We don't want to include the .ctor section from
|
||||||
from the crtend.o file until after the sorted ctors.
|
from the crtend.o file until after the sorted ctors.
|
||||||
The .ctor section from the crtend file contains the
|
The .ctor section from the crtend file contains the
|
||||||
end of ctors marker and it must be last */
|
end of ctors marker and it must be last */
|
||||||
|
|
||||||
KEEP (*(EXCLUDE_FILE (*crtend.o $OTHER_EXCLUDE_FILES) .ctors))
|
KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .ctors))
|
||||||
KEEP (*(SORT(.ctors.*)))
|
KEEP (*(SORT(.ctors.*)))
|
||||||
KEEP (*(.ctors))
|
KEEP (*(.ctors))
|
||||||
${CONSTRUCTING+${CTOR_END}}
|
${CONSTRUCTING+${CTOR_END}}
|
||||||
@ -84,8 +84,8 @@ CTOR=".ctors ${CONSTRUCTING-0} :
|
|||||||
DTOR=" .dtors ${CONSTRUCTING-0} :
|
DTOR=" .dtors ${CONSTRUCTING-0} :
|
||||||
{
|
{
|
||||||
${CONSTRUCTING+${DTOR_START}}
|
${CONSTRUCTING+${DTOR_START}}
|
||||||
KEEP (*crtbegin.o(.dtors))
|
KEEP (*crtbegin*.o(.dtors))
|
||||||
KEEP (*(EXCLUDE_FILE (*crtend.o $OTHER_EXCLUDE_FILES) .dtors))
|
KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .dtors))
|
||||||
KEEP (*(SORT(.dtors.*)))
|
KEEP (*(SORT(.dtors.*)))
|
||||||
KEEP (*(.dtors))
|
KEEP (*(.dtors))
|
||||||
${CONSTRUCTING+${DTOR_END}}
|
${CONSTRUCTING+${DTOR_END}}
|
||||||
|
Reference in New Issue
Block a user