libzmq/builds
Stephan Guilloux 65b33ebefa
Problem: Android APP fails to load ZMQ since NDK r25.x (#4437)
* 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.
2022-10-11 21:40:13 +01:00
..
abi-compliance-checker Problem: removing latest_branch breaks ABI CI job 2020-05-12 09:13:06 +01:00
android Problem: Android APP fails to load ZMQ since NDK r25.x (#4437) 2022-10-11 21:40:13 +01:00
cmake Changed more git:gihub.com to https://github.com 2022-09-22 02:47:22 +02:00
coverage Problem: Travis is no longer free for FLOSS projects 2021-09-22 16:42:09 +01:00
cygwin Problem: FD_SETSIZE not set to 16k for all build definitions 2016-06-13 09:42:54 +01:00
deprecated-msvc Fix typos 2022-02-11 00:45:06 +02:00
fuzz Problem: fuzzer corpus file can be quite large 2020-07-04 17:50:35 +01:00
gyp Problem: norm fails to compile under windows (#4123) 2021-01-18 08:42:14 +00:00
ios Fix iOS build failure for x86_64 2021-04-28 11:41:36 +03:00
mingw32 add link libsodium.a 2016-12-22 14:25:00 +08:00
nuget Fix typos 2022-02-11 00:45:06 +02:00
openwrt Problem: OpenWRT Makefile still uses tarballs, now using GIT HEAD master 2016-01-15 11:19:24 +01:00
qnx Problem: misspelled ar program name 2019-05-07 10:37:47 -04:00
valgrind Changed more git:gihub.com to https://github.com 2022-09-22 02:47:22 +02:00
vxworks Pull request to merge porting to WindRiver VxWorks 6.x (#2966) 2018-03-10 11:03:02 +00:00
zos Fix typos 2022-02-11 00:45:06 +02:00
Makefile.am Revert "Problem: nuget internal metadata not maintained, no relicense" 2020-02-03 16:23:38 +01:00
README Problem: prepared Visual Studio solution files are hard to maintain and redundant with CMake builds 2018-05-23 17:26:28 +02:00

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.