Prevent multiple definitions for _HEAP_START, _HEAP_MAX, and _STACK_START when perfor...
authorChen Gang <gang.chen.5i5j@gmail.com>
Wed, 1 Apr 2015 10:29:46 +0000 (11:29 +0100)
committerNick Clifton <nickc@redhat.com>
Wed, 1 Apr 2015 10:29:46 +0000 (11:29 +0100)
* emulparams/elf32_tic6x_le.sh: Skip OTHER_BSS_SECTIONS for
relocating operation.

ld/ChangeLog
ld/emulparams/elf32_tic6x_le.sh

index b8c506f..718cdb6 100644 (file)
@@ -1,3 +1,8 @@
+2015-04-01  Chen Gang  <gang.chen.5i5j@gmail.com>
+
+       * emulparams/elf32_tic6x_le.sh: Skip OTHER_BSS_SECTIONS for
+       relocating operation.
+
 2015-04-01  Alan Modra  <amodra@gmail.com>
 
        * ldlang.c (lang_size_sections): When alignment of sections
index dfd64c1..efd7b24 100644 (file)
@@ -44,7 +44,12 @@ OTHER_READWRITE_SECTIONS=".fardata ${RELOCATING-0} : { *(.fardata${RELOCATING+ .
 OTHER_READWRITE_RELOC_SECTIONS="
   .rel.fardata     ${RELOCATING-0} : { *(.rel.fardata${RELOCATING+ .rel.fardata.*}) }
   .rela.fardata    ${RELOCATING-0} : { *(.rela.fardata${RELOCATING+ .rela.fardata.*}) }"
-case ${target} in
+# For relocating operation, skip OTHER_BSS_SECTIONS, or will cause multiple definition.
+if [ ${RELOCATING-0} ]; then
+  OTHER_BSS_SECTIONS="";
+else
+  case ${target} in
+
     *-elf)
        OTHER_BSS_SECTIONS="
   .heap :
@@ -60,5 +65,6 @@ case ${target} in
     _STACK_START = .;
   }"
        ;;
-esac
+  esac
+fi
 ATTRS_SECTIONS='.c6xabi.attributes 0 : { KEEP (*(.c6xabi.attributes)) KEEP (*(.gnu.attributes)) }'