From c38126a82ea44c0e94b522ad70c3551e1f44e786 Mon Sep 17 00:00:00 2001 From: Joachim Klein Date: Thu, 13 Jul 2017 05:39:15 +0000 Subject: [PATCH] Makefile: statically link pthread library for cygwin In recent mingw g++ compilers from cygwin, the standard C++ library depends on the pthreads library (libwinpthread-1.dll). As we'd like for the prism DLLs to not depend on that library, we adapt the linker flags to statically link the pthread library. As we are not actually using any symbols, we also have to use the --whole-archive flag to force linking. https://stackoverflow.com/questions/13768515/how-to-do-static-linking-of-libwinpthread-1-dll-in-mingw/43402308#43402308 git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@12009 bbc10eb1-c90d-0410-af57-cb519fbb1720 --- prism/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/prism/Makefile b/prism/Makefile index 6902132f..8a34364a 100644 --- a/prism/Makefile +++ b/prism/Makefile @@ -212,7 +212,7 @@ ifeq ($(OSTYPE),cygwin) CUDD_XCFLAGS = -fPIC -DPIC -malign-double -DHAVE_IEEE_754 -DHAVE_GETRLIMIT=0 -DRLIMIT_DATA_DEFAULT=268435456 -DHAVE_SYS_RESOURCE_H=0 -DHAVE_SYS_WAIT_H=0 -DSIZEOF_VOID_P=8 -DSIZEOF_LONG=4 -fpermissive $(DEBUG) -static-libgcc -static-libstdc++ CFLAGS = $(CUDD_XCFLAGS) $(OPTIMISE) CPPFLAGS = $(CUDD_XCFLAGS) $(OPTIMISE) - LDFLAGS = $(CUDD_XCFLAGS) $(OPTIMISE) -Wl,--add-stdcall-alias + LDFLAGS = $(CUDD_XCFLAGS) $(OPTIMISE) -Wl,--add-stdcall-alias -Wl,-Bstatic,--whole-archive -lpthread -Wl,-Bdynamic,--no-whole-archive BINDISTSUFFIX = win64 else C = /usr/bin/i686-w64-mingw32-gcc @@ -220,7 +220,7 @@ ifeq ($(OSTYPE),cygwin) CUDD_XCFLAGS = -march=i686 -malign-double -DHAVE_IEEE_754 -DHAVE_GETRLIMIT=0 -DRLIMIT_DATA_DEFAULT=268435456 -DHAVE_SYS_RESOURCE_H=0 -DHAVE_SYS_WAIT_H=0 $(DEBUG) -static-libgcc -static-libstdc++ CFLAGS = $(CUDD_XCFLAGS) $(OPTIMISE) CPPFLAGS = $(CUDD_XCFLAGS) $(OPTIMISE) - LDFLAGS = $(CUDD_XCFLAGS) $(OPTIMISE) -Wl,--add-stdcall-alias + LDFLAGS = $(CUDD_XCFLAGS) $(OPTIMISE) -Wl,--add-stdcall-alias -Wl,-Bstatic,--whole-archive -lpthread -Wl,-Bdynamic,--no-whole-archive BINDISTSUFFIX = win32 endif BIN_TARGETS=prism.cygwin xprism.linux prism.bat.win xprism.bat.win