On 17/08/2013, at 3:07 AM, Pavel Chupin wrote:

...
> 
> It's late to change subj I think to avoid producing new thread but I
> got your point.
> Problem is that all 3 Android compilers (arm, x86, mips) are failed to
> build on trunk due to libgomp and libatomic configure errors like (arm
> example):
> 
> configure:14403:
> /tmp/ndk-pvchupin/build/host-gcc/i686-linux-gnu/build-gcc-4.9-arm-linux-androideabi/./gcc/xgcc
> -B/tmp/ndk-pvchupin/build/host-gcc/i686-linux-gnu/build-gcc-4.9-arm-linux-androideabi/./gcc/
> -B/tmp/ndk-pvchupin/build/host-gcc/i686-linux-gnu/temp-arm-linux-androideabi-4.9/arm-linux-androideabi/bin/
> -B/tmp/ndk-pvchupin/build/host-gcc/i686-linux-gnu/temp-arm-linux-androideabi-4.9/arm-linux-androideabi/lib/
> -isystem 
> /tmp/ndk-pvchupin/build/host-gcc/i686-linux-gnu/temp-arm-linux-androideabi-4.9/arm-linux-androideabi/include
> -isystem 
> /tmp/ndk-pvchupin/build/host-gcc/i686-linux-gnu/temp-arm-linux-androideabi-4.9/arm-linux-androideabi/sys-include
>   -o conftest -g -Os -fno-sync-libcalls  -pthread   conftest.c  >&5
> /tmp/ndk-pvchupin/build/host-gcc/i686-linux-gnu/temp-binutils-2.23-arm-linux-androideabi/bin/arm-linux-androideabi-ld:
> error: cannot find -lpthread
> 
> There is no libpthread library in Bionic, pthreads is integrated into libc.
> My fix removes -lpthread from GNU_USER_TARGET_LIB_SPEC definition
> which is included in both bionic and linux but keeping it in linux
> LIB_SPEC.

Thanks for the description.  I thought a bit more about the problem, and it 
might be possible to solve it more concisely:

1. In config/gnu-user.h you define GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC to the 
main part of GNU_USER_TARGET_LIB_SPEC.  GNU_USER_TARGET_LIB_SPEC now becomes 
'"%{pthread:-lpthread} " GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC'.
2. In occurrences of LINUX_OR_ANDROID_LD you continue to use 
GNU_USER_TARGET_LIB_SPEC for the first argument and 
'GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC " " ANDROID_LIB_SPEC'  for the second 
argument.

This way you are operating with named macros instead of verbatim 
"%{pthread:-lpthread}", and, hopefully, this will be more clear to an outside 
observer.

> 
> Please see modified patch attached.
> I've built all 3 Android compilers, x86_64 and i686 and ran simple
> test with -pthread.

Thanks for good test coverage.  I assume you have also tested a non-android 
Linux target?

The patch is OK if adjusted to the comments above (or good arguments provided 
why your current patch is more straigh-forward).

Thank you,

--
Maxim Kuvyrkov
www.kugelworks.com


Reply via email to