Download raw body.
libstdthreads threads.h detection and gnulib
I think the best approach long-term would be to have this in base, but
now pre\release is the wrong time.
Short-term probably avoid adding to dependencies where possible to
reduce the number of ports accidentally picking it up...
On 2024/09/11 22:51, Antoine Jacoutot wrote:
> On Wed, Sep 11, 2024 at 10:13:12PM +0200, Jeremie Courreges-Anglas wrote:
> >
> > 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?
>
> I vote for #1.
> This is something we should have.
> #3 is horrible, we already struggle with such constructs in ports and honestly
> it's a pain (aka, this should be a short term solution that always ends up for
> eternity).
>
> Matthieu, should this be implemented / moved into base at some point?
>
>
> > 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
>
> --
> Antoine
>
libstdthreads threads.h detection and gnulib