From 877d60f7bc7acb9ca25e8d88963394606e803b9c Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 14 Apr 2003 13:03:17 +0000 Subject: [PATCH] * 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. --- ld/ChangeLog | 55 +++++++++++++++++++++++-------------- ld/scripttempl/crisaout.sc | 8 +++--- ld/scripttempl/elf.sc | 8 +++--- ld/scripttempl/elf_chaos.sc | 8 +++--- ld/scripttempl/elfd10v.sc | 8 +++--- ld/scripttempl/elfd30v.sc | 8 +++--- ld/scripttempl/elfxtensa.sc | 8 +++--- ld/scripttempl/iq2000.sc | 8 +++--- ld/scripttempl/mmo.sc | 8 +++--- ld/scripttempl/xstormy16.sc | 8 +++--- 10 files changed, 71 insertions(+), 56 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 848853fb223..5c280dce164 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,18 @@ +2003-04-14 Alan Modra + + From Prashanth Tamraparni + * 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 * scripttempl/elf32msp430.sc: Add initX, finiX, ctors, dtors @@ -56,16 +71,16 @@ 2003-04-01 Bob Wilson - * Makefile.am (ALL_EMULATIONS): Add eelf32xtensa.o. - (eelf32xtensa.c): New target. - * Makefile.in: Regenerate. - * configure.tgt: Handle xtensa-*-*. - * gen-doc.texi: Set XTENSA variable. - * ld.texinfo: Set XTENSA variable. Add new Xtensa node. - * emulparams/elf32xtensa.sh: New file. - * emulparams/xtensa-config.sh: Likewise. - * emultempl/xtensaelf.em: Likewise. - * scripttempl/elfxtensa.sc: Likewise. + * Makefile.am (ALL_EMULATIONS): Add eelf32xtensa.o. + (eelf32xtensa.c): New target. + * Makefile.in: Regenerate. + * configure.tgt: Handle xtensa-*-*. + * gen-doc.texi: Set XTENSA variable. + * ld.texinfo: Set XTENSA variable. Add new Xtensa node. + * emulparams/elf32xtensa.sh: New file. + * emulparams/xtensa-config.sh: Likewise. + * emultempl/xtensaelf.em: Likewise. + * scripttempl/elfxtensa.sc: Likewise. 2003-04-01 Jakub Jelinek @@ -95,11 +110,11 @@ directory name. (add_keepsyms_file): Fix memory leak. * ldmisc.c (vfinfo): Likewise. - * lexsup.c (parse_args): Likewise + * lexsup.c (parse_args): Likewise. 2003-03-25 Stan Cox Nick Clifton - + Contribute support for Intel's iWMMXt chip - an ARM variant: * emulparams/armelf.sh (OTHER_READONLY_SECTIONS): Define. @@ -131,12 +146,12 @@ * ldfile.c (ldfile_try_open_bfd): Pop lexer start condition after eof. -2003-03-18 Danny Smith +2003-03-18 Danny Smith * defilep.y (opt_base): If no number given, set to default (-1), not 0. -2003-03-13 Danny Smith +2003-03-13 Danny Smith * deffilep.y (def_import): Use default extension of "dll" if no extension provided in parsed IMPORT definition. @@ -229,7 +244,7 @@ * emultempl/pe.em: Likewise. * emultempl/ticoff.em: Likewise. * emultempl/elf32.em: Likewise. Don't duplicate long options either. - (gld${EMULATION_NAME}_add_sysroot): Prototype. + (gld${EMULATION_NAME}_add_sysroot): Prototype. * emultempl/armelf.em (PARSE_AND_LIST_LONGOPTS): Don't duplicate options. * emultempl/hppaelf.em (PARSE_AND_LIST_LONGOPTS): Likewise. @@ -279,7 +294,7 @@ * gen-doc.texi: Set ARM and HPPA variables. * ld.texinfo: Fix typos and obvious texinfo mistakes. Make section title capitalization more consistent. Add missing menu entries for - machine-specific sections and conditionalize them consistently. + machine-specific sections and conditionalize them consistently. Conditionalize text that is irrelevant when SingleFormat is set. Add @group divisions to improve page breaks in long examples. Use @iftex/@ifnottex instead of @iftex/@ifinfo so that HTML output @@ -335,10 +350,10 @@ 2003-02-17 Nick Clifton * ldmain.c (main) Default allow_shlib_undefined to true. - * lexsup.c (ld_options): Add --no-allow-shlib-undefined. - (parse_args): Parse the new switch. - * ld.texinfo: Document new switch and default behaviour of - allowing undefined symbols in shared libraries. + * lexsup.c (ld_options): Add --no-allow-shlib-undefined. + (parse_args): Parse the new switch. + * ld.texinfo: Document new switch and default behaviour of + allowing undefined symbols in shared libraries. 2003-02-11 Dmitry Diky diff --git a/ld/scripttempl/crisaout.sc b/ld/scripttempl/crisaout.sc index c729668a5bd..acdca7a9122 100644 --- a/ld/scripttempl/crisaout.sc +++ b/ld/scripttempl/crisaout.sc @@ -48,15 +48,15 @@ SECTIONS /* Cater to linking from ELF. */ ${CONSTRUCTING+ PROVIDE(___ctors = .);} ${CONSTRUCTING+ ___elf_ctors_dtors_begin = .;} - ${CONSTRUCTING+ KEEP (*crtbegin.o(.ctors))} - ${CONSTRUCTING+ KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))} + ${CONSTRUCTING+ KEEP (*crtbegin*.o(.ctors))} + ${CONSTRUCTING+ KEEP (*(EXCLUDE_FILE (*crtend*.o) .ctors))} ${CONSTRUCTING+ KEEP (*(SORT(.ctors.*)))} ${CONSTRUCTING+ KEEP (*(.ctors))} ${CONSTRUCTING+ PROVIDE(___ctors_end = .);} ${CONSTRUCTING+ PROVIDE(___dtors = .);} - ${CONSTRUCTING+ KEEP (*crtbegin.o(.dtors))} - ${CONSTRUCTING+ KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))} + ${CONSTRUCTING+ KEEP (*crtbegin*.o(.dtors))} + ${CONSTRUCTING+ KEEP (*(EXCLUDE_FILE (*crtend*.o) .dtors))} ${CONSTRUCTING+ KEEP (*(SORT(.dtors.*)))} ${CONSTRUCTING+ KEEP (*(.dtors))} ${CONSTRUCTING+ PROVIDE(___dtors_end = .);} diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc index 0c8ddb522bf..42d7bda0f51 100644 --- a/ld/scripttempl/elf.sc +++ b/ld/scripttempl/elf.sc @@ -127,14 +127,14 @@ CTOR=".ctors ${CONSTRUCTING-0} : doesn't matter which directory crtbegin.o is in. */ - KEEP (*crtbegin.o(.ctors)) + KEEP (*crtbegin*.o(.ctors)) /* We don't want to include the .ctor section from from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the 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 (*(.ctors)) ${CONSTRUCTING+${CTOR_END}} @@ -142,8 +142,8 @@ CTOR=".ctors ${CONSTRUCTING-0} : DTOR=".dtors ${CONSTRUCTING-0} : { ${CONSTRUCTING+${DTOR_START}} - KEEP (*crtbegin.o(.dtors)) - KEEP (*(EXCLUDE_FILE (*crtend.o $OTHER_EXCLUDE_FILES) .dtors)) + KEEP (*crtbegin*.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) ${CONSTRUCTING+${DTOR_END}} diff --git a/ld/scripttempl/elf_chaos.sc b/ld/scripttempl/elf_chaos.sc index 3307689c02d..35812898e1d 100644 --- a/ld/scripttempl/elf_chaos.sc +++ b/ld/scripttempl/elf_chaos.sc @@ -116,22 +116,22 @@ CTOR=" doesn't matter which directory crtbegin.o is in. */ - KEEP (*crtbegin.o(.ctors)) + KEEP (*crtbegin*.o(.ctors)) /* We don't want to include the .ctor section from from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the 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 (*(.ctors)) ${CONSTRUCTING+${CTOR_END}} " DTOR=" ${CONSTRUCTING+${DTOR_START}} - KEEP (*crtbegin.o(.dtors)) - KEEP (*(EXCLUDE_FILE (*crtend.o $OTHER_EXCLUDE_FILES) .dtors)) + KEEP (*crtbegin*.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) ${CONSTRUCTING+${DTOR_END}} diff --git a/ld/scripttempl/elfd10v.sc b/ld/scripttempl/elfd10v.sc index b24b813b3a4..834efe26f7e 100644 --- a/ld/scripttempl/elfd10v.sc +++ b/ld/scripttempl/elfd10v.sc @@ -20,14 +20,14 @@ CTOR=".ctors ${CONSTRUCTING-0} : doesn't matter which directory crtbegin.o is in. */ - KEEP (*crtbegin.o(.ctors)) + KEEP (*crtbegin*.o(.ctors)) /* We don't want to include the .ctor section from from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the 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 (*(.ctors)) ${CONSTRUCTING+${CTOR_END}} @@ -36,8 +36,8 @@ CTOR=".ctors ${CONSTRUCTING-0} : DTOR=" .dtors ${CONSTRUCTING-0} : { ${CONSTRUCTING+${DTOR_START}} - KEEP (*crtbegin.o(.dtors)) - KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) + KEEP (*crtbegin*.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend*.o) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) ${CONSTRUCTING+${DTOR_END}} diff --git a/ld/scripttempl/elfd30v.sc b/ld/scripttempl/elfd30v.sc index b1d7b94705f..12d764f285e 100644 --- a/ld/scripttempl/elfd30v.sc +++ b/ld/scripttempl/elfd30v.sc @@ -12,14 +12,14 @@ CTOR=".ctors ${CONSTRUCTING-0} : doesn't matter which directory crtbegin.o is in. */ - KEEP (*crtbegin.o(.ctors)) + KEEP (*crtbegin*.o(.ctors)) /* We don't want to include the .ctor section from from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the 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 (*(.ctors)) ${CONSTRUCTING+ __CTOR_END__ = .; } @@ -28,8 +28,8 @@ CTOR=".ctors ${CONSTRUCTING-0} : DTOR=" .dtors ${CONSTRUCTING-0} : { ${CONSTRUCTING+ __DTOR_LIST__ = .; } - KEEP (*crtbegin.o(.dtors)) - KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) + KEEP (*crtbegin*.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend*.o) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) ${CONSTRUCTING+ __DTOR_END__ = .; } diff --git a/ld/scripttempl/elfxtensa.sc b/ld/scripttempl/elfxtensa.sc index a4ba5c8188c..f99d2ce0c43 100644 --- a/ld/scripttempl/elfxtensa.sc +++ b/ld/scripttempl/elfxtensa.sc @@ -125,14 +125,14 @@ CTOR=".ctors ${CONSTRUCTING-0} : doesn't matter which directory crtbegin.o is in. */ - KEEP (*crtbegin.o(.ctors)) + KEEP (*crtbegin*.o(.ctors)) /* We don't want to include the .ctor section from from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the 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 (*(.ctors)) ${CONSTRUCTING+${CTOR_END}} @@ -140,8 +140,8 @@ CTOR=".ctors ${CONSTRUCTING-0} : DTOR=".dtors ${CONSTRUCTING-0} : { ${CONSTRUCTING+${DTOR_START}} - KEEP (*crtbegin.o(.dtors)) - KEEP (*(EXCLUDE_FILE (*crtend.o $OTHER_EXCLUDE_FILES) .dtors)) + KEEP (*crtbegin*.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) ${CONSTRUCTING+${DTOR_END}} diff --git a/ld/scripttempl/iq2000.sc b/ld/scripttempl/iq2000.sc index a07196ae444..db3a597ddbb 100644 --- a/ld/scripttempl/iq2000.sc +++ b/ld/scripttempl/iq2000.sc @@ -84,14 +84,14 @@ CTOR=".ctors ${CONSTRUCTING-0} : doesn't matter which directory crtbegin.o is in. */ - KEEP (*crtbegin.o(.ctors)) + KEEP (*crtbegin*.o(.ctors)) /* We don't want to include the .ctor section from from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the 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 (*(.ctors)) ${CONSTRUCTING+${CTOR_END}} @@ -100,8 +100,8 @@ CTOR=".ctors ${CONSTRUCTING-0} : DTOR=" .dtors ${CONSTRUCTING-0} : { ${CONSTRUCTING+${DTOR_START}} - KEEP (*crtbegin.o(.dtors)) - KEEP (*(EXCLUDE_FILE (*crtend.o $OTHER_EXCLUDE_FILES) .dtors)) + KEEP (*crtbegin*.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) ${CONSTRUCTING+${DTOR_END}} diff --git a/ld/scripttempl/mmo.sc b/ld/scripttempl/mmo.sc index 72e8b49dab2..b93953db53a 100644 --- a/ld/scripttempl/mmo.sc +++ b/ld/scripttempl/mmo.sc @@ -29,8 +29,8 @@ SECTIONS ${RELOCATING+ PROVIDE (__ctors_start = .);} ${RELOCATING+ PROVIDE (_ctors = .);} ${RELOCATING+ PROVIDE (__ctors = .);} - ${RELOCATING+ KEEP (*crtbegin.o(.ctors))} - ${RELOCATING+ KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))} + ${RELOCATING+ KEEP (*crtbegin*.o(.ctors))} + ${RELOCATING+ KEEP (*(EXCLUDE_FILE (*crtend*.o) .ctors))} ${RELOCATING+ KEEP (*(SORT(.ctors.*)))} ${RELOCATING+ KEEP (*(.ctors))} ${RELOCATING+ PROVIDE (_ctors_end = .);} @@ -40,8 +40,8 @@ SECTIONS ${RELOCATING+ PROVIDE (__dtors_start = .);} ${RELOCATING+ PROVIDE (_dtors = .);} ${RELOCATING+ PROVIDE (__dtors = .);} - ${RELOCATING+ KEEP (*crtbegin.o(.dtors))} - ${RELOCATING+ KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))} + ${RELOCATING+ KEEP (*crtbegin*.o(.dtors))} + ${RELOCATING+ KEEP (*(EXCLUDE_FILE (*crtend*.o) .dtors))} ${RELOCATING+ KEEP (*(SORT(.dtors.*)))} ${RELOCATING+ KEEP (*(.dtors))} ${RELOCATING+ PROVIDE (_dtors_end = .);} diff --git a/ld/scripttempl/xstormy16.sc b/ld/scripttempl/xstormy16.sc index 8981f2d859a..94f6093191a 100644 --- a/ld/scripttempl/xstormy16.sc +++ b/ld/scripttempl/xstormy16.sc @@ -68,14 +68,14 @@ CTOR=".ctors ${CONSTRUCTING-0} : doesn't matter which directory crtbegin.o is in. */ - KEEP (*crtbegin.o(.ctors)) + KEEP (*crtbegin*.o(.ctors)) /* We don't want to include the .ctor section from from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the 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 (*(.ctors)) ${CONSTRUCTING+${CTOR_END}} @@ -84,8 +84,8 @@ CTOR=".ctors ${CONSTRUCTING-0} : DTOR=" .dtors ${CONSTRUCTING-0} : { ${CONSTRUCTING+${DTOR_START}} - KEEP (*crtbegin.o(.dtors)) - KEEP (*(EXCLUDE_FILE (*crtend.o $OTHER_EXCLUDE_FILES) .dtors)) + KEEP (*crtbegin*.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) ${CONSTRUCTING+${DTOR_END}} -- 2.30.2