See commit message.

- Kirill Makurin
From a0a35f2d0eefed69c2d789eb50fb222b9566768a Mon Sep 17 00:00:00 2001
From: Kirill Makurin <maiddais...@outlook.com>
Date: Sun, 1 Jun 2025 15:54:23 +0900
Subject: [PATCH] winpthreads: make testing shared library work

Running `make check` when configured with `--disable-static`,
depending on whether an installed winpthread library can be found
when linking tests, has the following consequences:

If an installed winpthread library is found, tests will be linked
against installed library instead of the one we just built.

If there is no installed winpthread library, tests will be linked
against shared library. This will result in tests failing, since
they will fail to locate just built DLL at runtime.

To fix this, use `libtool --mode=execute` to run tests.

Signed-off-by: Kirill Makurin <maiddais...@outlook.com>
---
 mingw-w64-libraries/winpthreads/tests/Makefile.am | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/mingw-w64-libraries/winpthreads/tests/Makefile.am 
b/mingw-w64-libraries/winpthreads/tests/Makefile.am
index 9dda82f73..74549952d 100644
--- a/mingw-w64-libraries/winpthreads/tests/Makefile.am
+++ b/mingw-w64-libraries/winpthreads/tests/Makefile.am
@@ -5,9 +5,13 @@ if !MSVC
 AM_LDFLAGS += -L$(top_builddir)/fakelib
 endif
 
-AM_LDFLAGS += -L$(top_builddir) -lwinpthread -static
+AM_LDFLAGS += -L$(top_builddir) -lwinpthread
 
 #FIXME: The test "test.c" is inherently broken currently.
 check_PROGRAMS = t_clock_getres  t_clock_gettime  t_clock_nanosleep  
t_clock_settime  t_nanosleep  #test
 TESTS = $(check_PROGRAMS)
 
+# Make sure we use "libtool --mode=execute" to run tests, so they can find
+# just built winpthread DLL at runtime
+LOG_COMPILER = $(top_builddir)/libtool
+AM_LOG_FLAGS = --mode=execute
-- 
2.46.1.windows.1

_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to