mirror of
https://github.com/zeromq/libzmq.git
synced 2024-12-13 10:52:56 +01:00
65b33ebefa
* Problem: Android APP fails to load ZMQ since NDK r25.x With the help of the dump of ./configure options (former PR): ``` LIBZMQ (arm) - ./configure options to build 'LIBZMQ': > --quiet > TOOLCHAIN=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64 > CC=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi21-clang > CXX=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi21-clang++ > LD=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/bin/ld > AS=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-as > AR=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar > RANLIB=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib > STRIP=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip > CFLAGS= -D_GNU_SOURCE -D_REENTRANT -D_THREAD_SAFE > CPPFLAGS= -I/home/stephan/git/zproject-android-testing/libzmq/builds/android/prefix/arm/include > CXXFLAGS= > LDFLAGS=-L/home/stephan/git/zproject-android-testing/libzmq/builds/android/prefix/arm/lib -L/tmp/android-ndk-r25/sour\ ces/cxx-stl/llvm-libc++/libs/armeabi-v7a > LIBS=-lc -ldl -lm -llog -lc++_shared > PKG_CONFIG_LIBDIR=/tmp/android-ndk-r25/prebuilt/linux-x86_64/lib/pkgconfig > PKG_CONFIG_PATH=/home/stephan/git/zproject-android-testing/libzmq/builds/android/prefix/arm/lib/pkgconfig > PKG_CONFIG_SYSROOT_DIR=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/sysroot > PKG_CONFIG_DIR= > --with-sysroot=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/sysroot > --host=arm-linux-androideabi > --prefix=/home/stephan/git/zproject-android-testing/libzmq/builds/android/prefix/arm > --disable-curve > --without-docs ``` We can observe that LDFLAGS has invalid `-L<path_to_libc++_shared.so>`: ``` -L/tmp/android-ndk-r25/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a ``` This path is no more valid, since NDK r25, where one should use LLVM path. Ok, once this is fixed, ./configure requires also the path to libc.so. I don't understand why libc.so is now required, actually, but without this, ./configure fails to build its conftest. Solution: Fix invalid LDFLAGS. Notes: - To be reported to CZMQ/ZYRE via ZPROJECT. - Tested successfully with Android Emulator (x86 & x86_64). - Still need some more work, as execution still fails with physical devices (observed on arm64). - Introduced `ANDROID_STL`, `ANDROID_STL_ROOT` & `ANDROID_LIBC_ROOT`. All are initialized in `android_build_helper.sh`. - New mechanism **MUST** be compatible with former NDK versions. |
||
---|---|---|
.. | ||
abi-compliance-checker | ||
android | ||
cmake | ||
coverage | ||
cygwin | ||
deprecated-msvc | ||
fuzz | ||
gyp | ||
ios | ||
mingw32 | ||
nuget | ||
openwrt | ||
qnx | ||
valgrind | ||
vxworks | ||
zos | ||
Makefile.am | ||
README |
This directory holds build tools, i.e. tools we use to build the current code tree. Packaging tools (which take released tarballs or github code repos) should go into /packaging. Note: 'deprecated-msvc' contains deprecated prepared Visual Studio Solution files for various Visual Studio versions. These are no longer maintained, and may or may not work. Please use cmake instead to build with Visual Studio. Rationale: The solution and project files are hard to maintain, since there are different variants for each Visual Studio version. The tests have never been included there for this reason, so they were never usable for actual development of libzmq. If you encounter that something that worked before does not work with CMake, please open as issue at https://github.com/zeromq/libzmq/issues.