mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-27 18:02:11 +00: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:
parent
f611fef37c
commit
6d8bef8c05
16
configure
vendored
16
configure
vendored
@ -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}
|
||||
|
Loading…
Reference in New Issue
Block a user