From 9f4fb50211b7f57d241f911223874a1d16ae9c1a Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 3 Aug 2005 05:09:49 +0000 Subject: [PATCH] * ldlang.c (exp_init_os): Handle etree_provide. * emulparams/armelf.sh (OTHER_END_SYMBOLS): Rename from.. (OTHER_BSS_END_SYMBOLS): ..this. * emulparams/armelf_linux.sh: Likewise. * emulparams/armnto.sh: Likewise. * emulparams/criself.sh: Likewise. * emulparams/crislinux.sh: Likewise. * emulparams/elf32frv.sh: Likewise. * emulparams/elf32mcore.sh: Likewise. * emulparams/elf32ppc.sh: Likewise. * emulparams/elf32ppclinux.sh: Likewise. * emulparams/hppa64linux.sh: Likewise. * scripttempl/armbpabi.sc: Substitute $OTHER_END_SYMBOLS, not $OTHER_BSS_END_SYMBOLS. * scripttempl/elf32sh-symbian.sc: Likewise. * scripttempl/elf_chaos.sc: Likewise. * scripttempl/iq2000.sc: Likewise. * scripttempl/xstormy16.sc: Likewise. * scripttempl/elf.sc: Likewise. Delete __bss_start comment. * scripttempl/elfxtensa.sc: Likewise. --- ld/ChangeLog | 23 +++++++++++++++++++++++ ld/emulparams/armelf.sh | 2 +- ld/emulparams/armelf_linux.sh | 2 +- ld/emulparams/armnto.sh | 2 +- ld/emulparams/criself.sh | 2 +- ld/emulparams/crislinux.sh | 2 +- ld/emulparams/elf32frv.sh | 2 +- ld/emulparams/elf32mcore.sh | 2 +- ld/emulparams/elf32ppc.sh | 2 +- ld/emulparams/elf32ppclinux.sh | 2 +- ld/emulparams/hppa64linux.sh | 4 ++-- ld/ldlang.c | 1 + ld/scripttempl/armbpabi.sc | 2 +- ld/scripttempl/elf.sc | 4 +--- ld/scripttempl/elf32sh-symbian.sc | 2 +- ld/scripttempl/elf_chaos.sc | 2 +- ld/scripttempl/elfxtensa.sc | 4 +--- ld/scripttempl/iq2000.sc | 2 +- ld/scripttempl/xstormy16.sc | 2 +- 19 files changed, 42 insertions(+), 22 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 710bf8d2c2d..14f2bf4ddea 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,26 @@ +2005-08-03 Alan Modra + + * ldlang.c (exp_init_os): Handle etree_provide. + * emulparams/armelf.sh (OTHER_END_SYMBOLS): Rename from.. + (OTHER_BSS_END_SYMBOLS): ..this. + * emulparams/armelf_linux.sh: Likewise. + * emulparams/armnto.sh: Likewise. + * emulparams/criself.sh: Likewise. + * emulparams/crislinux.sh: Likewise. + * emulparams/elf32frv.sh: Likewise. + * emulparams/elf32mcore.sh: Likewise. + * emulparams/elf32ppc.sh: Likewise. + * emulparams/elf32ppclinux.sh: Likewise. + * emulparams/hppa64linux.sh: Likewise. + * scripttempl/armbpabi.sc: Substitute $OTHER_END_SYMBOLS, not + $OTHER_BSS_END_SYMBOLS. + * scripttempl/elf32sh-symbian.sc: Likewise. + * scripttempl/elf_chaos.sc: Likewise. + * scripttempl/iq2000.sc: Likewise. + * scripttempl/xstormy16.sc: Likewise. + * scripttempl/elf.sc: Likewise. Delete __bss_start comment. + * scripttempl/elfxtensa.sc: Likewise. + 2005-07-29 Nick Clifton * ldmain.c (main): Allow -shared and -static to be used together. diff --git a/ld/emulparams/armelf.sh b/ld/emulparams/armelf.sh index 497e1cc7f2a..c3d5bd0f847 100644 --- a/ld/emulparams/armelf.sh +++ b/ld/emulparams/armelf.sh @@ -8,7 +8,7 @@ TEMPLATE_NAME=elf32 EXTRA_EM_FILE=armelf OTHER_TEXT_SECTIONS='*(.glue_7t) *(.glue_7)' OTHER_BSS_SYMBOLS='__bss_start__ = .;' -OTHER_BSS_END_SYMBOLS='_bss_end__ = . ; __bss_end__ = . ; __end__ = . ;' +OTHER_END_SYMBOLS='_bss_end__ = . ; __bss_end__ = . ; __end__ = . ;' OTHER_SECTIONS='.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }' OTHER_READONLY_SECTIONS=" .ARM.extab ${RELOCATING-0} : { *(.ARM.extab${RELOCATING+* .gnu.linkonce.armextab.*}) } diff --git a/ld/emulparams/armelf_linux.sh b/ld/emulparams/armelf_linux.sh index 6331d1ee9ce..fd927c51907 100644 --- a/ld/emulparams/armelf_linux.sh +++ b/ld/emulparams/armelf_linux.sh @@ -13,7 +13,7 @@ GENERATE_PIE_SCRIPT=yes DATA_START_SYMBOLS='__data_start = . ;'; OTHER_TEXT_SECTIONS='*(.glue_7t) *(.glue_7)' OTHER_BSS_SYMBOLS='__bss_start__ = .;' -OTHER_BSS_END_SYMBOLS='_bss_end__ = . ; __bss_end__ = . ; __end__ = . ;' +OTHER_END_SYMBOLS='_bss_end__ = . ; __bss_end__ = . ; __end__ = . ;' OTHER_SECTIONS='.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }' TEXT_START_ADDR=0x00008000 diff --git a/ld/emulparams/armnto.sh b/ld/emulparams/armnto.sh index 7e4644bc80c..7e468c09f92 100644 --- a/ld/emulparams/armnto.sh +++ b/ld/emulparams/armnto.sh @@ -8,7 +8,7 @@ TEMPLATE_NAME=elf32 EXTRA_EM_FILE=armelf OTHER_TEXT_SECTIONS='*(.glue_7t) *(.glue_7)' OTHER_BSS_SYMBOLS='__bss_start__ = .;' -OTHER_BSS_END_SYMBOLS='_bss_end__ = . ; __bss_end__ = . ; __end__ = . ;' +OTHER_END_SYMBOLS='_bss_end__ = . ; __bss_end__ = . ; __end__ = . ;' DATA_START_SYMBOLS='__data_start = . ;'; diff --git a/ld/emulparams/criself.sh b/ld/emulparams/criself.sh index 8ac21f92fc9..d63424db56c 100644 --- a/ld/emulparams/criself.sh +++ b/ld/emulparams/criself.sh @@ -42,7 +42,7 @@ OTHER_SDATA_SECTIONS="${RELOCATING+PROVIDE (__Edata = .);}" # address, we can't get to it with OTHER_BSS_SYMBOLS, neither can we # use ADDR(.bss) there. Instead, we use the symbol support for the # end symbol. -OTHER_BSS_END_SYMBOLS=' +OTHER_END_SYMBOLS=' PROVIDE (__Ebss = .); PROVIDE (__end = .); __Sbss = ADDR (.bss); diff --git a/ld/emulparams/crislinux.sh b/ld/emulparams/crislinux.sh index e54f5fbca47..8d7ba5fd796 100644 --- a/ld/emulparams/crislinux.sh +++ b/ld/emulparams/crislinux.sh @@ -28,7 +28,7 @@ DATA_START_SYMBOLS='PROVIDE (__Sdata = .);' # Smuggle an "OTHER_DATA_END_SYMBOLS" here. OTHER_SDATA_SECTIONS="${RELOCATING+PROVIDE (__Edata = .);}" OTHER_BSS_SYMBOLS='PROVIDE (__Sbss = .);' -OTHER_BSS_END_SYMBOLS='PROVIDE (__Ebss = .);' +OTHER_END_SYMBOLS='PROVIDE (__Ebss = .);' # Also add the other symbols provided for rsim/xsim and elinux. OTHER_END_SYMBOLS=' diff --git a/ld/emulparams/elf32frv.sh b/ld/emulparams/elf32frv.sh index 042ed8c21f8..16773b716ca 100755 --- a/ld/emulparams/elf32frv.sh +++ b/ld/emulparams/elf32frv.sh @@ -7,7 +7,7 @@ MAXPAGESIZE=256 ENTRY=_start EMBEDDED=yes OTHER_EXCLUDE_FILES='*frvend.o' -OTHER_BSS_END_SYMBOLS='__end = .;' +OTHER_END_SYMBOLS='__end = .;' DATA_START_SYMBOLS='__data_start = . ;' STACK_ADDR=0x200000 NOP=0x80000000 diff --git a/ld/emulparams/elf32mcore.sh b/ld/emulparams/elf32mcore.sh index 930a9c3c8bc..242af810e78 100644 --- a/ld/emulparams/elf32mcore.sh +++ b/ld/emulparams/elf32mcore.sh @@ -22,7 +22,7 @@ EMBEDDED=yes NOP=0x0e0e0e0e OTHER_BSS_SYMBOLS="__bss_start__ = . ;" -OTHER_BSS_END_SYMBOLS="__bss_end__ = . ;" +OTHER_END_SYMBOLS="__bss_end__ = . ;" # This sets the stack to the top of the simulator memory (2^19 bytes). STACK_ADDR=0x80000 diff --git a/ld/emulparams/elf32ppc.sh b/ld/emulparams/elf32ppc.sh index b5abcbfc500..e5b22524b55 100644 --- a/ld/emulparams/elf32ppc.sh +++ b/ld/emulparams/elf32ppc.sh @@ -23,7 +23,7 @@ PLT=".plt ${RELOCATING-0} : SPECIAL { *(.plt) }" GOTPLT="${PLT}" OTHER_TEXT_SECTIONS="*(.glink)" EXECUTABLE_SYMBOLS='PROVIDE (__stack = 0); PROVIDE (___stack = 0);' -OTHER_BSS_END_SYMBOLS='__end = .;' +OTHER_END_SYMBOLS="__end = .;" OTHER_RELRO_SECTIONS=" .fixup ${RELOCATING-0} : { *(.fixup) } .got1 ${RELOCATING-0} : { *(.got1) } diff --git a/ld/emulparams/elf32ppclinux.sh b/ld/emulparams/elf32ppclinux.sh index 9642d4a7c71..262731ab32e 100644 --- a/ld/emulparams/elf32ppclinux.sh +++ b/ld/emulparams/elf32ppclinux.sh @@ -1,7 +1,7 @@ . ${srcdir}/emulparams/elf32ppc.sh TEXT_START_ADDR=0x10000000 unset EXECUTABLE_SYMBOLS -unset OTHER_BSS_END_SYMBOLS +unset OTHER_END_SYMBOLS test -z "${RELOCATING}" || OTHER_SECTIONS="/DISCARD/ : { *(.fixup) }" OTHER_RELRO_SECTIONS=" .got1 ${RELOCATING-0} : { *(.got1) } diff --git a/ld/emulparams/hppa64linux.sh b/ld/emulparams/hppa64linux.sh index 6874c4578c3..3e0e3e74c7b 100644 --- a/ld/emulparams/hppa64linux.sh +++ b/ld/emulparams/hppa64linux.sh @@ -34,8 +34,8 @@ OTHER_BSS_SECTIONS=" .hbss ${RELOCATING-0} : { *(.hbss) } .tbss ${RELOCATING-0} : { *(.tbss) } " -#OTHER_BSS_END_SYMBOLS='PROVIDE (__TLS_SIZE = SIZEOF (.tbss));' -OTHER_BSS_END_SYMBOLS=' +#OTHER_END_SYMBOLS='PROVIDE (__TLS_SIZE = SIZEOF (.tbss));' +OTHER_END_SYMBOLS=' PROVIDE (__TLS_SIZE = 0); PROVIDE (__TLS_INIT_SIZE = 0); PROVIDE (__TLS_INIT_START = 0); diff --git a/ld/ldlang.c b/ld/ldlang.c index 7cdb7c8c688..038af17b3b4 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -1616,6 +1616,7 @@ exp_init_os (etree_type *exp) switch (exp->type.node_class) { case etree_assign: + case etree_provide: exp_init_os (exp->assign.src); break; diff --git a/ld/scripttempl/armbpabi.sc b/ld/scripttempl/armbpabi.sc index 28bac1f5d66..fb4656fb113 100644 --- a/ld/scripttempl/armbpabi.sc +++ b/ld/scripttempl/armbpabi.sc @@ -296,7 +296,7 @@ cat <