Browse Source

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
master
Joachim Klein 9 years ago
parent
commit
c38126a82e
  1. 4
      prism/Makefile

4
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

Loading…
Cancel
Save