From 1b259b40b41567874f3c32d4e63d0c6cbe836e0a Mon Sep 17 00:00:00 2001 From: Ross Johnson Date: Thu, 22 Dec 2016 16:42:17 +1100 Subject: [PATCH] Apply selected changes from version 2.11 --- GNUmakefile.in | 6 +++--- README | 22 +++++++++++++++------- tests/GNUmakefile.in | 2 +- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/GNUmakefile.in b/GNUmakefile.in index 94129d10..498ce45d 100644 --- a/GNUmakefile.in +++ b/GNUmakefile.in @@ -237,9 +237,9 @@ all-tests: cd tests && $(MAKE) clean GC-static $(TEST_ENV) && $(MAKE) clean GCX-static $(TEST_ENV) $(MAKE) realclean GCE-static cd tests && $(MAKE) clean GCE-static $(TEST_ENV) - @ $(GREP) FAILED *.log || $(GREP) Passed *.log | $(COUNT_UNIQ) - $(MAKE) clean - @ $(RM) *.log + $(MAKE) realclean + @ $(GREP) Passed *.log | $(COUNT_UNIQ) + @ $(GREP) FAILED *.log all-tests-cflags: $(MAKE) all-tests __PTW32_FLAGS="-Wall -Wextra" diff --git a/README b/README index e700c2da..132e173a 100644 --- a/README +++ b/README @@ -1,5 +1,5 @@ -PTHREADS-WIN32 -============== +PTHREADS-WIN32 (A.K.A. PTHREADS4W) +================================== Pthreads-win32 is free software, distributed under the GNU Lesser General Public License (LGPL). See the file 'COPYING.LIB' for terms @@ -26,7 +26,7 @@ routines. Prerequisites ------------- -MSVC or GNU C (MinGW32 or MinGW64 MSys development kit) +MSVC or GNU C (MinGW or MinGW64 with AutoConf Tools) To build from source. QueueUserAPCEx by Panagiotis E. Hadjidoukas @@ -242,7 +242,7 @@ Other name changes All snapshots prior to and including snapshot 2000-08-13 used "_pthread_" as the prefix to library internal functions, and "_PTHREAD_" to many library internal -macros. These have now been changed to "__ptw32_" and "PTW32_" +macros. These have now been changed to "__ptw32_" and "__PTW32_" respectively so as to not conflict with the ANSI standard's reservation of identifiers beginning with "_" and "__" for use by compiler implementations only. @@ -417,16 +417,24 @@ Building with MinGW NOTE: All building and testing is done using makefiles. We use the native make system for each toolchain, which is 'make' in this case. -We have found that Mingw32 builds of the GCE library variants fail when run -on 64 bit systems. The GC variants are fine. +We have found that Mingw builds of the GCE library variants can fail when +run on 64 bit systems, believed to be due to the DWARF2 exception handling +being a 32 bit mechanism. The GC variants are fine. MinGW64 offers +SJLJ or SEH exception handling so choose one of those. From the source directory: run 'autoheader' to rewrite the config.h file run 'autoconf' to rewrite the GNUmakefiles (library and tests) +run './configure' to create config.h and GNUmakefile. run 'make' without arguments to list possible targets. -$ make +E.g. + +$ autoheader +$ autoconf +$ ./configure +$ make realclean all-tests With MinGW64 multilib installed the following variables can be defined either on the make command line or in the shell environment: diff --git a/tests/GNUmakefile.in b/tests/GNUmakefile.in index 94f6dbdb..66f85170 100644 --- a/tests/GNUmakefile.in +++ b/tests/GNUmakefile.in @@ -206,7 +206,7 @@ all-bench: $(HDR) $(LIB) $(DLL) $(QAPC) $(XXLIBS) $(BENCHRESULTS) @ $(ECHO) "ALL BENCH TESTS COMPLETED. Check the logfile: $(LOGFILE)" @ $(ECHO) "FAILURES: $$( $(GREP) FAILED $(LOGFILE) | $(WC) -l ) " @ - ! $(GREP) FAILED $(LOGFILE) - @ $(MV) $(LOGFILE) $(TEST)-$(LOGFILE) + @ $(MV) $(LOGFILE) ../$(TEST)-$(LOGFILE) cancel9.exe: XLIBS = -lws2_32