arm: make __bss_start and __bss_end__ compiler-generated
Turn __bss_start and __bss_end__ from linker-generated
to compiler-generated symbols, causing relocations for
these symbols to change type, from R_ARM_ABS32 to
R_ARM_RELATIVE.
This should have no functional impact, as it affects
references to __bss_start and __bss_end__ only before
relocation, and no such references are done.
Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
diff --git a/board/actux1/u-boot.lds b/board/actux1/u-boot.lds
index c41eed0..572bcea 100644
--- a/board/actux1/u-boot.lds
+++ b/board/actux1/u-boot.lds
@@ -41,15 +41,15 @@
*(.text*)
}
- . = ALIGN (4);
+ . = ALIGN(4);
.rodata : {
*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
}
- . = ALIGN (4);
+ . = ALIGN(4);
.data : {
*(.data*)
}
- . = ALIGN (4);
+ . = ALIGN(4);
.got : {
*(.got)
}
@@ -72,13 +72,21 @@
*(.dynsym)
}
- .bss __rel_dyn_start (OVERLAY) : {
- __bss_start = .;
+ _end = .;
+
+ .bss_start __rel_dyn_start (OVERLAY) : {
+ KEEP(*(.__bss_start));
+ }
+
+ .bss __bss_start (OVERLAY) : {
*(.bss*)
. = ALIGN(4);
- _end = .;
+ ___bssend___ = .;
}
- __bss_end__ =.;
+ .bss_end ___bssend___ (OVERLAY) : {
+ KEEP(*(.__bss_end__));
+ }
+
/DISCARD/ : { *(.dynstr*) }
/DISCARD/ : { *(.dynamic*) }
/DISCARD/ : { *(.plt*) }
diff --git a/board/actux2/u-boot.lds b/board/actux2/u-boot.lds
index 8409984..6272a10 100644
--- a/board/actux2/u-boot.lds
+++ b/board/actux2/u-boot.lds
@@ -41,15 +41,15 @@
*(.text*)
}
- . = ALIGN (4);
+ . = ALIGN(4);
.rodata : {
*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
}
- . = ALIGN (4);
+ . = ALIGN(4);
.data : {
*(.data*)
}
- . = ALIGN (4);
+ . = ALIGN(4);
.got : {
*(.got)
}
@@ -72,13 +72,21 @@
*(.dynsym)
}
- .bss __rel_dyn_start (OVERLAY) : {
- __bss_start = .;
+ _end = .;
+
+ .bss_start __rel_dyn_start (OVERLAY) : {
+ KEEP(*(.__bss_start));
+ }
+
+ .bss __bss_start (OVERLAY) : {
*(.bss*)
. = ALIGN(4);
- _end = .;
+ ___bssend___ = .;
}
- __bss_end__ =.;
+ .bss_end ___bssend___ (OVERLAY) : {
+ KEEP(*(.__bss_end__));
+ }
+
/DISCARD/ : { *(.dynstr*) }
/DISCARD/ : { *(.dynamic*) }
/DISCARD/ : { *(.plt*) }
diff --git a/board/actux3/u-boot.lds b/board/actux3/u-boot.lds
index a3bd02b..488e1e7 100644
--- a/board/actux3/u-boot.lds
+++ b/board/actux3/u-boot.lds
@@ -72,13 +72,21 @@
*(.dynsym)
}
- .bss __rel_dyn_start (OVERLAY) : {
- __bss_start = .;
+ _end = .;
+
+ .bss_start __rel_dyn_start (OVERLAY) : {
+ KEEP(*(.__bss_start));
+ }
+
+ .bss __bss_start (OVERLAY) : {
*(.bss*)
. = ALIGN(4);
- _end = .;
+ ___bssend___ = .;
+ }
+ .bss_end ___bssend___ (OVERLAY) : {
+ KEEP(*(.__bss_end__));
}
- __bss_end__ =.;
+
/DISCARD/ : { *(.dynstr*) }
/DISCARD/ : { *(.dynamic*) }
/DISCARD/ : { *(.plt*) }
diff --git a/board/dvlhost/u-boot.lds b/board/dvlhost/u-boot.lds
index 1bd1700..6dc26c8 100644
--- a/board/dvlhost/u-boot.lds
+++ b/board/dvlhost/u-boot.lds
@@ -72,13 +72,21 @@
*(.dynsym)
}
- .bss __rel_dyn_start (OVERLAY) : {
- __bss_start = .;
+ _end = .;
+
+ .bss_start __rel_dyn_start (OVERLAY) : {
+ KEEP(*(.__bss_start));
+ }
+
+ .bss __bss_start (OVERLAY) : {
*(.bss*)
. = ALIGN(4);
- _end = .;
+ ___bssend___ = .;
+ }
+ .bss_end ___bssend___ (OVERLAY) : {
+ KEEP(*(.__bss_end__));
}
- __bss_end__ =.;
+
/DISCARD/ : { *(.dynstr*) }
/DISCARD/ : { *(.dynamic*) }
/DISCARD/ : { *(.plt*) }
diff --git a/board/freescale/mx31ads/u-boot.lds b/board/freescale/mx31ads/u-boot.lds
index 5267729..12d7c12 100644
--- a/board/freescale/mx31ads/u-boot.lds
+++ b/board/freescale/mx31ads/u-boot.lds
@@ -80,11 +80,17 @@
_end = .;
- .bss __rel_dyn_start (OVERLAY) : {
- __bss_start = .;
- *(.bss)
+ .bss_start __rel_dyn_start (OVERLAY) : {
+ KEEP(*(.__bss_start));
+ }
+
+ .bss __bss_start (OVERLAY) : {
+ *(.bss*)
. = ALIGN(4);
- __bss_end__ = .;
+ ___bssend___ = .;
+ }
+ .bss_end ___bssend___ (OVERLAY) : {
+ KEEP(*(.__bss_end__));
}
/DISCARD/ : { *(.bss*) }