docker
docker copied to clipboard
Ubuntu focal on arm 'mqtt' installation error: 'dangerous relocation: unsupported relocation'
The error occurred when the 'mqtt' rock installation. It is disabled for the current tag 2.10.0-ubuntu-aarch64
.
#6 1168.6 /usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/libcrypto.a(sha1-armv8.o): relocation R_AARCH64_PREL64 against symbol `OPENSSL_armcap_P' which may bind externally can not be used when making a shared object; recompile with -fPIC
#6 1168.6 /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/libcrypto.a(sha1-armv8.o): in function `sha1_block_armv8':
#6 1168.6 (.text+0x1240): dangerous relocation: unsupported relocation
#6 1168.6 /usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/libcrypto.a(chacha-armv8.o): relocation R_AARCH64_PREL64 against symbol `OPENSSL_armcap_P' which may bind externally can not be used when making a shared object; recompile with -fPIC
#6 1168.6 /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/libcrypto.a(chacha-armv8.o):(.text+0x20): dangerous relocation: unsupported relocation
#6 1168.6 /usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/libcrypto.a(poly1305-armv8.o): relocation R_AARCH64_ADR_PREL_LO21 against symbol `poly1305_blocks' which may bind externally can not be used when making a shared object; recompile with -fPIC
#6 1168.6 /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/libcrypto.a(poly1305-armv8.o): in function `poly1305_init':
#6 1168.6 (.text+0x40): dangerous relocation: unsupported relocation
#6 1168.6 /usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/libcrypto.a(poly1305-armv8.o): relocation R_AARCH64_ADR_PREL_LO21 against symbol `poly1305_emit' which may bind externally can not be used when making a shared object; recompile with -fPIC
#6 1168.6 (.text+0x48): dangerous relocation: unsupported relocation
#6 1168.6 /usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/libcrypto.a(poly1305-armv8.o): relocation R_AARCH64_PREL64 against symbol `OPENSSL_armcap_P' which may bind externally can not be used when making a shared object; recompile with -fPIC
#6 1168.6 /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/libcrypto.a(poly1305-armv8.o): in function `poly1305_emit_neon':
#6 1168.6 (.text+0x9a0): dangerous relocation: unsupported relocation
#6 1168.6 /usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/libcrypto.a(sha256-armv8.o): relocation R_AARCH64_PREL64 against symbol `OPENSSL_armcap_P' which may bind externally can not be used when making a shared object; recompile with -fPIC
#6 1168.6 /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/libcrypto.a(sha256-armv8.o): in function `sha256_block_data_order':
#6 1168.6 (.text+0xf88): dangerous relocation: unsupported relocation
#6 1168.6 /usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/libcrypto.a(sha512-armv8.o): relocation R_AARCH64_PREL64 against symbol `OPENSSL_armcap_P' which may bind externally can not be used when making a shared object; recompile with -fPIC
#6 1168.6 /usr/lib/gcc/aarch64-linux-gnu/9/../../../aarch64-linux-gnu/libcrypto.a(sha512-armv8.o): in function `sha512_block_data_order':
#6 1168.6 (.text+0x1108): dangerous relocation: unsupported relocation
#6 1168.6 collect2: error: ld returned 1 exit status
It seems, /usr/lib/aarch64-linux-gnu/libcrypto.a
is built without -fPIC
. From where the library comes? It is quite unusual to see a library built without -fPIC
in a Linux distribution that is released somewhere in a last ten years at least, because it means that the library can't be used in any -fPIC
(dynamic library) or -fPIE
(executable) code. Linux distros also use -fPIE
by default for years.
I mean, if it comes from distro's repositories, it can be considered as the problem in the package and worth a notice for its maintainers.
Related to https://github.com/tarantool/docker/pull/259.