Quoting Emil Velikov (2018-02-16 14:21:52)
> On 16 February 2018 at 22:12, Dylan Baker <dy...@pnwbakers.com> wrote:
> > Quoting Emil Velikov (2018-02-16 13:55:06)
> >> On 16 February 2018 at 19:28, Dylan Baker <dy...@pnwbakers.com> wrote:
> >> > Quoting Alexander von Gluck IV (2018-02-16 11:08:33)
> >> >> February 16, 2018 11:49 AM, "Emil Velikov" <emil.l.veli...@gmail.com> 
> >> >> wrote:
> >> >> > Hi Alexander,
> >> >> >
> >> >> > Did you drop the ball on the autotools patches? I could re-spin them
> >> >> > but have no way to test.
> >> >>
> >> >> I've been focused on meson since it's the future.
> >> >> Feel free to re-spin them if you have the bandwidth.
> >> >>
> >> >> > There's a couple of comments inline, but nothing major.
> >> >> >
> >> >> > On 16 February 2018 at 00:32, Alexander von Gluck IV
> >> >> > <kallis...@unixzen.com> wrote:
> >> >> >
> >> >> >> --- a/meson.build
> >> >> >> +++ b/meson.build
> >> >> >>
> >> >> >> gl_priv_libs = []
> >> >> >> -if dep_thread.found()
> >> >> >> +if dep_thread.found() and host_machine.system() != 'haiku'
> >> >> >> gl_priv_libs += ['-lpthread', '-pthread']
> >> >> >> endif
> >> >> >
> >> >> > There's a bug report/fix in Meson for this one right?
> >> >> > Please mention the ticket number of Meson version where the fix
> >> >> > landed. Thus way one can drop this when we bump the Meson requirement.
> >> >>
> >> >> I did a bump of Meson on my Haiku build system and still saw the same
> >> >> incorrect searching for -lpthread issues.  I think there are places 
> >> >> where
> >> >> -lpthread -pthread were specified without looking at dep_thread.found()
> >> >> though which could be at play.  (see below)
> >> >
> >> > dep_pthread.found() returns true on anything that has pthreads, so for 
> >> > us that
> >> > means anything except windows (non-cygwin windows). I think this is the 
> >> > right
> >> > way to handle this, haiku does have pthreads, they're just not a separate
> >> > library. macOS has some weird pthreads stuff too, and this is how we 
> >> > handle
> >> > macOS.
> >> >
> >> Could swear I read your reply somewhere which said that we can as
> >> Meson to provide the correct flags - be that -lpthread or others.
> >> Yet we're doing the completely opposite thing here.
> >>
> >> Did I misunderstand you or ?
> >>
> >> -Emil
> >
> > What I said was that adding `dependency('threads')` to a target, ala
> > mylib = library(
> >   'mylib',
> >   'mylib.c',
> >   dependencies : dependency('threads'),
> > )
> >
> > Will always (as of 0.44 when I fixed Haiku) do the right thing.
> >
> > The problem is that haiku *does* have pthreads, it just doesn't have a 
> > pthreads
> > library. So the dep returns found because there are pthreads, it just 
> > doesn't
> > add any -l, -L, or -I arguments because none are necessary.
> >
> Right. Using -lpthread (notice the L) is kind of wrong and incomplete.
> -pthread is sufficient and the "right thing to do". Modulo the odd
> platform (msvc, maybe suncc and maybe haiku) that wants to use
> something else ;-)
> 
> As you mentioned meson has dependency('threads') - which we can
> transcribe and use in the pkg-config files, right?
> 
> -Emil

One of the guys at redhat or fedora (not sure, maybe both) did some work in 0.45
so that pkg.generate will actually walk up the dependency graph of the libraries
you pass to the pkg.generate(libraries : ) argument, and generate the correct
Requires, Requires.private, and Libs for you. Until we can depend on that though
we'll have to manage the addition of -pthreads and -lpthreads ourselves (it's
-pthreads for cc/cxx and -lpthreads for ld, right, or is just -pthreads for
both? I can never remember which)

Dylan

Attachment: signature.asc
Description: signature

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to