You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-15 14:13:16 +02:00
build: restore using dlltool/lib.exe for creating Win32 .lib files
The GCC generated import libraries don't work properly when being imported by MSVC, resulting in missing symbols at runtime. This reverts5b5365fe9
and partially reverts changes from98a9b1f0d
This commit is contained in:
16
configure
vendored
16
configure
vendored
@@ -4994,6 +4994,10 @@ case $target_os in
|
|||||||
;;
|
;;
|
||||||
mingw32*|mingw64*)
|
mingw32*|mingw64*)
|
||||||
target_os=mingw32
|
target_os=mingw32
|
||||||
|
LIBTARGET=i386
|
||||||
|
if enabled x86_64; then
|
||||||
|
LIBTARGET="i386:x86-64"
|
||||||
|
fi
|
||||||
if enabled shared; then
|
if enabled shared; then
|
||||||
# Cannot build both shared and static libs when using dllimport.
|
# Cannot build both shared and static libs when using dllimport.
|
||||||
disable static
|
disable static
|
||||||
@@ -5005,7 +5009,14 @@ case $target_os in
|
|||||||
SLIBSUF=".dll"
|
SLIBSUF=".dll"
|
||||||
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
|
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
|
||||||
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
|
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
|
||||||
SLIB_EXTRA_CMD='cp $(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) $(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib)'
|
if check_cmd lib.exe -list; then
|
||||||
|
SLIB_EXTRA_CMD=-'lib.exe -nologo -machine:$(LIBTARGET) -def:$$(@:$(SLIBSUF)=.def) -out:$(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib)'
|
||||||
|
if enabled x86_64; then
|
||||||
|
LIBTARGET=x64
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
SLIB_EXTRA_CMD=-'$(DLLTOOL) -m $(LIBTARGET) -d $$(@:$(SLIBSUF)=.def) -l $(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib) -D $(SLIBNAME_WITH_MAJOR)'
|
||||||
|
fi
|
||||||
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
|
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
|
||||||
SLIB_INSTALL_LINKS=
|
SLIB_INSTALL_LINKS=
|
||||||
SLIB_INSTALL_EXTRA_SHLIB='$(SLIBNAME:$(SLIBSUF)=.lib)'
|
SLIB_INSTALL_EXTRA_SHLIB='$(SLIBNAME:$(SLIBSUF)=.lib)'
|
||||||
@@ -5013,6 +5024,7 @@ case $target_os in
|
|||||||
SLIB_CREATE_DEF_CMD='EXTERN_PREFIX="$(EXTERN_PREFIX)" AR="$(AR_CMD)" NM="$(NM_CMD)" $(SRC_PATH)/compat/windows/makedef $(SUBDIR)lib$(NAME).ver $(OBJS) > $$(@:$(SLIBSUF)=.def)'
|
SLIB_CREATE_DEF_CMD='EXTERN_PREFIX="$(EXTERN_PREFIX)" AR="$(AR_CMD)" NM="$(NM_CMD)" $(SRC_PATH)/compat/windows/makedef $(SUBDIR)lib$(NAME).ver $(OBJS) > $$(@:$(SLIBSUF)=.def)'
|
||||||
SHFLAGS='-shared -Wl,--out-implib,$(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) -Wl,--disable-auto-image-base $$(@:$(SLIBSUF)=.def)'
|
SHFLAGS='-shared -Wl,--out-implib,$(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) -Wl,--disable-auto-image-base $$(@:$(SLIBSUF)=.def)'
|
||||||
enabled x86_64 && objformat="win64" || objformat="win32"
|
enabled x86_64 && objformat="win64" || objformat="win32"
|
||||||
|
dlltool="${cross_prefix}dlltool"
|
||||||
ranlib=:
|
ranlib=:
|
||||||
enable dos_paths
|
enable dos_paths
|
||||||
check_ldflags -Wl,--nxcompat,--dynamicbase
|
check_ldflags -Wl,--nxcompat,--dynamicbase
|
||||||
@@ -6886,6 +6898,7 @@ LD_O=$LD_O
|
|||||||
X86ASM_O=$X86ASM_O
|
X86ASM_O=$X86ASM_O
|
||||||
LD_LIB=$LD_LIB
|
LD_LIB=$LD_LIB
|
||||||
LD_PATH=$LD_PATH
|
LD_PATH=$LD_PATH
|
||||||
|
DLLTOOL=$dlltool
|
||||||
WINDRES=$windres
|
WINDRES=$windres
|
||||||
DEPWINDRES=$dep_cc
|
DEPWINDRES=$dep_cc
|
||||||
DOXYGEN=$doxygen
|
DOXYGEN=$doxygen
|
||||||
@@ -6939,6 +6952,7 @@ LIB_INSTALL_EXTRA_CMD=$LIB_INSTALL_EXTRA_CMD
|
|||||||
EXTRALIBS=$extralibs
|
EXTRALIBS=$extralibs
|
||||||
COMPAT_OBJS=$compat_objs
|
COMPAT_OBJS=$compat_objs
|
||||||
INSTALL=$install
|
INSTALL=$install
|
||||||
|
LIBTARGET=${LIBTARGET}
|
||||||
SLIBNAME=${SLIBNAME}
|
SLIBNAME=${SLIBNAME}
|
||||||
SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}
|
SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}
|
||||||
SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}
|
SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}
|
||||||
|
Reference in New Issue
Block a user