Rosen,

Thanks for the patch.
Unfortunately it does not work as llvm-dlltool is too much oversimplified version of GNU dlltool. Unlike MS lib.exe and GNU dlltool, llvm-dlltool can handle either '-d' parameter OR list of objects, but not both at the same time.

Another approach has been implemented in git master, you can checkout the latest version and try with your MSys2/Clang64 toolchain.

--
Evgeny


-------- Original Message --------
From: Rosen Penev <ros...@gmail.com>
Sent: Monday, December 13, 2021, 02:10 UTC+3
Subject: [libmicrohttpd] [PATCH] remove exp file

llvm-dlltool does not support the -e flag. It also doesn't seem to do
anything useful.

Fixes compilation under MSYS2-CLANG64.

Signed-off-by: Rosen Penev <ros...@gmail.com>
---
  src/lib/Makefile.am        | 14 ++++++--------
  src/microhttpd/Makefile.am | 14 ++++++--------
  2 files changed, 12 insertions(+), 16 deletions(-)

diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am
index a0f71779..6b8f387c 100644
--- a/src/lib/Makefile.am
+++ b/src/lib/Makefile.am
@@ -15,27 +15,25 @@ MOSTLYCLEANFILES =
if W32_SHARED_LIB_EXP
  W32_MHD_LIB_LDFLAGS = -Wl,--output-def,$(lt_cv_objdir)/libmicrohttpd2.def 
-XCClinker -static-libgcc
-noinst_DATA += $(lt_cv_objdir)/libmicrohttpd2.lib 
$(lt_cv_objdir)/libmicrohttpd2.def $(lt_cv_objdir)/libmicrohttpd2.exp
-MOSTLYCLEANFILES += $(lt_cv_objdir)/libmicrohttpd2.lib 
$(lt_cv_objdir)/libmicrohttpd2.def $(lt_cv_objdir)/libmicrohttpd2.exp
+noinst_DATA += $(lt_cv_objdir)/libmicrohttpd2.lib 
$(lt_cv_objdir)/libmicrohttpd2.def
+MOSTLYCLEANFILES += $(lt_cv_objdir)/libmicrohttpd2.lib 
$(lt_cv_objdir)/libmicrohttpd2.def
$(lt_cv_objdir)/libmicrohttpd2.def: libmicrohttpd2.la -$(lt_cv_objdir)/libmicrohttpd2.exp: $(lt_cv_objdir)/libmicrohttpd2.lib
-
  $(lt_cv_objdir)/libmicrohttpd2.lib: $(lt_cv_objdir)/libmicrohttpd2.def 
libmicrohttpd2.la $(libmicrohttpd2_la_OBJECTS)
  if USE_MS_LIB_TOOL
-       @echo Creating $@ and libmicrohttpd2.exp by $(MS_LIB_TOOL)... && \
+       @echo Creating $@ by $(MS_LIB_TOOL)... && \
        dll_name=`$(EGREP) -o dlname=\'.+\' libmicrohttpd2.la` && \
        dll_name=$${dll_name#*\'} && dll_name=$${dll_name%\'} && test -n "$$dll_name" 
&& \
        echo Creating $$dll_name by $(MS_LIB_TOOL).. && cd "$(lt_cv_objdir)" && 
\
        $(MS_LIB_TOOL) -def:libmicrohttpd2.def -name:$$dll_name -out:libmicrohttpd2.lib 
$(libmicrohttpd2_la_OBJECTS:.lo=.o) && cd ..
  else
-       @echo Creating $@ and libmicrohttpd2.exp by $(DLLTOOL)... && \
+       @echo Creating $@ by $(DLLTOOL)... && \
        dll_name=`$(EGREP) -o dlname=\'.+\' libmicrohttpd2.la` && \
        dll_name=$${dll_name#*\'} && dll_name=$${dll_name%\'} && test -n "$$dll_name" 
&& \
        echo Creating $$dll_name by $(DLLTOOL).. && cd "$(lt_cv_objdir)" && \
-       $(DLLTOOL) -d ./libmicrohttpd2.def -D $$dll_name -l libmicrohttpd2.lib 
$(libmicrohttpd2_la_OBJECTS:.lo=.o) -e ./libmicrohttpd2.exp && cd .. &&\
-       echo Created libmicrohttpd2.exp and libmicrohttpd2.lib.
+       $(DLLTOOL) -d ./libmicrohttpd2.def -D $$dll_name -l libmicrohttpd2.lib 
$(libmicrohttpd2_la_OBJECTS:.lo=.o) && cd .. &&\
+       echo Created libmicrohttpd2.lib.
  endif
  else
    W32_MHD_LIB_LDFLAGS =
diff --git a/src/microhttpd/Makefile.am b/src/microhttpd/Makefile.am
index a98fbd9e..87f9f54e 100644
--- a/src/microhttpd/Makefile.am
+++ b/src/microhttpd/Makefile.am
@@ -13,27 +13,25 @@ MOSTLYCLEANFILES =
if W32_SHARED_LIB_EXP
  W32_MHD_LIB_LDFLAGS = -Wl,--output-def,$(lt_cv_objdir)/libmicrohttpd.def 
-XCClinker -static-libgcc
-noinst_DATA += $(lt_cv_objdir)/libmicrohttpd.lib 
$(lt_cv_objdir)/libmicrohttpd.def $(lt_cv_objdir)/libmicrohttpd.exp
-MOSTLYCLEANFILES += $(lt_cv_objdir)/libmicrohttpd.lib 
$(lt_cv_objdir)/libmicrohttpd.def $(lt_cv_objdir)/libmicrohttpd.exp
+noinst_DATA += $(lt_cv_objdir)/libmicrohttpd.lib 
$(lt_cv_objdir)/libmicrohttpd.def
+MOSTLYCLEANFILES += $(lt_cv_objdir)/libmicrohttpd.lib 
$(lt_cv_objdir)/libmicrohttpd.def
$(lt_cv_objdir)/libmicrohttpd.def: libmicrohttpd.la -$(lt_cv_objdir)/libmicrohttpd.exp: $(lt_cv_objdir)/libmicrohttpd.lib
-
  $(lt_cv_objdir)/libmicrohttpd.lib: $(lt_cv_objdir)/libmicrohttpd.def 
libmicrohttpd.la $(libmicrohttpd_la_OBJECTS)
  if USE_MS_LIB_TOOL
-       @echo Creating $@ and libmicrohttpd.exp by $(MS_LIB_TOOL)... && \
+       @echo Creating $@ by $(MS_LIB_TOOL)... && \
        dll_name=`$(EGREP) -o dlname=\'.+\' libmicrohttpd.la` && \
        dll_name=$${dll_name#*\'} && dll_name=$${dll_name%\'} && test -n "$$dll_name" 
&& \
        echo Creating $$dll_name by $(MS_LIB_TOOL).. && cd "$(lt_cv_objdir)" && 
\
        $(MS_LIB_TOOL) -def:libmicrohttpd.def -name:$$dll_name -out:libmicrohttpd.lib 
$(libmicrohttpd_la_OBJECTS:.lo=.o) && cd ..
  else
-       @echo Creating $@ and libmicrohttpd.exp by $(DLLTOOL)... && \
+       @echo Creating $@ by $(DLLTOOL)... && \
        dll_name=`$(EGREP) -o dlname=\'.+\' libmicrohttpd.la` && \
        dll_name=$${dll_name#*\'} && dll_name=$${dll_name%\'} && test -n "$$dll_name" 
&& \
        echo Creating $$dll_name by $(DLLTOOL).. && cd "$(lt_cv_objdir)" && \
-       $(DLLTOOL) -d ./libmicrohttpd.def -D $$dll_name -l libmicrohttpd.lib 
$(libmicrohttpd_la_OBJECTS:.lo=.o) -e ./libmicrohttpd.exp && cd .. &&\
-       echo Created libmicrohttpd.exp and libmicrohttpd.lib.
+       $(DLLTOOL) -d ./libmicrohttpd.def -D $$dll_name -l libmicrohttpd.lib 
$(libmicrohttpd_la_OBJECTS:.lo=.o) && cd .. &&\
+       echo Created libmicrohttpd.lib.
  endif
  else
    W32_MHD_LIB_LDFLAGS =

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

Reply via email to