We are using the "larl" instruction to load the address of __bss_end, and this instruction can only deal with even addresses, so we have to make sure that this symbol is aligned accordingly. Otherwise this will cause a failure with the new binutils 2.40 and Clang: /usr/bin/ld: s390x/cstart64.o(.init+0x6a): misaligned symbol `__bss_end' (0x2c0d1) for relocation R_390_PC32DBL Signed-off-by: Thomas Huth <thuth@xxxxxxxxxx> --- s390x/flat.lds.S | 1 + 1 file changed, 1 insertion(+) diff --git a/s390x/flat.lds.S b/s390x/flat.lds.S index 0cb7e383..5e91ecac 100644 --- a/s390x/flat.lds.S +++ b/s390x/flat.lds.S @@ -37,6 +37,7 @@ SECTIONS . = ALIGN(16); __bss_start = .; .bss : { *(.bss) } + . = ALIGN(2); __bss_end = .; . = ALIGN(4K); edata = .; -- 2.39.3