Download raw body.
libstdthreads threads.h detection and gnulib
So I spotted threads.h being picked up by math/octave and the
libstdthreads being junked after the configure step, something already
fixed by ajacoutot@ in the following ports:
math/octave
math/pspp
textproc/link-grammar
by adding devel/libstdthreads to BUILD_DEPENDS. These three ports use
gnulib's threadlib.m4. Other ports that may be affected by this issue:
archivers/gcpio
archivers/gtar
astro/gnuastro
converters/recode
devel/bison
devel/gettext
devel/objfw
devel/universal-ctags
editors/le
editors/nano
editors/poke
games/trader
graphics/ttfautohint
lang/guile3
math/datamash
misc/findutils
net/dico
net/isc-bind
net/lftp
net/monitoring-plugins
net/wget
net/wget2
print/a2ps
print/libpaper
print/texinfo
security/gnutls
security/libgpg-error
security/libgsasl
sysutils/augeas
sysutils/coreutils
sysutils/ggrep
textproc/gdiff
textproc/gsed
textproc/recutils
x11/vlc
(List found with grep '^checking for threads.h' on the latest amd64
build logs.)
I can think of several approaches to fix this:
1. add libstdthreads as a build dep to all those ports. Simple but
slightly problematic:
- IIUC, brings no functional value
- increases the chance of libstdthreads being picked up by future ports
2. "poison" threads.h detection for gnu.port.mk ports. This should be
enough for the gnulib occurences.
3. move libstdthreads header and libs to a subdirectory, to avoid
threads.h being picked up just because it's in the commonly used
/usr/local/include directory.
The diff below, tested with sysutils/ggrep, implements approach #2.
If a gnu.port.mk port really wants libstdthreads, one needs to add
devel/libstdthreads to BUILD_DEPENDS (even though it really belongs in
LIB_DEPENDS), or add an override in CONFIGURE_ENV.
The diff isn't complete: it lacks at least REVISION bumps for at least
octave, pspp and link-grammar, and possibly safety bumps for all other
affected ports; but it shows the intent.
Approach #3 seems to work too but is slightly tricker. wayland/foot
would need a meson.build patch.
Thoughts?
Index: infrastructure/db/config.no-stdthreads
===================================================================
RCS file: infrastructure/db/config.no-stdthreads
diff -N infrastructure/db/config.no-stdthreads
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ infrastructure/db/config.no-stdthreads 11 Sep 2024 17:11:24 -0000
@@ -0,0 +1,3 @@
+# $OpenBSD$
+# included unless devel/libstdthreads
+ac_cv_header_threads_h=${ac_cv_header_threads_h=no}
Index: infrastructure/mk/gnu.port.mk
===================================================================
RCS file: /home/cvs/ports/infrastructure/mk/gnu.port.mk,v
diff -u -p -r1.61 gnu.port.mk
--- infrastructure/mk/gnu.port.mk 14 May 2019 14:59:56 -0000 1.61
+++ infrastructure/mk/gnu.port.mk 11 Sep 2024 17:02:52 -0000
@@ -43,7 +43,8 @@ CONFIG_SITE_LIST += config.site
textproc/gsed gsed \
archivers/gtar* gtar \
lang/gawk gawk \
- sysutils/coreutils coreutils
+ sysutils/coreutils coreutils \
+ devel/libstdthreads stdthreads
. if !defined(BUILD_DEPENDS) || !${BUILD_DEPENDS:M$d}
CONFIG_SITE_LIST += config.no-${name}
. endif
--
jca
libstdthreads threads.h detection and gnulib