XCSoar / XCSoar

... the open-source glide computer
https://xcsoar.org
GNU General Public License v2.0
336 stars 277 forks source link

docker build for ANDROID target fails libsodium build/configure in ndk r25c #1137

Closed iltis42 closed 1 year ago

iltis42 commented 1 year ago

A recent git clone of XCSoar fails (2) now compiling for ANDROID target.

According to the log ( ./output/ANDROID/armeabi-v7a/lib/build/libsodium-1.0.18/config.log ), clang binary is claimed to be missing (3), hence its found under a slightly different path (4), see below: Searched: /root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang Located: /root/opt/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/bin/clang

In targets.mk the ndk is defined as r25c, i get behind this if i change this to r25 only. /build/targets.mk: ANDROID_NDK ?= $(HOME)/opt/android-ndk-r25c

Can one of the android experts comment on this, do we need r25c, and why its failing ?

Thanks, Eckhard

Steps to reproduce:

git clone --recurse-submodules https://github.com/XCSoar/XCSoar XCSoar2; cd XCSoar2; docker build --no-cache --file ide/docker/Dockerfile -t xcsoar/xcsoar-build:latest ./ide/ docker run --mount type=bind,source="$(pwd)",target=/opt/xcsoar -it ghcr.io/xcsoar/xcsoar/xcsoar-build:latest /bin/bash xcsoar-compile ANDROID

2) : : / confdefs.h /

define PACKAGE_NAME "libsodium"

define PACKAGE_TARNAME "libsodium"

define PACKAGE_VERSION "1.0.18"

define PACKAGE_STRING "libsodium 1.0.18"

define PACKAGE_BUGREPORT "https://github.com/jedisct1/libsodium/issues"

define PACKAGE_URL "https://github.com/jedisct1/libsodium"

define PACKAGE "libsodium"

define VERSION "1.0.18"

configure: exit 77 Traceback (most recent call last): File "/opt/xcsoar/./build/thirdparty.py", line 210, in x.build(toolchain) File "/opt/xcsoar/build/python/build/project.py", line 80, in build self._build(toolchain) File "/opt/xcsoar/build/python/build/autotools.py", line 109, in _build build = self.configure(toolchain, target_toolchain=target_toolchain) File "/opt/xcsoar/build/python/build/autotools.py", line 86, in configure subprocess.check_call(configure, cwd=build, env=toolchain.env) File "/usr/lib/python3.9/subprocess.py", line 373, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['/opt/xcsoar/output/src/libsodium-1.0.18/configure', 'CC=/root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang', 'CXX=/root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++', 'CFLAGS=-Os -g -ffunction-sections -fdata-sections -fvisibility=hidden -mfloat-abi=softfp -mfpu=neon -fpic -funwind-tables -target armv7a-linux-androideabi21', 'CXXFLAGS=-Os -g -ffunction-sections -fdata-sections -fvisibility=hidden -mfloat-abi=softfp -mfpu=neon -fpic -funwind-tables -target armv7a-linux-androideabi21', 'CPPFLAGS=-isystem /opt/xcsoar/output/ANDROID/armeabi-v7a/lib/armv7a-linux-androideabi/include -DNDEBUG -I./output/ANDROID/include -DHAVE_POSIX -DHAVE_VASPRINTF -DANDROID -isystem ./output/ANDROID/armeabi-v7a/lib/armv7a-linux-androideabi/include -DEYE_CANDY -DXCSOAR_TESTING -DBIONIC -DLIBCPP_NO_IOSTREAM ', 'LDFLAGS=-L/opt/xcsoar/output/ANDROID/armeabi-v7a/lib/armv7a-linux-androideabi/lib -Wl,--no-undefined -Wl,--fix-cortex-a8 -static-libstdc++ -lunwind ', 'LIBS= ', 'AR=/root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin//llvm-ar', 'ARFLAGS=rcs', 'RANLIB=/root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin//llvm-ranlib', 'STRIP=/root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin//llvm-strip', '--prefix=/opt/xcsoar/output/ANDROID/armeabi-v7a/lib/armv7a-linux-androideabi', '--disable-silent-rules', '--host=armv7a-linux-androideabi', '--disable-shared', '--enable-static']' returned non-zero exit status 77. make[1]: [build/thirdparty.mk:41: output/ANDROID/armeabi-v7a/lib/stamp] Error 1 rm output/ANDROID/armeabi-v7a/dbg/src/Device/Driver/../dirstamp make[1]: Leaving directory '/opt/xcsoar' make: [build/android.mk:274: output/ANDROID/armeabi-v7a/dbg/bin/libxcsoar.so] Error 2 rm output/host/tools/GenerateSineTables/../dirstampmake: unlink: output/host/tools/GenerateSineTables/../dirstamp: Not a directory output/host/tools/GenerateSineTables.o

3) /opt/xcsoar/output/src/libsodium-1.0.18/configure: line 3760: /root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang: No such file or directory image

4) root@927a52758510:/# find . -name clang ./root/opt/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/share/clang ./root/opt/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/bin/clang ./root/opt/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang

fberst commented 1 year ago

Not completely sure about this, i am no expert on docker.....

When you create the docker container it runs the script "/ide/provisioning/install-android-tools.sh" to download and setup the whole android-toolchain, so that you have the right version installed.

When the xcsoar sourcecode changes and requires a newer version you dont have installed (ndk r25c) it fails, as seen above.

To fix this you can re-run the install-android-tools.sh script inside your container. The other alternative is to rebuild the container from scratch, takes longer and is quite unnecessary but should also work.

iltis42 commented 1 year ago

Thanks for the advice, in my steps to reproduce there is: "docker build --no-cache --file ide/docker/Dockerfile -t xcsoar/xcsoar-build:latest ./ide/", so IMHO this won't do the trick here.

fberst commented 1 year ago

my suggestions won't fix the problem, i build the container from scratch, ndk r25c ist installed, clang is found and then it still errors out while configuring libsodium.

configure:3805: error: in /opt/xcsoar/output/ANDROID/armeabi-v7a/lib/build/libsodium-1.0.18: configure:3807: error: C compiler cannot create executables

something is not right, not quite sure what and why......

MaxKellermann commented 1 year ago

Did you check config.log?

iltis42 commented 1 year ago

Yup, the screenshot above is the snippet from config log where it failed. The issue there is that clang got placed here: /root/opt/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/bin/clang instead of ...r25c/...

MaxKellermann commented 1 year ago

That's because you have r25 instead of r25c.

fberst commented 1 year ago

Did you check config.log?

This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake.

It was created by libsodium configure 1.0.18, which was generated by GNU Autoconf 2.69. Invocation command line was

$ /opt/xcsoar/output/src/libsodium-1.0.18/configure CC=/root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang CXX=/root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ CFLAGS=-Os -g -ffunction-sections -fdata-sections -fvisibility=hidden -fpic -funwind-tables -target i686-linux-android21 CXXFLAGS=-Os -g -ffunction-sections -fdata-sections -fvisibility=hidden -fpic -funwind-tables -target i686-linux-android21 CPPFLAGS=-isystem /opt/xcsoar/output/ANDROID/x86/lib/i686-linux-android/include -DNDEBUG -I./output/ANDROID/include -DHAVE_POSIX -DHAVE_VASPRINTF -DANDROID -D_BYTE_ORDER=_LITTLE_ENDIAN -isystem ./output/ANDROID/x86/lib/i686-linux-android/include -DEYE_CANDY -DXCSOAR_TESTING -DBIONIC -DLIBCPP_NO_IOSTREAM LDFLAGS=-L/opt/xcsoar/output/ANDROID/x86/lib/i686-linux-android/lib -Wl,--no-undefined -static-libstdc++ LIBS= AR=/root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin//llvm-ar ARFLAGS=rcs RANLIB=/root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin//llvm-ranlib STRIP=/root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin//llvm-strip --prefix=/opt/xcsoar/output/ANDROID/x86/lib/i686-linux-android --disable-silent-rules --host=i686-linux-android --disable-shared --enable-static

---------

Platform.

---------

hostname = afec0cfdf756 uname -m = x86_64 uname -r = 5.10.0-20-amd64 uname -s = Linux uname -v = #1 SMP Debian 5.10.158-2 (2022-12-13)

/usr/bin/uname -p = unknown /bin/uname -X = unknown

/bin/arch = unknown /usr/bin/arch -k = unknown /usr/convex/getsysinfo = unknown /usr/bin/hostinfo = unknown /bin/machine = unknown /usr/bin/oslevel = unknown /bin/universe = unknown

PATH: /usr/local/sbin PATH: /usr/local/bin PATH: /usr/sbin PATH: /usr/bin PATH: /sbin PATH: /bin

-----------

Core tests.

-----------

configure:2431: checking build system type configure:2445: result: x86_64-pc-linux-gnu configure:2465: checking host system type configure:2478: result: i686-pc-linux-android configure:2514: checking for a BSD-compatible install configure:2582: result: /usr/bin/install -c configure:2593: checking whether build environment is sane configure:2648: result: yes configure:2707: checking for i686-linux-android-strip configure:2734: result: /root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin//llvm-strip configure:2799: checking for a thread-safe mkdir -p configure:2838: result: /bin/mkdir -p configure:2845: checking for gawk configure:2875: result: no configure:2845: checking for mawk configure:2861: found /usr/bin/mawk configure:2872: result: mawk configure:2883: checking whether make sets $(MAKE) configure:2905: result: yes configure:2934: checking whether make supports nested variables configure:2951: result: yes configure:3040: checking whether UID '0' is supported by ustar format configure:3043: result: yes configure:3050: checking whether GID '0' is supported by ustar format configure:3053: result: yes configure:3061: checking how to create a ustar tar archive configure:3072: tar --version tar (GNU tar) 1.34 Copyright (C) 2021 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later https://gnu.org/licenses/gpl.html. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason. configure:3075: $? = 0 configure:3115: tardir=conftest.dir && eval tar --format=ustar -chf - "$tardir" >conftest.tar configure:3118: $? = 0 configure:3122: tar -xf - <conftest.tar configure:3125: $? = 0 configure:3127: cat conftest.dir/file GrepMe configure:3130: $? = 0 configure:3143: result: gnutar configure:3204: checking whether make supports nested variables configure:3221: result: yes configure:3233: checking whether to enable maintainer-specific portions of Makefiles configure:3242: result: no configure:3352: checking whether make supports the include directive configure:3367: make -f confmf.GNU && cat confinc.out make[2]: Entering directory '/opt/xcsoar/output/ANDROID/x86/lib/build/libsodium-1.0.18' make[2]: Leaving directory '/opt/xcsoar/output/ANDROID/x86/lib/build/libsodium-1.0.18' this is the am__doit target configure:3370: $? = 0 configure:3389: result: yes (GNU style) configure:3400: checking for i686-linux-android-gcc configure:3427: result: /root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang configure:3696: checking for C compiler version configure:3705: /root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --version >&5 /opt/xcsoar/output/src/libsodium-1.0.18/configure: line 3707: /root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang: No such file or directory configure:3716: $? = 127 configure:3705: /root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -v >&5 /opt/xcsoar/output/src/libsodium-1.0.18/configure: line 3707: /root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang: No such file or directory configure:3716: $? = 127 configure:3705: /root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -V >&5 /opt/xcsoar/output/src/libsodium-1.0.18/configure: line 3707: /root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang: No such file or directory configure:3716: $? = 127 configure:3705: /root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -qversion >&5 /opt/xcsoar/output/src/libsodium-1.0.18/configure: line 3707: /root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang: No such file or directory configure:3716: $? = 127 configure:3736: checking whether the C compiler works configure:3758: /root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -Os -g -ffunction-sections -fdata-sections -fvisibility=hidden -fpic -funwind-tables -target i686-linux-android21 -isystem /opt/xcsoar/output/ANDROID/x86/lib/i686-linux-android/include -DNDEBUG -I./output/ANDROID/include -DHAVE_POSIX -DHAVE_VASPRINTF -DANDROID -D_BYTE_ORDER=_LITTLE_ENDIAN -isystem ./output/ANDROID/x86/lib/i686-linux-android/include -DEYE_CANDY -DXCSOAR_TESTING -DBIONIC -DLIBCPP_NO_IOSTREAM -L/opt/xcsoar/output/ANDROID/x86/lib/i686-linux-android/lib -Wl,--no-undefined -static-libstdc++ conftest.c >&5 /opt/xcsoar/output/src/libsodium-1.0.18/configure: line 3760: /root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang: No such file or directory configure:3762: $? = 127 configure:3800: result: no configure: failed program was: / confdefs.h / #define PACKAGE_NAME "libsodium" #define PACKAGE_TARNAME "libsodium" #define PACKAGE_VERSION "1.0.18" #define PACKAGE_STRING "libsodium 1.0.18" #define PACKAGE_BUGREPORT "https://github.com/jedisct1/libsodium/issues" #define PACKAGE_URL "https://github.com/jedisct1/libsodium" #define PACKAGE "libsodium" #define VERSION "1.0.18" / end confdefs.h. /
int
main ()
{
;
return 0;
}

configure:3805: error: in /opt/xcsoar/output/ANDROID/x86/lib/build/libsodium-1.0.18': configure:3807: error: C compiler cannot create executables Seeconfig.log' for more details

----------------

Cache variables.

----------------

ac_cv_build=x86_64-pc-linux-gnu ac_cv_env_AR_set=set ac_cv_env_AR_value=/root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin//llvm-ar ac_cv_env_CCASFLAGS_set= ac_cv_env_CCASFLAGS_value= ac_cv_env_CCAS_set= ac_cv_env_CCAS_value= ac_cv_env_CC_set=set ac_cv_env_CC_value=/root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang ac_cv_env_CFLAGS_set=set ac_cv_env_CFLAGS_value='-Os -g -ffunction-sections -fdata-sections -fvisibility=hidden -fpic -funwind-tables -target i686-linux-android21' ac_cv_env_CPPFLAGS_set=set ac_cv_env_CPPFLAGS_value='-isystem /opt/xcsoar/output/ANDROID/x86/lib/i686-linux-android/include -DNDEBUG -I./output/ANDROID/include -DHAVE_POSIX -DHAVE_VASPRINTF -DANDROID -D_BYTE_ORDER=_LITTLE_ENDIAN -isystem ./output/ANDROID/x86/lib/i686-linux-android/include -DEYE_CANDY -DXCSOAR_TESTING -DBIONIC -DLIBCPP_NO_IOSTREAM ' ac_cv_env_CPP_set= ac_cv_env_CPP_value= ac_cv_env_CWFLAGS_set= ac_cv_env_CWFLAGS_value= ac_cv_env_LDFLAGS_set=set ac_cv_env_LDFLAGS_value='-L/opt/xcsoar/output/ANDROID/x86/lib/i686-linux-android/lib -Wl,--no-undefined -static-libstdc++ ' ac_cv_env_LIBS_set=set ac_cv_env_LIBS_value=' ' ac_cv_env_LT_SYS_LIBRARY_PATH_set= ac_cv_env_LT_SYS_LIBRARY_PATH_value= ac_cv_env_SAFECODE_HOME_set= ac_cv_env_SAFECODE_HOME_value= ac_cv_env_build_alias_set= ac_cv_env_build_alias_value= ac_cv_env_host_alias_set=set ac_cv_env_host_alias_value=i686-linux-android ac_cv_env_target_alias_set= ac_cv_env_target_alias_value= ac_cv_host=i686-pc-linux-android ac_cv_path_install='/usr/bin/install -c' ac_cv_path_mkdir=/bin/mkdir ac_cv_prog_AWK=mawk ac_cv_prog_CC=/root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang ac_cv_prog_STRIP=/root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin//llvm-strip ac_cv_prog_make_make_set=yes am_cv_make_support_nested_variables=yes am_cv_prog_tar_ustar=gnutar

-----------------

Output variables.

-----------------

ACLOCAL='${SHELL} /opt/xcsoar/output/src/libsodium-1.0.18/build-aux/missing aclocal-1.16' ALLOCA='' AMDEPBACKSLASH='\' AMDEP_FALSE='#' AMDEP_TRUE='' AMTAR='$${TAR-tar}' AM_BACKSLASH='\' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' AM_DEFAULT_VERBOSITY='1' AM_V='$(V)' AR='/root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin//llvm-ar' AS='' AUTOCONF='${SHELL} /opt/xcsoar/output/src/libsodium-1.0.18/build-aux/missing autoconf' AUTOHEADER='${SHELL} /opt/xcsoar/output/src/libsodium-1.0.18/build-aux/missing autoheader' AUTOMAKE='${SHELL} /opt/xcsoar/output/src/libsodium-1.0.18/build-aux/missing automake-1.16' AWK='mawk' CC='/root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang' CCAS='' CCASDEPMODE='' CCASFLAGS='' CCDEPMODE='' CFLAGS='-Os -g -ffunction-sections -fdata-sections -fvisibility=hidden -fpic -funwind-tables -target i686-linux-android21' CFLAGS_AESNI='' CFLAGS_AVX2='' CFLAGS_AVX512F='' CFLAGS_AVX='' CFLAGS_MMX='' CFLAGS_PCLMUL='' CFLAGS_RDRAND='' CFLAGS_SSE2='' CFLAGS_SSE3='' CFLAGS_SSE41='' CFLAGS_SSSE3='' CPP='' CPPFLAGS='-isystem /opt/xcsoar/output/ANDROID/x86/lib/i686-linux-android/include -DNDEBUG -I./output/ANDROID/include -DHAVE_POSIX -DHAVE_VASPRINTF -DANDROID -D_BYTE_ORDER=_LITTLE_ENDIAN -isystem ./output/ANDROID/x86/lib/i686-linux-android/include -DEYE_CANDY -DXCSOAR_TESTING -DBIONIC -DLIBCPP_NO_IOSTREAM ' CWFLAGS='' CYGPATH_W='echo' DEFS='' DEPDIR='.deps' DLLTOOL='' DLL_VERSION='24' DSYMUTIL='' DUMPBIN='' ECHO_C='' ECHO_N='-n' ECHO_T='' EGREP='' EMSCRIPTEN_FALSE='' EMSCRIPTEN_TRUE='' ENABLE_VALGRIND_drd='' ENABLE_VALGRIND_helgrind='' ENABLE_VALGRIND_memcheck='' ENABLE_VALGRIND_sgcheck='' EXEEXT='' FGREP='' GREP='' HAVE_AMD64_ASM_FALSE='' HAVE_AMD64_ASM_TRUE='' HAVE_AMD64_ASM_V='' HAVE_AVX_ASM_FALSE='' HAVE_AVX_ASM_TRUE='' HAVE_AVX_ASM_V='' HAVE_CPUID_V='' HAVE_LD_OUTPUT_DEF_FALSE='' HAVE_LD_OUTPUT_DEF_TRUE='' HAVE_TI_MODE_FALSE='' HAVE_TI_MODE_TRUE='' HAVE_TI_MODE_V='' INSTALL_DATA='${INSTALL} -m 644' INSTALL_PROGRAM='${INSTALL}' INSTALL_SCRIPT='${INSTALL}' INSTALL_STRIP_PROGRAM='$(install_sh) -c -s' LD='' LDFLAGS='-L/opt/xcsoar/output/ANDROID/x86/lib/i686-linux-android/lib -Wl,--no-undefined -static-libstdc++ ' LIBOBJS='' LIBS=' ' LIBTOOL='' LIBTOOL_DEPS='' LIBTOOL_EXTRA_FLAGS='' LIPO='' LN_S='' LTLIBOBJS='' LT_SYS_LIBRARY_PATH='' MAINT='#' MAINTAINER_MODE_FALSE='' MAINTAINER_MODE_TRUE='#' MAKEINFO='${SHELL} /opt/xcsoar/output/src/libsodium-1.0.18/build-aux/missing makeinfo' MANIFEST_TOOL='' MINIMAL_FALSE='' MINIMAL_TRUE='' MKDIR_P='/bin/mkdir -p' NM='' NMEDIT='' OBJDUMP='' OBJEXT='' OTOOL64='' OTOOL='' PACKAGE='libsodium' PACKAGE_BUGREPORT='https://github.com/jedisct1/libsodium/issues' PACKAGE_NAME='libsodium' PACKAGE_STRING='libsodium 1.0.18' PACKAGE_TARNAME='libsodium' PACKAGE_URL='https://github.com/jedisct1/libsodium' PACKAGE_VERSION='1.0.18' PATH_SEPARATOR=':' PKGCONFIG_LIBS_PRIVATE='' PTHREAD_CC='' PTHREAD_CFLAGS='' PTHREAD_LIBS='' RANLIB='/root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin//llvm-ranlib' SAFECODE_HOME='' SED='' SET_MAKE='' SHELL='/bin/bash' SODIUM_LIBRARY_MINIMAL_DEF='' SODIUM_LIBRARY_VERSION='26:0:3' SODIUM_LIBRARY_VERSION_MAJOR='10' SODIUM_LIBRARY_VERSION_MINOR='3' STRIP='/root/opt/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin//llvm-strip' TEST_LDFLAGS='' VALGRIND='' VALGRIND_CHECK_RULES='' VALGRIND_ENABLED='' VALGRIND_ENABLED_FALSE='' VALGRIND_ENABLED_TRUE='' VERSION='1.0.18' WASI_FALSE='' WASI_TRUE='' ac_ct_AR='' ac_ct_CC='' ac_ct_DUMPBIN='' amEXEEXT_FALSE='' am__EXEEXT_TRUE='' amfastdepCCAS_FALSE='' amfastdepCCAS_TRUE='' am__fastdepCC_FALSE='' amfastdepCC_TRUE='' aminclude='include' amisrc=' -I$(srcdir)' amleading_dot='.' am__nodep='_no' amquote='' amtar='tar --format=ustar -chf - "$$tardir"' amuntar='tar -xf -' ax_pthread_config='' bindir='${exec_prefix}/bin' build='x86_64-pc-linux-gnu' build_alias='' build_cpu='x86_64' build_os='linux-gnu' build_vendor='pc' datadir='${datarootdir}' datarootdir='${prefix}/share' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' dvidir='${docdir}' exec_prefix='NONE' host='i686-pc-linux-android' host_alias='i686-linux-android' host_cpu='i686' host_os='linux-android' host_vendor='pc' htmldir='${docdir}' includedir='${prefix}/include' infodir='${datarootdir}/info' install_sh='${SHELL} /opt/xcsoar/output/src/libsodium-1.0.18/build-aux/install-sh' libdir='${exec_prefix}/lib' libexecdir='${exec_prefix}/libexec' localedir='${datarootdir}/locale' localstatedir='${prefix}/var' mandir='${datarootdir}/man' mkdir_p='$(MKDIR_P)' oldincludedir='/usr/include' pdfdir='${docdir}' prefix='/opt/xcsoar/output/ANDROID/x86/lib/i686-linux-android' program_transform_name='s,x,x,' psdir='${docdir}' sbindir='${exec_prefix}/sbin' sharedstatedir='${prefix}/com' sysconfdir='${prefix}/etc' target_alias='' valgrind_enabled_tools='' valgrind_tools=''

-----------

confdefs.h.

-----------

/ confdefs.h /

define PACKAGE_NAME "libsodium"

define PACKAGE_TARNAME "libsodium"

define PACKAGE_VERSION "1.0.18"

define PACKAGE_STRING "libsodium 1.0.18"

define PACKAGE_BUGREPORT "https://github.com/jedisct1/libsodium/issues"

define PACKAGE_URL "https://github.com/jedisct1/libsodium"

define PACKAGE "libsodium"

define VERSION "1.0.18"

configure: exit 77

iltis42 commented 1 year ago

That's because you have r25 instead of r25c.

Can't confirm that, in may targets.mk there is r25c

MaxKellermann commented 1 year ago

Can't confirm that, in may targets.mk there is r25c

That sounds very wrong. targets.mk doesn't say what you have, but what XCSoar uses. If XCSoar uses something you don't have, it will fail. And that's what happens here. PEBCAK.

iltis42 commented 1 year ago

Hmm, i did a full and clean build from scratch IMHO, what's wrong with these steps:

git clone --recurse-submodules https://github.com/XCSoar/XCSoar XCSoar2 cd XCSoar2 docker build --no-cache --file ide/docker/Dockerfile -t xcsoar/xcsoar-build:latest ./ide/ docker run --mount type=bind,source="$(pwd)",target=/opt/xcsoar -it ghcr.io/xcsoar/xcsoar/xcsoar-build:latest /bin/bash xcsoar-compile ANDROID

