Subject: bug#53980: Android cross-compile and aarch64-linux-android/bin/ld: -soname: missing argument

From: Jeffrey Walton <[email-masked]>
Date: Sun, 13 Feb 2022 17:24:45 -0500

Hi Everyone,

I'm testing an Android cross-compile using Autotools. For the Android
cross-compile the build is failing. Other builds are Ok.

Any ideas what I might be doing wrong?

Thanks in advance.

$ make 2>&1 | fold -w 80
make  all-am
make[1]: Entering directory '/home/jwalton/Desktop/cryptopp'
/bin/bash ./libtool  --tag=CXX   --mode=link aarch64-linux-android21-clang++ -pt
hread -fdata-sections -ffunction-sections -mfix-cortex-a53-835769 -pipe -Wall -g
2 -O3 -fPIC -target aarch64-none-linux-android21 -std=c++11 -stdlib=libc++ -fsta
ck-protector-strong -funwind-tables -fexceptions -frtti -fno-addrsig -fno-experi
mental-isel -Wa,--noexecstack -pthread -Wl,--gc-sections -Wl,--build-id -Wl,--de
mangle -Wl,--exclude-libs,ALL -Wl,--as-needed -release 8.7.0 -version-info 8:7 -
Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--warn-shared-textrel -Wl,--warn-c
ommon -Wl,--warn-unresolved-symbols -Wl,--gc-sections -Wl,--fatal-warnings --sys
root /opt/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot -o libcrypto
pp.la -rpath /usr/local/lib adhoc.lo libcryptlib_la-cryptlib.lo libcpu_la-cpu.lo
libinteger_la-integer.lo libaria_simd_la-aria_simd.lo libblake2s_simd_la-blake2
s_simd.lo libblake2b_simd_la-blake2b_simd.lo libchacha_simd_la-chacha_simd.lo li
bcham_simd_la-cham_simd.lo libcrc_simd_la-crc_simd.lo libgcm_simd_la-gcm_simd.lo
libgf2n_simd_la-gf2n_simd.lo libkeccak_simd_la-keccak_simd.lo liblea_simd_la-le
a_simd.lo librijndael_simd_la-rijndael_simd.lo libsha_simd_la-sha_simd.lo libsha
cal2_simd_la-shacal2_simd.lo libsimon128_simd_la-simon128_simd.lo libspeck128_si
md_la-speck128_simd.lo libsm4_simd_la-sm4_simd.lo libsse_simd_la-sse_simd.lo   l
ibneon_simd_la-neon_simd.lo    3way.lo adler32.lo algebra.lo algparam.lo allocat
e.lo arc4.lo aria.lo ariatab.lo asn.lo authenc.lo base32.lo base64.lo basecode.l
o bfinit.lo blake2.lo blowfish.lo blumshub.lo camellia.lo cast.lo casts.lo cbcma
c.lo ccm.lo chacha.lo chachapoly.lo cham.lo channels.lo cmac.lo crc.lo darn.lo d
efault.lo des.lo dessp.lo dh.lo dh2.lo dll.lo donna_32.lo donna_64.lo dsa.lo eax
.lo ec2n.lo eccrypto.lo ecp.lo elgamal.lo emsa2.lo eprecomp.lo esign.lo files.lo
filters.lo fips140.lo fipstest.lo gcm.lo gf256.lo gf2_32.lo gf2n.lo gfpcrypt.lo
gost.lo gzip.lo hc128.lo hc256.lo hex.lo hight.lo hmac.lo hrtimer.lo ida.lo ide
a.lo iterhash.lo kalyna.lo kalynatab.lo keccak.lo keccak_core.lo lea.lo lsh256.l
o lsh512.lo luc.lo mars.lo marss.lo md2.lo md4.lo md5.lo misc.lo modes.lo mqueue
.lo mqv.lo nbtheory.lo oaep.lo osrng.lo padlkrng.lo panama.lo pkcspad.lo poly130
5.lo polynomi.lo pssr.lo pubkey.lo queue.lo rabbit.lo rabin.lo randpool.lo rc2.l
o rc5.lo rc6.lo rdrand.lo rdtables.lo rijndael.lo ripemd.lo rng.lo
rsa.lo rw.lo
safer.lo salsa.lo scrypt.lo seal.lo seed.lo serpent.lo sha.lo sha3.lo shacal2.lo
shake.lo shark.lo sharkbox.lo simeck.lo simon.lo skipjack.lo sm3.lo sm4.lo sose
manuk.lo speck.lo square.lo squaretb.lo strciphr.lo tea.lo tftables.lo threefish
.lo tiger.lo tigertab.lo ttmac.lo tweetnacl.lo twofish.lo vmac.lo wake.lo whrlpo
ol.lo xed25519.lo xtr.lo xtrcrypt.lo xts.lo zdeflate.lo zinflate.lo zlib.lo

*** Warning: inter-library dependencies are not known to be supported.
*** All declared inter-library dependencies are being dropped.
*** The inter-library dependencies that have been dropped here will be
*** automatically added whenever a program is linked with this library
*** or is declared to -dlopen it.
libtool: link: aarch64-linux-android21-clang++  -fPIC -DPIC -shared -nostdlib /o
pt/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/../sysroot/usr/lib/aarc
h64-linux-android/21/crtbegin_so.o  .libs/adhoc.o .libs/libcryptlib_la-cryptlib.
o .libs/libcpu_la-cpu.o .libs/libinteger_la-integer.o .libs/libaria_simd_la-aria
_simd.o .libs/libblake2s_simd_la-blake2s_simd.o .libs/libblake2b_simd_la-blake2b
_simd.o .libs/libchacha_simd_la-chacha_simd.o
.libs/libcham_simd_la-cham_simd.o
.libs/libcrc_simd_la-crc_simd.o .libs/libgcm_simd_la-gcm_simd.o .libs/libgf2n_si
md_la-gf2n_simd.o .libs/libkeccak_simd_la-keccak_simd.o .libs/liblea_simd_la-lea
_simd.o .libs/librijndael_simd_la-rijndael_simd.o .libs/libsha_simd_la-sha_simd.
o .libs/libshacal2_simd_la-shacal2_simd.o .libs/libsimon128_simd_la-simon128_sim
d.o .libs/libspeck128_simd_la-speck128_simd.o .libs/libsm4_simd_la-sm4_simd.o .l
ibs/libsse_simd_la-sse_simd.o .libs/libneon_simd_la-neon_simd.o .libs/3way.o .li
bs/adler32.o .libs/algebra.o .libs/algparam.o .libs/allocate.o .libs/arc4.o .lib
s/aria.o .libs/ariatab.o .libs/asn.o .libs/authenc.o .libs/base32.o .libs/base64
.o .libs/basecode.o .libs/bfinit.o .libs/blake2.o .libs/blowfish.o .libs/blumshu
b.o .libs/camellia.o .libs/cast.o .libs/casts.o .libs/cbcmac.o .libs/ccm.o .libs
/chacha.o .libs/chachapoly.o .libs/cham.o .libs/channels.o .libs/cmac.o .libs/cr
c.o .libs/darn.o .libs/default.o .libs/des.o .libs/dessp.o .libs/dh.o .libs/dh2.
o .libs/dll.o .libs/donna_32.o .libs/donna_64.o .libs/dsa.o .libs/eax.o .libs/ec
2n.o .libs/eccrypto.o .libs/ecp.o .libs/elgamal.o .libs/emsa2.o .libs/eprecomp.o
.libs/esign.o .libs/files.o .libs/filters.o .libs/fips140.o .libs/fipstest.o .l
ibs/gcm.o .libs/gf256.o .libs/gf2_32.o .libs/gf2n.o .libs/gfpcrypt.o .libs/gost.
o .libs/gzip.o .libs/hc128.o .libs/hc256.o .libs/hex.o .libs/hight.o .libs/hmac.
o .libs/hrtimer.o .libs/ida.o .libs/idea.o .libs/iterhash.o .libs/kalyna.o .libs
/kalynatab.o .libs/keccak.o .libs/keccak_core.o .libs/lea.o .libs/lsh256.o .libs
/lsh512.o .libs/luc.o .libs/mars.o .libs/marss.o .libs/md2.o .libs/md4.o .libs/m
d5.o .libs/misc.o .libs/modes.o .libs/mqueue.o .libs/mqv.o .libs/nbtheory.o .lib
s/oaep.o .libs/osrng.o .libs/padlkrng.o .libs/panama.o .libs/pkcspad.o .libs/pol
y1305.o .libs/polynomi.o .libs/pssr.o .libs/pubkey.o .libs/queue.o .libs/rabbit.
o .libs/rabin.o .libs/randpool.o .libs/rc2.o .libs/rc5.o .libs/rc6.o .libs/rdran
d.o .libs/rdtables.o .libs/rijndael.o .libs/ripemd.o .libs/rng.o .libs/rsa.o .li
bs/rw.o .libs/safer.o .libs/salsa.o .libs/scrypt.o .libs/seal.o .libs/seed.o .li
bs/serpent.o .libs/sha.o .libs/sha3.o .libs/shacal2.o .libs/shake.o .libs/shark.
o .libs/sharkbox.o .libs/simeck.o .libs/simon.o .libs/skipjack.o .libs/sm3.o .li
bs/sm4.o .libs/sosemanuk.o .libs/speck.o .libs/square.o .libs/squaretb.o .libs/s
trciphr.o .libs/tea.o .libs/tftables.o .libs/threefish.o .libs/tiger.o .libs/tig
ertab.o .libs/ttmac.o .libs/tweetnacl.o .libs/twofish.o .libs/vmac.o .libs/wake.
o .libs/whrlpool.o .libs/xed25519.o .libs/xtr.o .libs/xtrcrypt.o .libs/xts.o .li
bs/zdeflate.o .libs/zinflate.o .libs/zlib.o   /opt/android-ndk/toolchains/llvm/p
rebuilt/linux-x86_64/bin/../sysroot/usr/lib/aarch64-linux-android/21/crtend_so.o
 -pthread -mfix-cortex-a53-835769 -g2 -O3 -stdlib=libc++ -fstack-protector-stro
ng -pthread -Wl,--gc-sections -Wl,--build-id -Wl,--demangle -Wl,--exclude-libs -
Wl,ALL -Wl,--as-needed -Wl,-z -Wl,noexecstack -Wl,-z -Wl,relro -Wl,-z -Wl,now -W
l,--warn-shared-textrel -Wl,--warn-common -Wl,--warn-unresolved-symbols -Wl,--gc
-sections -Wl,--fatal-warnings --sysroot /opt/android-ndk/toolchains/llvm/prebui
lt/linux-x86_64/sysroot   -pthread -Wl,-soname -Wl, -o .libs/

/opt/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-li
nux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: -soname: missing arg
ument
/opt/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib/gcc/aarch64-li
nux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: use the --help optio
n for usage information
clang++: error: linker command failed with exit code 1 (use -v to see invocation
)
Makefile:1308: recipe for target 'libcryptopp.la' failed
make[1]: *** [libcryptopp.la] Error 1