Hi,
I want to add openssl to OSGeo4A, which is built with CrystaX NDK.
I have run into issues building openssl, missing random functions:
arm-linux-androideabi-gcc -I. -Icrypto/include -Iinclude -I../openssl-1.1.1 -I../openssl-1.1.1/crypto/include -I../op
enssl-1.1.1/include -fPIC -pthread -mandroid --sysroot=/opt/crystax-ndk-10.3.2/platforms/android-16/arch-arm -march=
armv7-a -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DO
PENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ
256_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/usr/local/ssl/16/\"" -DENGINESDIR="\"/usr/local/lib/engines-1.1\"" -DNDEBUG -D
__ANDROID_API__=16 -MMD -MF crypto/rand/rand_unix.d.tmp -MT crypto/rand/rand_unix.o -c -o crypto/rand/rand_unix.o ../o
penssl-1.1.1/crypto/rand/rand_unix.c
In file included from /opt/crystax-ndk-10.3.2/platforms/android-16/arch-arm/usr/include/sys/glibc-syscalls.h:43:0,
from /opt/crystax-ndk-10.3.2/platforms/android-16/arch-arm/usr/include/crystax/bionic/libc/include/sy
s/mangled-syscall.h:34,
from /opt/crystax-ndk-10.3.2/platforms/android-16/arch-arm/usr/include/sys/syscall.h:43,
from ../openssl-1.1.1/crypto/rand/rand_unix.c:22:
../openssl-1.1.1/crypto/rand/rand_unix.c: In function 'syscall_random':
../openssl-1.1.1/crypto/rand/rand_unix.c:297:20: error: '__NR_getrandom' undeclared (first use in this function)
return syscall(SYS_getrandom, buf, buflen, 0);
enssl-1.1.1/include -fPIC -pthread -mandroid --sysroot=/opt/crystax-ndk-10.3.2/platforms/android-16/arch-arm -march=
armv7-a -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DO
PENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ
256_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/usr/local/ssl/16/\"" -DENGINESDIR="\"/usr/local/lib/engines-1.1\"" -DNDEBUG -D
__ANDROID_API__=16 -MMD -MF crypto/rand/rand_unix.d.tmp -MT crypto/rand/rand_unix.o -c -o crypto/rand/rand_unix.o ../o
penssl-1.1.1/crypto/rand/rand_unix.c
In file included from /opt/crystax-ndk-10.3.2/platforms/android-16/arch-arm/usr/include/sys/glibc-syscalls.h:43:0,
from /opt/crystax-ndk-10.3.2/platforms/android-16/arch-arm/usr/include/crystax/bionic/libc/include/sy
s/mangled-syscall.h:34,
from /opt/crystax-ndk-10.3.2/platforms/android-16/arch-arm/usr/include/sys/syscall.h:43,
from ../openssl-1.1.1/crypto/rand/rand_unix.c:22:
../openssl-1.1.1/crypto/rand/rand_unix.c: In function 'syscall_random':
../openssl-1.1.1/crypto/rand/rand_unix.c:297:20: error: '__NR_getrandom' undeclared (first use in this function)
return syscall(SYS_getrandom, buf, buflen, 0);
(see attached configure.txt)
What is strange is that when I try with --with-rand-seed=none, I have the same error message. With other rand-seed options, different methods
are missing.
Do you have any idea how to proceed here?
Thanks a lot.
Command line (with current working directory = .): /usr/bin/perl ../openssl-1.1.1/Configure android-arm shared no-comp no-hw no-engine --openssldir=/usr/local/ssl/16/ -D__ANDROID_API__=16 Perl information: /usr/bin/perl 5.26.0 for x86_64-linux-gnu-thread-multi Enabled features: aria asm async autoalginit autoerrinit autoload-config bf blake2 camellia capieng cast chacha cmac cms ct deprecated des dgram dh dsa dso dtls dynamic-engine ec ec2m ecdh ecdsa err filenames gost hw(-.+)? idea makedepend md4 mdc2 multiblock nextprotoneg ocb ocsp pic poly1305 posix-io psk rc2 rc4 rdrand rfc3779 rmd160 scrypt seed shared siphash sm2 sm3 sm4 sock srp srtp sse2 ssl static-engine stdio tests threads tls ts ui-console whirlpool tls1 tls1-method tls1_1 tls1_1-method tls1_2 tls1_2-method tls1_3 dtls1 dtls1-method dtls1_2 dtls1_2-method Disabled features: afalgeng [forced] OPENSSL_NO_AFALGENG asan [default] OPENSSL_NO_ASAN comp [option] OPENSSL_NO_COMP (skip crypto/comp) crypto-mdebug [default] OPENSSL_NO_CRYPTO_MDEBUG crypto-mdebug-backtrace [default] OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE devcryptoeng [default] OPENSSL_NO_DEVCRYPTOENG ec_nistp_64_gcc_128 [default] OPENSSL_NO_EC_NISTP_64_GCC_128 egd [default] OPENSSL_NO_EGD engine [option] OPENSSL_NO_ENGINE (skip crypto/engine, engines) external-tests [default] OPENSSL_NO_EXTERNAL_TESTS fuzz-libfuzzer [default] OPENSSL_NO_FUZZ_LIBFUZZER fuzz-afl [default] OPENSSL_NO_FUZZ_AFL heartbeats [default] OPENSSL_NO_HEARTBEATS md2 [default] OPENSSL_NO_MD2 (skip crypto/md2) msan [default] OPENSSL_NO_MSAN rc5 [default] OPENSSL_NO_RC5 (skip crypto/rc5) sctp [default] OPENSSL_NO_SCTP ssl-trace [default] OPENSSL_NO_SSL_TRACE ubsan [default] OPENSSL_NO_UBSAN unit-test [default] OPENSSL_NO_UNIT_TEST weak-ssl-ciphers [default] OPENSSL_NO_WEAK_SSL_CIPHERS zlib [default] zlib-dynamic [default] ssl3 [default] OPENSSL_NO_SSL3 ssl3-method [default] OPENSSL_NO_SSL3_METHOD Config target attributes: AR => "ar", ARFLAGS => "r", CC => "gcc", CFLAGS => "-Wall -O3", CXX => "g++", CXXFLAGS => "-Wall -O3", HASHBANGPERL => "/usr/bin/env perl", RANLIB => "ranlib", RC => "windres", aes_asm_src => "aes_cbc.c aes-armv4.S bsaes-armv7.S aesv8-armx.S", aes_obj => "aes_cbc.o aes-armv4.o bsaes-armv7.o aesv8-armx.o", apps_aux_src => "", apps_init_src => "", apps_obj => "", bf_asm_src => "bf_enc.c", bf_obj => "bf_enc.o", bin_cflags => "-pie", bn_asm_src => "bn_asm.c armv4-mont.S armv4-gf2m.S", bn_obj => "bn_asm.o armv4-mont.o armv4-gf2m.o", bn_ops => "BN_LLONG RC4_CHAR", build_file => "Makefile", build_scheme => [ "unified", "unix" ], cast_asm_src => "c_enc.c", cast_obj => "c_enc.o", cflags => "-pthread -mandroid --sysroot=\$(ANDROID_NDK)/platforms/android-16/arch-arm", chacha_asm_src => "chacha-armv4.S", chacha_obj => "chacha-armv4.o", cmll_asm_src => "camellia.c cmll_misc.c cmll_cbc.c", cmll_obj => "camellia.o cmll_misc.o cmll_cbc.o", cppflags => "", cpuid_asm_src => "armcap.c armv4cpuid.S", cpuid_obj => "armcap.o armv4cpuid.o", cxxflags => "-std=c++11 -pthread -mandroid --sysroot=\$(ANDROID_NDK)/platforms/android-16/arch-arm", defines => [ ], des_asm_src => "des_enc.c fcrypt_b.c", des_obj => "des_enc.o fcrypt_b.o", disable => [ ], dso_extension => ".so", dso_scheme => "dlfcn", ec_asm_src => "ecp_nistz256.c ecp_nistz256-armv4.S", ec_obj => "ecp_nistz256.o ecp_nistz256-armv4.o", enable => [ ], ex_libs => "-ldl -pthread", exe_extension => "", includes => [ ], keccak1600_asm_src => "keccak1600-armv4.S", keccak1600_obj => "keccak1600-armv4.o", lflags => "", lib_cflags => "", lib_cppflags => "-DOPENSSL_USE_NODELETE", lib_defines => [ ], md5_asm_src => "", md5_obj => "", modes_asm_src => "ghash-armv4.S ghashv8-armx.S", modes_obj => "ghash-armv4.o ghashv8-armx.o", module_cflags => "-fPIC", module_cxxflags => "", module_ldflags => "-Wl,-znodelete -shared -Wl,-Bsymbolic", padlock_asm_src => "", padlock_obj => "", perlasm_scheme => "void", poly1305_asm_src => "poly1305-armv4.S", poly1305_obj => "poly1305-armv4.o", rc4_asm_src => "rc4_enc.c rc4_skey.c", rc4_obj => "rc4_enc.o rc4_skey.o", rc5_asm_src => "rc5_enc.c", rc5_obj => "rc5_enc.o", rmd160_asm_src => "", rmd160_obj => "", sha1_asm_src => "sha1-armv4-large.S sha256-armv4.S sha512-armv4.S", sha1_obj => "sha1-armv4-large.o sha256-armv4.o sha512-armv4.o", shared_cflag => "-fPIC", shared_defflag => "-Wl,--version-script=", shared_defines => [ ], shared_extension => ".so.\$(SHLIB_VERSION_NUMBER)", shared_extension_simple => ".so", shared_ldflag => "-Wl,-znodelete -shared -Wl,-Bsymbolic", shared_rcflag => "", shared_sonameflag => "-Wl,-soname=", shared_target => "linux-shared", thread_defines => [ ], thread_scheme => "pthreads", unistd => "<unistd.h>", uplink_aux_src => "", uplink_obj => "", wp_asm_src => "wp_block.c", wp_obj => "wp_block.o", Recorded environment: AR = BUILDFILE = CC = CROSS_COMPILE = - CXX = ccache arm-linux-androideabi-g++ -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/crystax-ndk-10.3.2/platforms/android-16/arch-arm -I/home/peter/quick/OSGeo4A/stage/armeabi-v7a/include -L/opt/crystax-ndk-10.3.2/sources/crystax/libs/armeabi-v7a -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -mthumb -isystem /opt/crystax-ndk-10.3.2/sources/cxx-stl/gnu-libstdc++/4.9/include -isystem /opt/crystax-ndk-10.3.2/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include -isystem /opt/crystax-ndk-10.3.2/platforms/android-16/arch-arm/usr/include HASHBANGPERL = OPENSSL_LOCAL_CONFIG_DIR = PERL = RANLIB = arm-linux-androideabi-ranlib RC = WINDRES = __CNF_CFLAGS = -march=armv7-a __CNF_CPPDEFINES = __CNF_CPPFLAGS = __CNF_CPPINCLUDES = __CNF_CXXFLAGS = -march=armv7-a __CNF_LDFLAGS = __CNF_LDLIBS = Makevars: AR = arm-linux-androideabi-ar ARFLAGS = r CC = arm-linux-androideabi-gcc CFLAGS = -Wall -O3 CPPDEFINES = __ANDROID_API__=16 CPPFLAGS = CPPINCLUDES = CROSS_COMPILE = arm-linux-androideabi- CXX = arm-linux-androideabi-ccache arm-linux-androideabi-g++ -DANDROID -mandroid -fomit-frame-pointer --sysroot /opt/crystax-ndk-10.3.2/platforms/android-16/arch-arm -I/home/peter/quick/OSGeo4A/stage/armeabi-v7a/include -L/opt/crystax-ndk-10.3.2/sources/crystax/libs/armeabi-v7a -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -mthumb -isystem /opt/crystax-ndk-10.3.2/sources/cxx-stl/gnu-libstdc++/4.9/include -isystem /opt/crystax-ndk-10.3.2/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include -isystem /opt/crystax-ndk-10.3.2/platforms/android-16/arch-arm/usr/include CXXFLAGS = -Wall -O3 HASHBANGPERL = /usr/bin/env perl LDFLAGS = LDLIBS = PERL = /usr/bin/perl RANLIB = arm-linux-androideabi-arm-linux-androideabi-ranlib RC = arm-linux-androideabi-windres NOTE: These variables only represent the configuration view. The build file template may have processed these variables further, please have a look at the build file for more exact data: Makefile build file: Makefile build file templates: ../openssl-1.1.1/Configurations/common0.tmpl ../openssl-1.1.1/Configurations/unix-Makefile.tmpl ../openssl-1.1.1/Configurations/common.tmpl Operating system: armv7-whatever-android Configuring OpenSSL version 1.1.1 (0x1010100fL) for android-arm Using os-specific seed configuration Creating configdata.pm Creating Makefile
-- openssl-users mailing list To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users