You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2026-06-19 19:03:00 +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 reverts5b5365fe9and partially reverts changes from98a9b1f0d
This commit is contained in:
@@ -4994,6 +4994,10 @@ case $target_os in
|
||||
;;
|
||||
mingw32*|mingw64*)
|
||||
target_os=mingw32
|
||||
LIBTARGET=i386
|
||||
if enabled x86_64; then
|
||||
LIBTARGET="i386:x86-64"
|
||||
fi
|
||||
if enabled shared; then
|
||||
# Cannot build both shared and static libs when using dllimport.
|
||||
disable static
|
||||
@@ -5005,7 +5009,14 @@ case $target_os in
|
||||
SLIBSUF=".dll"
|
||||
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(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_LINKS=
|
||||
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)'
|
||||
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"
|
||||
dlltool="${cross_prefix}dlltool"
|
||||
ranlib=:
|
||||
enable dos_paths
|
||||
check_ldflags -Wl,--nxcompat,--dynamicbase
|
||||
@@ -6886,6 +6898,7 @@ LD_O=$LD_O
|
||||
X86ASM_O=$X86ASM_O
|
||||
LD_LIB=$LD_LIB
|
||||
LD_PATH=$LD_PATH
|
||||
DLLTOOL=$dlltool
|
||||
WINDRES=$windres
|
||||
DEPWINDRES=$dep_cc
|
||||
DOXYGEN=$doxygen
|
||||
@@ -6939,6 +6952,7 @@ LIB_INSTALL_EXTRA_CMD=$LIB_INSTALL_EXTRA_CMD
|
||||
EXTRALIBS=$extralibs
|
||||
COMPAT_OBJS=$compat_objs
|
||||
INSTALL=$install
|
||||
LIBTARGET=${LIBTARGET}
|
||||
SLIBNAME=${SLIBNAME}
|
||||
SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}
|
||||
SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}
|
||||
|
||||
Reference in New Issue
Block a user