configure: Force mingw's ld to keep the reloc section
Binutils will always strip the relocation information from executable files even if it needs it (dynamicbase/ASLR). We can work around this by using the pic-executable flag combined with setting the correct entry point since apparently ld forgets what that should be. This problem affects both 32 and 64-bit mingw-w64. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
0544c95fd6
commit
91b668acd6
10
configure
vendored
10
configure
vendored
@ -4392,6 +4392,16 @@ case $target_os in
|
|||||||
objformat="win32"
|
objformat="win32"
|
||||||
ranlib=:
|
ranlib=:
|
||||||
enable dos_paths
|
enable dos_paths
|
||||||
|
# Lets work around some stupidity in binutils.
|
||||||
|
# ld will strip relocations from executables even though we need them
|
||||||
|
# for dynamicbase (ASLR). Using -pie does retain the reloc section
|
||||||
|
# however ld then forgets what the entry point should be (oops) so we
|
||||||
|
# have to manually (re)set it.
|
||||||
|
if enabled x86_32; then
|
||||||
|
add_ldexeflags -Wl,--pic-executable,-e,_mainCRTStartup
|
||||||
|
elif enabled x86_64; then
|
||||||
|
add_ldexeflags -Wl,--pic-executable,-e,mainCRTStartup
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
win32|win64)
|
win32|win64)
|
||||||
disable symver
|
disable symver
|
||||||
|
Loading…
x
Reference in New Issue
Block a user