Situation 1: no autoreconf, libc static Config: ⎗ ✓ 1../configure --prefix=/data/data/com.termux/files/usr LDFLAGS=/data/data/com.termux/files/usr/lib/clang/16/lib/linux/libclang_rt.builtins-aarch64-android.a 'CPPFLAGS=-O0 -g -U __ANDROID_API__ -D __ANDROID_API__=33 --target=aarch64-linux-android33 Error on usage: ⎗ ✓ 1 2 3octave: no graphical display found octave: disabling GUI features CANNOT LINK EXECUTABLE "/data/data/com.termux/files/home/src/octave-8.3.0/.build/src/.libs/octave-cli": cannot locate symbol "_ZN6octave3sys8password8getpwuidEjRNSt6__ndk112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE" referenced by "/data/data/com.termux/files/home/src/octave-8.3.0/.build/libinterp/.libs/liboctinterp.so.11.0.1"... Situation 2: no autoreconf, libc static, getpwnam define This situation is stupid :) Config: ⎗ ✓ 1../configure --prefix=/data/data/com.termux/files/usr LDFLAGS=/data/data/com.termux/files/usr/lib/clang/16/lib/linux/libclang_rt.builtins-aarch64-android.a 'CPPFLAGS=-O0 -g -U __ANDROID_API__ -D __ANDROID_API__=33 --target=aarch64-linux-android33 -Dgetpwnam=android_polyfill_getpwnam Make error: ⎗ ✓ 1 2 3 4 5 6 7 8 9 10 11CC libgnu_la-getdtablesize.lo CC libgnu_la-getprogname.lo CC malloc/libgnu_la-scratch_buffer_grow.lo CC malloc/libgnu_la-scratch_buffer_grow_preserve.lo CC malloc/libgnu_la-scratch_buffer_set_array_size.lo CC libgnu_la-glob.lo In file included from ../../libgnu/glob.c:44: /data/data/com.termux/files/usr/include/pwd.h:121:23: error: static declaration of 'android_polyfill_getpwnam' follows non-static declaration static struct passwd* android_polyfill_getpwnam(const char* name) { ^ /data/data/com.termux/files/usr/include/pwd.h:83:16: note: previous declaration is here struct passwd* getpwnam(const char* __name); ^ <command line>:4:18: note: expanded from macro 'getpwnam' #define getpwnam android_polyfill_getpwnam ^ 1 error generated. make[3]: *** [Makefile:4238: libgnu_la-glob.lo] Error 1 make[3]: Leaving directory '/data/data/com.termux/files/home/src/octave-8.3.0/.build/libgnu' make[2]: *** [Makefile:5545: all-recursive] Error 1 make[2]: Leaving directory '/data/data/com.termux/files/home/src/octave-8.3.0/.build/libgnu' make[1]: *** [Makefile:3250: all] Error 2 make[1]: Leaving directory '/data/data/com.termux/files/home/src/octave-8.3.0/.build/libgnu' make: *** [Makefile:30804: libgnu/libgnu.la] Error 2 Situation 3: autoreconfed Config: ⎗ ✓ 1../configure --prefix=/data/data/com.termux/files/usr 'CPPFLAGS=-O0 -g -U __ANDROID_API__ -D __ANDROID_API__=33 --target=aarch64-linux-android33' Make error: ⎗ ✓ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18CXXLD src/octave-cli ld.lld: error: undefined reference due to --no-allow-shlib-undefined: octave::sys::password::getpwuid(unsigned int, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>&) >>> referenced by libinterp/.libs/liboctinterp.so ld.lld: error: undefined reference due to --no-allow-shlib-undefined: octave::sys::password::getpwnam(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>> const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>&) >>> referenced by libinterp/.libs/liboctinterp.so ld.lld: error: undefined reference due to --no-allow-shlib-undefined: octave::sys::password::getpwnam(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>> const&) >>> referenced by /data/data/com.termux/files/home/src/octave-8.3.0/.build/liboctave/.libs/liboctave.so ld.lld: error: undefined reference due to --no-allow-shlib-undefined: octave::sys::password::getpwuid(unsigned int) >>> referenced by /data/data/com.termux/files/home/src/octave-8.3.0/.build/liboctave/.libs/liboctave.so clang-16: error: linker command failed with exit code 1 (use -v to see invocation) make[2]: *** [Makefile:15739: src/octave-cli] Error 1 make[2]: Leaving directory '/data/data/com.termux/files/home/src/octave-8.3.0/.build' make[1]: *** [Makefile:27671: all-recursive] Error 1 make[1]: Leaving directory '/data/data/com.termux/files/home/src/octave-8.3.0/.build' make: *** [Makefile:11061: all] Error 2 Situation 4: autoreconfed, getpwnam define Config: ⎗ ✓ 1../configure --prefix=/data/data/com.termux/files/usr 'CPPFLAGS=-O0 -g -U __ANDROID_API__ -D __ANDROID_API__=33 --target=aarch64-linux-android33 -Dgetpwnam=android_polyfill_getpwnam' Make error: ⎗ ✓ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18In file included from ../../libgnu/glob.c:44: /data/data/com.termux/files/usr/include/pwd.h:121:23: error: static declaration of 'android_polyfill_getpwnam' follows non-static declaration static struct passwd* android_polyfill_getpwnam(const char* name) { ^ /data/data/com.termux/files/usr/include/pwd.h:83:16: note: previous declaration is here struct passwd* getpwnam(const char* __name); ^ <command line>:4:18: note: expanded from macro 'getpwnam' #define getpwnam android_polyfill_getpwnam ^ 1 error generated. make[3]: *** [Makefile:4238: libgnu_la-glob.lo] Error 1 make[3]: Leaving directory '/data/data/com.termux/files/home/src/octave-8.3.0/.build/libgnu' make[2]: *** [Makefile:5545: all-recursive] Error 1 make[2]: Leaving directory '/data/data/com.termux/files/home/src/octave-8.3.0/.build/libgnu' make[1]: *** [Makefile:3250: all] Error 2 make[1]: Leaving directory '/data/data/com.termux/files/home/src/octave-8.3.0/.build/libgnu' make: *** [Makefile:30804: libgnu/libgnu.la] Error 2