[Mesa-dev] [PATCH 1/2] configure.ac: Don't look for pthreads in Android platform

Emil Velikov emil.l.velikov at gmail.com
Fri Oct 28 18:49:43 UTC 2016

On 28 October 2016 at 18:24, Matt Turner <mattst88 at gmail.com> wrote:
> On Fri, Oct 28, 2016 at 8:06 AM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
>> On 27 October 2016 at 17:06, Gurchetan Singh
>> <gurchetansingh at chromium.org> wrote:
>>> In Android, the pthreads libs are in bionic.  When building
>>> Mesa for Android with the autotools workflow, we shouldn't
>>> set -lpthread or -pthread.
>>> ---
>>>  configure.ac | 7 +++++--
>>>  1 file changed, 5 insertions(+), 2 deletions(-)
>>> diff --git a/configure.ac b/configure.ac
>>> index 4761c59..3f21cd5 100644
>>> --- a/configure.ac
>>> +++ b/configure.ac
>>> @@ -823,8 +823,11 @@ if test "x$ax_pthread_ok" = xno; then
>>>  fi
>>>  dnl AX_PTHREADS leaves PTHREAD_LIBS empty for gcc and sets PTHREAD_CFLAGS
>>>  dnl to -pthread, which causes problems if we need -lpthread to appear in
>>> -dnl pkgconfig files.
>>> -test -z "$PTHREAD_LIBS" && PTHREAD_LIBS="-lpthread"
>>> +dnl pkgconfig files.  Since Android doesn't have a pthread lib, this check
>>> +dnl is not valid for that platform.
>>> +if test "x$android" = xno; then
>>> +    test -z "$PTHREAD_LIBS" && PTHREAD_LIBS="-lpthread"
>>> +fi
>> Fwiw I'm inclined that we should drop this all together. At the same
>> time we might be missing PTHREAD_CFLAGS/LIBS but we can tackle them as
>> needed.
>> Furthermore git log shows that this is added for pkgconfig files in
>> mind. Shouldn't we just tackle that w/o touching PTHREAD_LIBS ?
>> Matt, being the author of commit
>> dd4fde8f674f5e3efa19e929f97de4ecfd82391b can we have your input ?
> I have no memories about that commit, but it seems odd. On Linux
> you're supposed to use CFLAGS=-pthread instead of linking with
> -lpthread. A minority of pkgconfig files on my system have -pthread in
> Cflags, but I suspect that would be the righe thing to do and then we
> should remove this hunk from configure.ac. At least, that's my guess
> :)
My line of thinking as well.

Fwiw some stats on my end:
32bit libs:
- Packages that use the cflag -pthread _always_ list it in
Libs/.private (what?) and occasionally in Cflags.
- Ones that use the -lpthread, add that in Libs/.private with ~50% of
the cases being mesa/x11
Only ~20 in each case.

64bit libs
-pthread, things identical as above - both numbers and behaviour.
-lpthread, numbers go up (~100) with, behaviour as 32bit case

It seems that there's a fair bit of confusion across the packages.
Not to mention the misuse of Libs, and inclusion of
-Wl,--export-dynamic, --std=c++0x amongst others.

Regardless, that shouldn't stop us from clearing things on our end ;-)

More information about the mesa-dev mailing list