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.
This commit is contained in:
Kinsey Moore
2020-11-05 14:02:28 -06:00
committed by Joel Sherrill
parent 0c7bb0ebbd
commit 1cbe5773ab
2 changed files with 5 additions and 2 deletions

View File

@@ -43,6 +43,8 @@ STARTUP (start.o)
bsp_stack_align = DEFINED (bsp_stack_align) ? bsp_stack_align : 16; 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 = DEFINED (bsp_stack_exception_size) ? bsp_stack_exception_size : 0;
bsp_stack_exception_size = ALIGN (bsp_stack_exception_size, bsp_stack_align); bsp_stack_exception_size = ALIGN (bsp_stack_exception_size, bsp_stack_align);
@@ -243,7 +245,7 @@ SECTIONS {
.got : ALIGN_WITH_INPUT { .got : ALIGN_WITH_INPUT {
*(.got.plt) *(.igot.plt) *(.got) *(.igot) *(.got.plt) *(.igot.plt) *(.got) *(.igot)
} > REGION_RODATA AT > REGION_RODATA_LOAD } > 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 */ /* Special FreeBSD linker set sections */
__start_set_sysctl_set = .; __start_set_sysctl_set = .;
*(set_sysctl_*); *(set_sysctl_*);
@@ -297,7 +299,7 @@ SECTIONS {
.data1 : ALIGN_WITH_INPUT { .data1 : ALIGN_WITH_INPUT {
*(.data1) *(.data1)
} > REGION_DATA AT > REGION_DATA_LOAD } > REGION_DATA AT > REGION_DATA_LOAD
.rtemsrwset : ALIGN_WITH_INPUT SUBALIGN(4) { .rtemsrwset : ALIGN_WITH_INPUT SUBALIGN(bsp_set_align) {
KEEP (*(SORT(.rtemsrwset.*))) KEEP (*(SORT(.rtemsrwset.*)))
bsp_section_data_end = .; bsp_section_data_end = .;
} > REGION_DATA AT > REGION_DATA_LOAD } > REGION_DATA AT > REGION_DATA_LOAD

View File

@@ -60,6 +60,7 @@ content: |
OUTPUT_FORMAT ("elf32-littleaarch64") OUTPUT_FORMAT ("elf32-littleaarch64")
OUTPUT_ARCH (aarch64:ilp32) OUTPUT_ARCH (aarch64:ilp32)
bsp_set_align = 4;
INCLUDE linkcmds.base INCLUDE linkcmds.base
copyrights: copyrights: