configure: Stop using dlltool to create an import library

Message ID 1509356779-12513-1-git-send-email-martin@martin.st
State Committed
Commit 67c72f08a4707c18a67a4734660e3a23cc9488b6
Headers show

Commit Message

Martin Storsjö Oct. 30, 2017, 9:46 a.m.
There shouldn't be any functional difference between the import
library created by dlltool and the one produced by the linker itself.
Keep installing it with both names though, for compatibility with users
that expect both to exist.

The dlltool step was added in ec10a9ab4; prior to that, a MSVC
compatible import library was generated using lib.exe. After that
commit, there was no functional difference between the two import
libraries (and since MSVC 2012, link.exe works just fine with the
GNU binutils generated one).
---
 configure | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

Comments

Luca Barbato Oct. 30, 2017, 9:49 a.m. | #1
On 30/10/2017 10:46, Martin Storsjö wrote:
> There shouldn't be any functional difference between the import
> library created by dlltool and the one produced by the linker itself.
> Keep installing it with both names though, for compatibility with users
> that expect both to exist.
> 
> The dlltool step was added in ec10a9ab4; prior to that, a MSVC
> compatible import library was generated using lib.exe. After that
> commit, there was no functional difference between the two import
> libraries (and since MSVC 2012, link.exe works just fine with the
> GNU binutils generated one).
> ---
>   configure | 9 +--------
>   1 file changed, 1 insertion(+), 8 deletions(-)
> 

Ok.

Patch

diff --git a/configure b/configure
index 5223236..710087d 100755
--- a/configure
+++ b/configure
@@ -3957,10 +3957,6 @@  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 dllexport.
             disable static
@@ -3972,7 +3968,7 @@  case $target_os in
         SLIBSUF=".dll"
         SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
         SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)'
-        SLIB_EXTRA_CMD=-'$(DLLTOOL) -m $(LIBTARGET) -d $$(@:$(SLIBSUF)=.def) -l $(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib) -D $(SLIBNAME_WITH_MAJOR)'
+        SLIB_EXTRA_CMD='cp $(SUBDIR)lib$(SLIBNAME:$(SLIBSUF)=.dll.a) $(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib)'
         SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
         SLIB_INSTALL_LINKS=
         SLIB_INSTALL_EXTRA_SHLIB='$(SLIBNAME:$(SLIBSUF)=.lib)'
@@ -3980,7 +3976,6 @@  case $target_os in
         SLIB_CREATE_DEF_CMD='ARCH="$(ARCH)" 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,--enable-auto-image-base $$(@:$(SLIBSUF)=.def)'
         enabled x86_64 && objformat="win64" || objformat="win32"
-        dlltool="${cross_prefix}dlltool"
         ranlib=:
         enable dos_paths
         ;;
@@ -5337,7 +5332,6 @@  X86ASM_O=$X86ASM_O
 LD_O=$LD_O
 LD_LIB=$LD_LIB
 LD_PATH=$LD_PATH
-DLLTOOL=$dlltool
 LDFLAGS=$LDFLAGS
 LDEXEFLAGS=$LDEXEFLAGS
 LDSOFLAGS=$LDSOFLAGS
@@ -5384,7 +5378,6 @@  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}