MaxKellermann commented 1 year ago

I don't get it. You said you have r25, and you know it's a mistake to have r25 and not have r25c, still you attempt to start the build, knowing that it is doomed to fail. Then why do you discuss the build failure, instead of trying to find out why you don't have r25c?

(I've never used Docker and never will, it's too complicated for me. I'm always astounded by the multitude of problems people have with Docker. Building XCSoar is so easy, if you omit all the complexity that Docker is.)

iltis42 commented 1 year ago

Docker is a cool thing, it helps us to get such things done in one place and once its done everybody can benefit from that by just pull it. The steps i did should work in that way, and if not, we have a bug in there that needs a solution. And nope, i did not say i have r25 when it fails, i see r25c when it fails in targets.mk.

MaxKellermann commented 1 year ago

And nope, i did not say i have r25 when it fails

You did say that. I don't get why you don't get the problem and why you repeat that stuff about targets.mk which makes no sense. I tried. So... good luck, I'm out of here.

iltis42 commented 1 year ago

This i said: "In targets.mk the ndk is defined as r25c, i get behind this if i change this to r25 only."

lordfolken commented 1 year ago

Hmm, i did a full and clean build from scratch IMHO, what's wrong with these steps:

git clone --recurse-submodules https://github.com/XCSoar/XCSoar XCSoar2 cd XCSoar2 docker build --no-cache --file ide/docker/Dockerfile -t xcsoar/xcsoar-build:latest ./ide/ docker run --mount type=bind,source="$(pwd)",target=/opt/xcsoar -it xcsoar/xcsoar-build:latest /bin/bash xcsoar-compile ANDROID

These steps result in an installable apk for me.

iltis42 commented 1 year ago

These steps result in an installable apk for me.

Thank's for the update. Ran exactly the same batch again just now, and it's fine now. Must have been a temporary glitch in a packet that put somehow its binaries in the wrong place before.

make[1]: Leaving directory '/opt/xcsoar' APK output/ANDROID/dbg/build/unsigned.apk ALIGN output/ANDROID/dbg/build/aligned.apk SIGN output/ANDROID/bin/XCSoar-debug.apk

MaxKellermann commented 1 year ago

This i said: "In targets.mk the ndk is defined as r25c, i get behind this if i change this to r25 only."

Sigh. You said:

The issue there is that clang got placed here: /root/opt/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/bin/clang instead of ...r25c/...

This clearly says you have r25 and not r25c.

Of course, then changing the XCSoar build system to use r25 instead of r25c, you can make it work, duh! But still it's only because you have r25 and not r25c.

This "temporary glitch" is not some unexplainable mystery - it's a simple and deterministic problem: you had installed r25 instead of r25c!

iltis42 commented 1 year ago

@lordfolken strange, afaik the android ndk version comes with the docker yml, or is there something referenced outside the docker ?