Skip to content

Error in Android build #14

@andrea1bergamini

Description

@andrea1bergamini

Building the Android branch I get the following errors:

C:/test/qsqlcipher-qt5-android/android-libs/arm64-v8a/libsqlcipher.a(printf.o): In function `sqlite3_str_vappendf':
printf.c:(.text+0x110): undefined reference to `strchrnul'
C:/test/qsqlcipher-qt5-android/android-libs/arm64-v8a/libsqlcipher.a(crypto_impl.o): In function `sqlcipher_cipher_profile':
crypto_impl.c:(.text+0x3b84): undefined reference to `stderr'
crypto_impl.c:(.text+0x3b88): undefined reference to `stderr'
crypto_impl.c:(.text+0x3b8c): undefined reference to `stdout'
crypto_impl.c:(.text+0x3b90): undefined reference to `stdout'
C:/test/qsqlcipher-qt5-android/android-libs/arm64-v8a/libcrypto.a(cryptlib.o): In function `OPENSSL_showfatal':
cryptlib.c:(.text+0x28): undefined reference to `stderr'
cryptlib.c:(.text+0x30): undefined reference to `stderr'
C:/test/qsqlcipher-qt5-android/android-libs/arm64-v8a/libcrypto.a(ui_openssl.o): In function `open_console':
ui_openssl.c:(.text+0x68): undefined reference to `stdin'
ui_openssl.c:(.text+0x6c): undefined reference to `stdin'
ui_openssl.c:(.text+0x9c): undefined reference to `stderr'
ui_openssl.c:(.text+0xa0): undefined reference to `stderr'
C:/test/qsqlcipher-qt5-android/android-libs/arm64-v8a/libcrypto.a(ui_openssl.o): In function `close_console':
ui_openssl.c:(.text+0x374): undefined reference to `stdin'
ui_openssl.c:(.text+0x378): undefined reference to `stdin'
ui_openssl.c:(.text+0x3a0): undefined reference to `stderr'
ui_openssl.c:(.text+0x3a4): undefined reference to `stderr'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Makefile:75: plugins\sqldrivers\libqsqlcipher.so] Error 1

NDK version: 21.3.6528147
QT: 5.12.9
Same error with both Windows and Linux host

Error does not show with armeabi-v7a architecure, so it seems related to shared libraries for arm64-v8a or incompatible NDK used for build that libraries.

On the other hand, by using the Android-5.15 branch, the build is successfull for both ABI using QT 5.15 but fails with QT 5.12 using armeabi-v7a architecture (ok with arm64-v8a):

C:/test/qsqlcipher-qt5-android-5.15/android-libs/armeabi-v7a/libsqlcipher.a(mem1.o):mem1.c:function sqlite3MemRealloc: error: undefined reference to 'malloc_usable_size'
C:/test/qsqlcipher-qt5-android-5.15/android-libs/armeabi-v7a/libsqlcipher.a(mem1.o):mem1.c:function sqlite3MemSize: error: undefined reference to 'malloc_usable_size'
C:/test/qsqlcipher-qt5-android-5.15/android-libs/armeabi-v7a/libsqlcipher.a(os_unix.o):os_unix.c:aSyscall: error: undefined reference to 'mmap64'
C:/test/qsqlcipher-qt5-android-5.15/android-libs/armeabi-v7a/libsqlcipher.a(rtree.o):rtree.c:function geopolyParseNumber: error: undefined reference to 'atof'
C:/test/qsqlcipher-qt5-android-5.15/android-libs/armeabi-v7a/libcrypto.a(armcap.o):armcap.c:function OPENSSL_cpuid_setup: error: undefined reference to 'sigfillset'
C:/test/qsqlcipher-qt5-android-5.15/android-libs/armeabi-v7a/libcrypto.a(armcap.o):armcap.c:function OPENSSL_cpuid_setup: error: undefined reference to 'sigdelset'
C:/test/qsqlcipher-qt5-android-5.15/android-libs/armeabi-v7a/libcrypto.a(armcap.o):armcap.c:function OPENSSL_cpuid_setup: error: undefined reference to 'sigdelset'
C:/test/qsqlcipher-qt5-android-5.15/android-libs/armeabi-v7a/libcrypto.a(armcap.o):armcap.c:function OPENSSL_cpuid_setup: error: undefined reference to 'sigdelset'
C:/test/qsqlcipher-qt5-android-5.15/android-libs/armeabi-v7a/libcrypto.a(armcap.o):armcap.c:function OPENSSL_cpuid_setup: error: undefined reference to 'sigdelset'
C:/test/qsqlcipher-qt5-android-5.15/android-libs/armeabi-v7a/libcrypto.a(ui_openssl.o):ui_openssl.c:function open_console: error: undefined reference to 'tcgetattr'
C:/test/qsqlcipher-qt5-android-5.15/android-libs/armeabi-v7a/libcrypto.a(ui_openssl.o):ui_openssl.c:function read_string_inner: error: undefined reference to 'signal'
C:/test/qsqlcipher-qt5-android-5.15/android-libs/armeabi-v7a/libcrypto.a(ui_openssl.o):ui_openssl.c:function read_string_inner: error: undefined reference to 'tcsetattr'
C:/test/qsqlcipher-qt5-android-5.15/android-libs/armeabi-v7a/libcrypto.a(ui_openssl.o):ui_openssl.c:function read_string_inner: error: undefined reference to 'tcsetattr'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Makefile:75: plugins\sqldrivers\libqsqlcipher.so] Error 1

Same error with Windows and Linux host

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions