summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKinsey Moore <kinsey.moore@oarcorp.com>2020-11-05 14:02:28 -0600
committerJoel Sherrill <joel@rtems.org>2020-11-23 09:57:45 -0600
commit1cbe5773abafdb611aaeab9c31e527dae5b856ac (patch)
tree42e3e75bd0941d8b057b2fc7fec9ce824eec9ee9
parentspec/aarch64: Ensure that libbsd can build properly (diff)
downloadrtems-1cbe5773abafdb611aaeab9c31e527dae5b856ac.tar.bz2
spec/aarch64: Only apply SUBALIGN(4) to ILP32
The SUBALIGN(4) required on rtemsroset and rtemsrwset for ILP32 builds was previously present on LP64 builds and causes no issues within RTEMS, but causes relocation/alignment issues when building libbsd. This restricts those alignment changes to ILP32 builds.
-rw-r--r--bsps/aarch64/shared/start/linkcmds.base6
-rw-r--r--spec/build/bsps/aarch64/a53/linkcmds_ilp32.yml1
2 files changed, 5 insertions, 2 deletions
diff --git a/bsps/aarch64/shared/start/linkcmds.base b/bsps/aarch64/shared/start/linkcmds.base
index 450c3ba2a9..4bf5b10746 100644
--- a/bsps/aarch64/shared/start/linkcmds.base
+++ b/bsps/aarch64/shared/start/linkcmds.base
@@ -43,6 +43,8 @@ STARTUP (start.o)
bsp_stack_align = DEFINED (bsp_stack_align) ? bsp_stack_align : 16;
+bsp_set_align = DEFINED (bsp_set_align) ? bsp_set_align : 8;
+
bsp_stack_exception_size = DEFINED (bsp_stack_exception_size) ? bsp_stack_exception_size : 0;
bsp_stack_exception_size = ALIGN (bsp_stack_exception_size, bsp_stack_align);
@@ -243,7 +245,7 @@ SECTIONS {
.got : ALIGN_WITH_INPUT {
*(.got.plt) *(.igot.plt) *(.got) *(.igot)
} > REGION_RODATA AT > REGION_RODATA_LOAD
- .rtemsroset : ALIGN_WITH_INPUT SUBALIGN(4) {
+ .rtemsroset : ALIGN_WITH_INPUT SUBALIGN(bsp_set_align) {
/* Special FreeBSD linker set sections */
__start_set_sysctl_set = .;
*(set_sysctl_*);
@@ -297,7 +299,7 @@ SECTIONS {
.data1 : ALIGN_WITH_INPUT {
*(.data1)
} > REGION_DATA AT > REGION_DATA_LOAD
- .rtemsrwset : ALIGN_WITH_INPUT SUBALIGN(4) {
+ .rtemsrwset : ALIGN_WITH_INPUT SUBALIGN(bsp_set_align) {
KEEP (*(SORT(.rtemsrwset.*)))
bsp_section_data_end = .;
} > REGION_DATA AT > REGION_DATA_LOAD
diff --git a/spec/build/bsps/aarch64/a53/linkcmds_ilp32.yml b/spec/build/bsps/aarch64/a53/linkcmds_ilp32.yml
index ed585f1950..085c9c707c 100644
--- a/spec/build/bsps/aarch64/a53/linkcmds_ilp32.yml
+++ b/spec/build/bsps/aarch64/a53/linkcmds_ilp32.yml
@@ -60,6 +60,7 @@ content: |
OUTPUT_FORMAT ("elf32-littleaarch64")
OUTPUT_ARCH (aarch64:ilp32)
+ bsp_set_align = 4;
INCLUDE linkcmds.base
copyrights: