From: Ben Hutchings Date: Sat, 5 Jan 2019 20:59:33 +0000 (+0000) Subject: x86_64: Use -Ttext-segment to avoid address collision X-Git-Tag: archive/raspbian/2.0.4-15+rpi1^2~8 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=e5f52010f37c2ac8f4e341ce3d18e8ec84a55919;p=klibc.git x86_64: Use -Ttext-segment to avoid address collision Building klibc for x86_64 with binutils 2.31 adds an extra .note.gnu.property section to klibc.so, the address of which is not affected by the -Ttext option. Loading a klibc executable then fails with the following kernel log message: 9409 (sh.shared): Uhuuh, elf segment at 0000000000200000 requested but the memory is mapped already I don't exactly see why this is happening, but it is triggered by the new section and the collision can be avoided by passing -Ttext-segment instead of -Ttext. A similar change was applied to MIPS recently. Signed-off-by: Ben Hutchings Gbp-Pq: Name x86_64-use-ttext-segment-to-avoid-address-collision.patch --- diff --git a/usr/klibc/arch/x86_64/MCONFIG b/usr/klibc/arch/x86_64/MCONFIG index fbb6b94..606f041 100644 --- a/usr/klibc/arch/x86_64/MCONFIG +++ b/usr/klibc/arch/x86_64/MCONFIG @@ -35,7 +35,7 @@ KLIBCLDFLAGS = -m elf_x86_64 # The old default was max-page-size=0x100000, but that also results # in a broken layout with binutils 2.30. Since there's no # architectural page size betwen 4 KB and 2MB, set it to 4 KB. -KLIBCSHAREDFLAGS = -Ttext 0x00200200 -z max-page-size=0x1000 +KLIBCSHAREDFLAGS = -Ttext-segment 0x00200000 -z max-page-size=0x1000 # Asm includes for x86_64 are in the merged x86 tree KLIBCARCHINCFLAGS = -I$(KLIBCKERNELOBJ)/arch/x86/include