[4/7] ld:pru: Add sections for compatibility with TI proprietary toolchain

Message ID 20180428192827.18401-4-dimitar@dinux.eu
State Superseded
Headers show
Series
  • [1/7] bfd:pru: Fix LDI32 relocation to conform to TI ABI
Related show

Commit Message

Dimitar Dimitrov April 28, 2018, 7:28 p.m.
The TI proprietary toolchain generates references to sections with
separator ":" instead of the traditional dot "." . Accommodate them
to allow Binutils to link against TI toolchain object files.

2018-04-26  Dimitar Dimitrov  <dimitar@dinux.eu>

        * scripttempl/pru.sc: Add LD sections to allow linking TI
          toolchain object files.

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>

---
 ld/scripttempl/pru.sc | 11 +++++++++++
 1 file changed, 11 insertions(+)

-- 
2.11.0

Patch

diff --git a/ld/scripttempl/pru.sc b/ld/scripttempl/pru.sc
index 88fe06cb63..7e87e20191 100644
--- a/ld/scripttempl/pru.sc
+++ b/ld/scripttempl/pru.sc
@@ -32,12 +32,14 @@  SECTIONS
     {
       *(.rel.text)
       ${RELOCATING+*(.rel.text.*)}
+      ${RELOCATING+*(.rel.text:*)}
       ${RELOCATING+*(.rel.gnu.linkonce.t*)}
     }
   .rela.text   ${RELOCATING-0} :
     {
       *(.rela.text)
       ${RELOCATING+*(.rela.text.*)}
+      ${RELOCATING+*(.rela.text:*)}
       ${RELOCATING+*(.rela.gnu.linkonce.t*)}
     }
   .rel.fini    ${RELOCATING-0} : { *(.rel.fini)		}
@@ -46,24 +48,28 @@  SECTIONS
     {
       *(.rel.rodata)
       ${RELOCATING+*(.rel.rodata.*)}
+      ${RELOCATING+*(.rel.rodata:*)}
       ${RELOCATING+*(.rel.gnu.linkonce.r*)}
     }
   .rela.rodata ${RELOCATING-0} :
     {
       *(.rela.rodata)
       ${RELOCATING+*(.rela.rodata.*)}
+      ${RELOCATING+*(.rela.rodata:*)}
       ${RELOCATING+*(.rela.gnu.linkonce.r*)}
     }
   .rel.data    ${RELOCATING-0} :
     {
       *(.rel.data)
       ${RELOCATING+*(.rel.data.*)}
+      ${RELOCATING+*(.rel.data:*)}
       ${RELOCATING+*(.rel.gnu.linkonce.d*)}
     }
   .rela.data   ${RELOCATING-0} :
     {
       *(.rela.data)
       ${RELOCATING+*(.rela.data.*)}
+      ${RELOCATING+*(.rela.data:*)}
       ${RELOCATING+*(.rela.gnu.linkonce.d*)}
     }
   .rel.ctors   ${RELOCATING-0} : { *(.rel.ctors)	}
@@ -92,6 +98,8 @@  SECTIONS
     ${RELOCATING+. = ALIGN(4);}
     ${RELOCATING+*(.text.*)}
     ${RELOCATING+. = ALIGN(4);}
+    ${RELOCATING+*(.text:*)}
+    ${RELOCATING+. = ALIGN(4);}
     ${RELOCATING+*(.gnu.linkonce.t*)}
     ${RELOCATING+. = ALIGN(4);}
 
@@ -123,8 +131,10 @@  SECTIONS
     ${RELOCATING+ PROVIDE (_data_start = .) ; }
     *(.data)
     ${RELOCATING+ *(.data*)}
+    ${RELOCATING+ *(.data:*)}
     ${RELOCATING+ *(.rodata)  /* We need to include .rodata here if gcc is used.  */}
     ${RELOCATING+ *(.rodata.*) /* with -fdata-sections.  */}
+    ${RELOCATING+ *(.rodata:*)}
     ${RELOCATING+*(.gnu.linkonce.d*)}
     ${RELOCATING+*(.gnu.linkonce.r*)}
     ${RELOCATING+. = ALIGN(4);}
@@ -142,6 +152,7 @@  SECTIONS
     ${RELOCATING+ PROVIDE (_bss_start = .) ; }
     *(.bss)
     ${RELOCATING+ *(.bss.*)}
+    ${RELOCATING+ *(.bss:*)}
     ${RELOCATING+*(.gnu.linkonce.b*)}
     *(COMMON)
     ${RELOCATING+ PROVIDE (_bss_end = .) ; }