Replace "use use" in a warning message with "use".
[deliverable/binutils-gdb.git] / ld / emulparams / elf32_tic6x_le.sh
index ee41f4f986cad997e90fdf51a8db5eea417784fc..9ef4c171a5ccda6e02fc6e9f4473181764d5f6a0 100644 (file)
@@ -1,14 +1,28 @@
 SCRIPT_NAME=elf
-TEMPLATE_NAME=elf32
+TEMPLATE_NAME=elf
 OUTPUT_FORMAT="elf32-tic6x-le"
+BIG_OUTPUT_FORMAT="elf32-tic6x-be"
+EXTRA_EM_FILE=tic6xdsbt
+GENERATE_SHLIB_SCRIPT=yes
 # This address is an arbitrary value expected to be suitable for
 # semihosting simulator use, but not on hardware where it is expected
 # to be overridden.
-TEXT_START_ADDR=0x8000
+case ${target} in
+    *-elf)
+       TEXT_START_ADDR=0x8000
+       ;;
+    *-uclinux)
+       TEXT_START_ADDR=0x0
+       GOT="
+.got ${RELOCATING-0} : {
+  ${RELOCATING+*(.dsbt)
+  *(.got.plt) *(.igot.plt) }*(.got)${RELOCATING+ *(.igot)}
+}"
+       ;;
+esac
 MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
 ARCH=tic6x
-EXECUTABLE_SYMBOLS="EXTERN (__c6xabi_DSBT_BASE);"
-SDATA_START_SYMBOLS="PROVIDE_HIDDEN (__c6xabi_DSBT_BASE = .);"
+OTHER_GOT_SYMBOLS="PROVIDE_HIDDEN (__c6xabi_DSBT_BASE = .);"
 # ".bss" is near (small) BSS, ".far" is far (normal) BSS, ".const" is
 # far read-only data, ".rodata" is near read-only data.  ".neardata"
 # is near (small) data, ".fardata" is (along with .data) far data.
@@ -16,6 +30,14 @@ RODATA_NAME="const"
 SDATA_NAME="neardata"
 SBSS_NAME="bss"
 BSS_NAME="far"
+OTHER_READONLY_SECTIONS="
+  .c6xabi.extab ${RELOCATING-0} : { *(.c6xabi.extab${RELOCATING+* .gnu.linkonce.c6xabiextab.*}) }
+  .c6xabi.exidx ${RELOCATING-0} :
+    {
+      ${RELOCATING+PROVIDE_HIDDEN (__exidx_start = .);}
+      *(.c6xabi.exidx${RELOCATING+* .gnu.linkonce.c6xabiexidx.*})
+      ${RELOCATING+PROVIDE_HIDDEN (__exidx_end = .);}
+    }"
 OTHER_SDATA_SECTIONS=".rodata ${RELOCATING-0} : { *(.rodata${RELOCATING+ .rodata.*}) }"
 OTHER_READONLY_RELOC_SECTIONS="
   .rel.rodata   ${RELOCATING-0} : { *(.rel.rodata${RELOCATING+ .rel.rodata.*}) }
@@ -24,16 +46,27 @@ 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.*}) }"
-OTHER_BSS_SECTIONS="
-  .heap : 
-  { 
-    . = ALIGN(4); 
-    _HEAP_START = .; 
-    . += 0x2000000; 
-    _HEAP_MAX = .; 
+# 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 :
+  {
+    . = ALIGN(4);
+    _HEAP_START = .;
+    . += 0x2000000;
+    _HEAP_MAX = .;
   }
   .stack :
   {
     . +=  0x100000;
     _STACK_START = .;
   }"
+       ;;
+  esac
+fi
+ATTRS_SECTIONS='.c6xabi.attributes 0 : { KEEP (*(.c6xabi.attributes)) KEEP (*(.gnu.attributes)) }'
This page took 0.024576 seconds and 4 git commands to generate.