mirror of https://git.ffmpeg.org/ffmpeg.git
win32, dos: Work around a bug in the GNU toolchain.
The bug[1] is exposed when gcc decides to put some data in a common section (i.e. data that will be used by more than one object). It will suggest the data to be aligned, but binutils >= 2.19 will fail to properly align it. Thus if the data requires any alignment greater than 4, the application will crash. The workaround prevents gcc from putting data in a common section, instead putting it in a properly aligned section. [1] http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37216 Originally committed as revision 18501 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
c573eb85f0
commit
1894e741f5
|
@ -1634,6 +1634,7 @@ case $target_os in
|
|||
SHFLAGS='-shared -Wl,--output-def,$$(@:$(SLIBSUF)=.def) -Wl,--out-implib,$(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base'
|
||||
objformat="win32"
|
||||
enable dos_paths
|
||||
check_cflags -fno-common
|
||||
if ! enabled x86_64; then
|
||||
check_cpp_condition _mingw.h "(__MINGW32_MAJOR_VERSION > 3) || (__MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION >= 15)" ||
|
||||
die "ERROR: MinGW runtime version must be >= 3.15."
|
||||
|
@ -1652,6 +1653,7 @@ case $target_os in
|
|||
SHFLAGS='-shared -Wl,--enable-auto-image-base'
|
||||
objformat="win32"
|
||||
enable dos_paths
|
||||
check_cflags -fno-common
|
||||
;;
|
||||
*-dos|freedos|opendos)
|
||||
disable ffplay ffserver
|
||||
|
@ -1659,6 +1661,7 @@ case $target_os in
|
|||
network_extralibs="-lsocket"
|
||||
objformat="coff"
|
||||
enable dos_paths
|
||||
check_cflags -fno-common
|
||||
;;
|
||||
linux)
|
||||
enable dv1394
|
||||
|
|
Loading…
Reference in New Issue