diff --git a/ChangeLog b/ChangeLog index 8f5a03b6b..243b865aa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -14,6 +14,8 @@ Bugfix Studio projects (found by Kristian Bendiksen). * Fix build error with CMake and pre-4.5 versions of GCC (found by Hugo Leisink). + * Fix missing -static-ligcc when building shared libraries for Windows with + make. Changes * Add SSL_MIN_DHM_BYTES configuration parameter in config.h to choose the diff --git a/library/Makefile b/library/Makefile index 20b9860f9..c7c5bf0be 100644 --- a/library/Makefile +++ b/library/Makefile @@ -126,7 +126,7 @@ libmbedtls.dylib: $(OBJS) libmbedtls.dll: $(OBJS) echo " LD $@" - $(CC) -shared -Wl,-soname,$@ -Wl,--out-implib,$@.a -o $@ $(OBJS) -lws2_32 -lwinmm -lgdi32 $(LOCAL_LDFLAGS) $(LDFLAGS) + $(CC) -shared -Wl,-soname,$@ -Wl,--out-implib,$@.a -o $@ $(OBJS) -lws2_32 -lwinmm -lgdi32 -static-libgcc $(LOCAL_LDFLAGS) $(LDFLAGS) .c.o: echo " CC $<" diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 6ca8cd72c..aecdd4d13 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -158,6 +158,12 @@ scripts/config.pl full scripts/config.pl set POLARSSL_PLATFORM_NO_STD_FUNCTIONS CC=gcc CFLAGS='-Werror -O0' make +if uname -a | grep -F Linux >/dev/null; then +msg "build/test: make shared" # ~ 40s +cleanup +make SHARED=1 all check +fi + if uname -a | grep -F x86_64 >/dev/null; then msg "build: i386, make, gcc" # ~ 30s cleanup @@ -208,7 +214,10 @@ fi # armcc if which i686-w64-mingw32-gcc >/dev/null; then msg "build: cross-mingw64, make" # ~ 30s cleanup -CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar CFLAGS=-Werror WINDOWS_BUILD=1 make +CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS=-Werror WINDOWS_BUILD=1 make +WINDOWS_BUILD=1 make clean +CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS=-Werror WINDOWS_BUILD=1 SHARED=1 make +WINDOWS_BUILD=1 make clean fi # MemSan currently only available on Linux 64 bits