Move location of .jumptables section and add .hightext section to AVR linker script.
authorGeorg-Johann Lay <gjl@gcc.gnu.org>
Wed, 14 Jun 2017 11:23:39 +0000 (12:23 +0100)
committerNick Clifton <nickc@redhat.com>
Wed, 14 Jun 2017 11:23:39 +0000 (12:23 +0100)
PR ld/21583
* scripttempl/avr.sc (.jumptables): Move down in text section.
(.hightext): New in text.

ld/ChangeLog
ld/scripttempl/avr.sc

index 4924787e807f12c7dabbb036e2d48d86ad694ebe..44064fd45fb01de6541b2548c797d695b16d4a00 100644 (file)
@@ -1,3 +1,9 @@
+2017-06-14  Georg-Johann Lay  <gjl@gcc.gnu.org>
+
+       PR ld/21583
+       * scripttempl/avr.sc (.jumptables): Move down in text section.
+       (.hightext): New in text.
+
 2017-06-14  Sebastian Huber  <sebastian.huber@embedded-brains.de>
 
        * configure.tgt (epiphany-*-elf): Accept epiphany-*-*.
index 1b74dc488256d67c5db9a364dbb56ffd1a071eb6..07553b4b061f481054059b93fc630547f5aa1f10 100644 (file)
@@ -132,11 +132,6 @@ SECTIONS
     
     ${RELOCATING+. = ALIGN(2);}
 
-    /* For future tablejump instruction arrays for 3 byte pc devices.
-       We don't relax jump/call instructions within these sections.  */
-    *(.jumptables) 
-    ${RELOCATING+ *(.jumptables*)}
-
     /* For code that needs to reside in the lower 128k progmem.  */
     *(.lowtext)
     ${RELOCATING+ *(.lowtext*)}
@@ -196,6 +191,18 @@ SECTIONS
     KEEP (*(.fini1))
     *(.fini0)  /* Infinite loop after program termination.  */
     KEEP (*(.fini0))
+
+    /* For code that needs not to reside in the lower progmem.  */
+    *(.hightext)
+    ${RELOCATING+ *(.hightext*)}
+
+    ${RELOCATING+. = ALIGN(2);}
+
+    /* For tablejump instruction arrays.  We don't relax
+       JMP / CALL instructions within these sections.  */
+    *(.jumptables)
+    ${RELOCATING+ *(.jumptables*)}
+
     ${RELOCATING+ _etext = . ; }
   } ${RELOCATING+ > text}
 EOF