[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/22764] [2.30 Regression] ld fails to link 4.13 and 4.15 kernels

From: ard.biesheuvel at linaro dot org
Subject: [Bug ld/22764] [2.30 Regression] ld fails to link 4.13 and 4.15 kernels on aarch64-linux-gnu
Date: Wed, 31 Jan 2018 12:24:37 +0000


Ard Biesheuvel <ard.biesheuvel at linaro dot org> changed:

           What    |Removed                     |Added
                 CC|                            |ard.biesheuvel at linaro dot 

--- Comment #1 from Ard Biesheuvel <ard.biesheuvel at linaro dot org> ---
The arm64 Linux kernel uses absolute ELF symbols to expose various build time
constants whose values are only known after linking to the program itself.

The size of the loadable image in little endian format (even on BE builds)
The memory footprint of the image in LE
The offset to and size of the RELA section, relative to the start of the image
(on KASLR kernels)

0000000000000000 A _kernel_flags_le_hi32
000000000000000a A _kernel_flags_le_lo32
0000000000000000 A _kernel_offset_le_hi32
0000000000080000 A _kernel_offset_le_lo32
0000000000000000 A _kernel_size_le_hi32
00000000013b5000 A _kernel_size_le_lo32
00000000004afa00 A __pecoff_data_rawsize
000000000051d000 A __pecoff_data_size
0000000000000200 A PECOFF_FILE_ALIGNMENT
0000000000fa3898 A __rela_offset
00000000002e2ab0 A __rela_size

The KASLR kernel is a PIE executable, and is no longer allowed to refer to
these symbols via R_AARCH64_ABS32 relocations, resulting in the build error
reported by Matthias.

So please explain how a PIE executable should refer to such absolute ELF
symbols if not via R_AARCH64_ABS32 relocations.

You are receiving this mail because:
You are on the CC list for the bug.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]