[FFmpeg-cvslog] configure: Force mingw's ld to keep the reloc section
Alex Smith
git at videolan.org
Wed Sep 23 01:44:18 CEST 2015
ffmpeg | branch: master | Alex Smith <alex.smith at warpsharp.info> | Mon Sep 21 00:41:36 2015 -0400| [91b668acd6decec0a6f8d20bf56e2644f96adcb9] | committer: Michael Niedermayer
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 at niedermayer.cc>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=91b668acd6decec0a6f8d20bf56e2644f96adcb9
---
configure | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/configure b/configure
index da9f42e..f6bc622 100755
--- a/configure
+++ b/configure
@@ -4392,6 +4392,16 @@ case $target_os in
objformat="win32"
ranlib=:
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)
disable symver
More information about the ffmpeg-cvslog
mailing list