Patrick Georgi has submitted this change and it was merged. ( https://review.coreboot.org/c/coreboot/+/30116 )
Change subject: pci_drivers/cpu_drivers: Fix constructed arrays on x86_64 ......................................................................
pci_drivers/cpu_drivers: Fix constructed arrays on x86_64
The __pci_driver and __cpu_driver uses variable length arrays which are constructed by the linker at build-time.
The linker always place the structs at 16-byte boundary, as per "System V ABI". That's not a problem on x86, as the struct is exactly 16 Bytes in size. On other platforms, like x86_64 it breaks, because the default data alignment isn't SysV compatible.
Set -malign-data=abi to make x86_64 gcc use the SysV psABI. Fixes broken __pci_driver and __cpu_driver on x86_64.
Change-Id: I2491d47ed03dcfd8db110dfb181b2c5281449591 Signed-off-by: Patrick Rudolph siro@das-labor.org Reviewed-on: https://review.coreboot.org/c/coreboot/+/30116 Reviewed-by: Aaron Durbin adurbin@chromium.org Tested-by: build bot (Jenkins) no-reply@coreboot.org --- M util/xcompile/xcompile 1 file changed, 1 insertion(+), 1 deletion(-)
Approvals: build bot (Jenkins): Verified Aaron Durbin: Looks good to me, approved
diff --git a/util/xcompile/xcompile b/util/xcompile/xcompile index 0fefff2..4a29cdd 100755 --- a/util/xcompile/xcompile +++ b/util/xcompile/xcompile @@ -238,7 +238,7 @@ # to use i586 instead. if [ "${TARCH}" = "x86_64" ]; then cat <<EOF - GCC_CFLAGS_${TARCH} += -march=nocona + GCC_CFLAGS_${TARCH} += -march=nocona -malign-data=abi EOF fi