AVR Linker: Allow the start of the data region to specified on the command line.
authorNick Clifton <nickc@redhat.com>
Thu, 3 Nov 2022 09:17:41 +0000 (09:17 +0000)
committerNick Clifton <nickc@redhat.com>
Thu, 3 Nov 2022 09:17:41 +0000 (09:17 +0000)
PR 29471
* scripttempl/avr.sc (__DATA_REGION_ORIGIN__): Define.  If a value
has not been provided on the command line then use DATA_ORIGIN.
(MEMORY): Use __DATA_REGION_ORIGIN__ as the start of the data region.

ld/ChangeLog
ld/scripttempl/avr.sc

index 9ba8cbcfd0bd436b7d4fe592f817fbdf27f53bf5..af1f5578b70f120715fe5eda644237a711dcfa94 100644 (file)
@@ -1,3 +1,10 @@
+2022-11-03  Nick Clifton  <nickc@redhat.com>
+
+       PR 29471
+       * scripttempl/avr.sc (__DATA_REGION_ORIGIN__): Define.  If a value
+       has not been provided on the command line then use DATA_ORIGIN.
+       (MEMORY): Use __DATA_REGION_ORIGIN__ as the start of the data region.
+
 2022-10-21  Nick Clifton  <nickc@redhat.com>
 
        PR 29654
index 026871fc6cf86afa9214fc25c695d040791bf941..f8e690d3533703f2b7e018b3d5cc9bbd753c84e5 100644 (file)
@@ -28,7 +28,9 @@ EOF
 
 test -n "${RELOCATING}" && cat <<EOF
 __TEXT_REGION_LENGTH__ = DEFINED(__TEXT_REGION_LENGTH__) ? __TEXT_REGION_LENGTH__ : $TEXT_LENGTH;
+__DATA_REGION_ORIGIN__ = DEFINED(__DATA_REGION_ORIGIN__) ? __DATA_REGION_ORIGIN__ : $DATA_ORIGIN;
 __DATA_REGION_LENGTH__ = DEFINED(__DATA_REGION_LENGTH__) ? __DATA_REGION_LENGTH__ : $DATA_LENGTH;
+
 ${EEPROM_LENGTH+__EEPROM_REGION_LENGTH__ = DEFINED(__EEPROM_REGION_LENGTH__) ? __EEPROM_REGION_LENGTH__ : $EEPROM_LENGTH;}
 __FUSE_REGION_LENGTH__ = DEFINED(__FUSE_REGION_LENGTH__) ? __FUSE_REGION_LENGTH__ : $FUSE_LENGTH;
 __LOCK_REGION_LENGTH__ = DEFINED(__LOCK_REGION_LENGTH__) ? __LOCK_REGION_LENGTH__ : $LOCK_LENGTH;
@@ -38,7 +40,7 @@ ${RODATA_PM_OFFSET+__RODATA_PM_OFFSET__ = DEFINED(__RODATA_PM_OFFSET__) ? __RODA
 MEMORY
 {
   text   (rx)   : ORIGIN = 0, LENGTH = __TEXT_REGION_LENGTH__
-  data   (rw!x) : ORIGIN = $DATA_ORIGIN, LENGTH = __DATA_REGION_LENGTH__
+  data   (rw!x) : ORIGIN = __DATA_REGION_ORIGIN__, LENGTH = __DATA_REGION_LENGTH__
 ${EEPROM_LENGTH+  eeprom (rw!x) : ORIGIN = 0x810000, LENGTH = __EEPROM_REGION_LENGTH__}
   $FUSE_NAME      (rw!x) : ORIGIN = 0x820000, LENGTH = __FUSE_REGION_LENGTH__
   lock      (rw!x) : ORIGIN = 0x830000, LENGTH = __LOCK_REGION_LENGTH__