aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Hutchings <ben@decadent.org.uk>2019-01-05 20:59:33 +0000
committerBen Hutchings <ben@decadent.org.uk>2019-01-05 21:19:38 +0000
commit7b49d9729ff6b3118c57eb6fe52c4f186016cfa0 (patch)
tree40a70781a0acf1e7201c9e7b53ae70d3cb7c0ad4
parentab00e92e990a4ff8a1a6c5c6c6ac3eda3816f18f (diff)
downloadklibc-7b49d9729ff6b3118c57eb6fe52c4f186016cfa0.tar.gz
[klibc] x86_64: Use -Ttext-segment to avoid address collisionfor-hpa
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. Link: https://www.zytor.com/pipermail/klibc/2019-January/004024.html Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-rw-r--r--usr/klibc/arch/x86_64/MCONFIG2
1 files changed, 1 insertions, 1 deletions
diff --git a/usr/klibc/arch/x86_64/MCONFIG b/usr/klibc/arch/x86_64/MCONFIG
index fbb6b94308638f..606f041ca3b312 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