Add .extab and .exidx sections
authorRoberto Vargas <roberto.vargas@arm.com>
Thu, 10 May 2018 10:01:16 +0000 (11:01 +0100)
committerRoberto Vargas <roberto.vargas@arm.com>
Wed, 11 Jul 2018 08:21:04 +0000 (09:21 +0100)
These sections are required by clang when the code is compiled for
aarch32. These sections are related to the unwind of the stack in
exceptions, but in the way that clang defines and uses them, the
garbage collector cannot get rid of them.

Change-Id: I085efc0cf77eae961d522472f72c4b5bad2237ab
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
bl1/bl1.ld.S
bl2/bl2.ld.S
bl2u/bl2u.ld.S
bl32/sp_min/sp_min.ld.S

index 484787d02f1a00d58c43b855b44d35b76d457b54..fabe3ef66a217dd0ebd76b3aa814785e4bf59677 100644 (file)
@@ -32,6 +32,15 @@ SECTIONS
         __TEXT_END__ = .;
      } >ROM
 
+     /* .ARM.extab and .ARM.exidx are only added because Clang need them */
+     .ARM.extab . : {
+        *(.ARM.extab* .gnu.linkonce.armextab.*)
+     } >ROM
+
+     .ARM.exidx . : {
+        *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+     } >ROM
+
     .rodata . : {
         __RODATA_START__ = .;
         *(.rodata*)
index 5935a64b9f2db8ebabda0ddc6ac0f5e8a7cc24c9..6d26cdb226855a8cab44ea40180b76c4644d6a2e 100644 (file)
@@ -32,6 +32,15 @@ SECTIONS
         __TEXT_END__ = .;
      } >RAM
 
+     /* .ARM.extab and .ARM.exidx are only added because Clang need them */
+     .ARM.extab . : {
+        *(.ARM.extab* .gnu.linkonce.armextab.*)
+     } >RAM
+
+     .ARM.exidx . : {
+        *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+     } >RAM
+
     .rodata . : {
         __RODATA_START__ = .;
         *(.rodata*)
index d0ffebc3ae7b12d042e2969ecdebacd358c6665f..3db5f894666cd4efc522a0ea0f42b996cd0d49bb 100644 (file)
@@ -32,6 +32,15 @@ SECTIONS
         __TEXT_END__ = .;
      } >RAM
 
+     /* .ARM.extab and .ARM.exidx are only added because Clang need them */
+     .ARM.extab . : {
+        *(.ARM.extab* .gnu.linkonce.armextab.*)
+     } >RAM
+
+     .ARM.exidx . : {
+        *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+     } >RAM
+
     .rodata . : {
         __RODATA_START__ = .;
         *(.rodata*)
index fa3b3acd5d0e70aa2b7a280f3e740fe0b94334bd..ce6c954eca54d95d4eb2e01c333092c985c3b8cc 100644 (file)
@@ -32,6 +32,15 @@ SECTIONS
         __TEXT_END__ = .;
     } >RAM
 
+     /* .ARM.extab and .ARM.exidx are only added because Clang need them */
+     .ARM.extab . : {
+        *(.ARM.extab* .gnu.linkonce.armextab.*)
+     } >RAM
+
+     .ARM.exidx . : {
+        *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+     } >RAM
+
     .rodata . : {
         __RODATA_START__ = .;
         *(.rodata*)