From 5f00525dfca4b1fbb0f8296a411bf57c23bce694 Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Sat, 22 Oct 2022 23:03:17 +0300 Subject: [PATCH] i386: move hard-coded load address for PIE below default linker base both for i386 native and compat32 amd64. We know the ld-elf.so.1 size in advance, it fits there. Trying to push it up after the end of a binary cannot work reliably and eventually fail for large binaries. Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D37085 --- sys/x86/include/elf.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/x86/include/elf.h b/sys/x86/include/elf.h index e587b52202e..e8744858e4b 100644 --- a/sys/x86/include/elf.h +++ b/sys/x86/include/elf.h @@ -89,7 +89,7 @@ __ElfType(Auxinfo); #define ELF_TARG_MACH EM_386 #define ELF_TARG_VER 1 -#define ET_DYN_LOAD_ADDR 0x01001000 +#define ET_DYN_LOAD_ADDR 0x00002000 #elif defined(__amd64__) @@ -150,7 +150,7 @@ __ElfType(Auxinfo); #define ELF_TARG_VER 1 #if __ELF_WORD_SIZE == 32 -#define ET_DYN_LOAD_ADDR 0x01001000 +#define ET_DYN_LOAD_ADDR 0x00002000 #else #define ET_DYN_LOAD_ADDR 0x01021000 #endif