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