My head is on "8258a60ad4 (HEAD -> master, origin/master, origin/HEAD) package/uboot-tools: bump to version 2020.01" I get an ld error when I build libnss with a specific set of Target options. The root of the issue seems to be setting Floating point strategy option to something non-NEON. To reproduce, do: $ make menuconfig Target options ---> Target Architecture ---> ARM (little endian) Target Architecture Variant ---> cortex-A8 Target ABI ---> EABI Floating point strategy ---> VFPv3 (or VFPv3-D16) -> Target packages -> Libraries -> Crypto [*] libnss $ make all /home/oleksandr/buildroot-git/output/a8/host/bin/arm-buildroot-linux-gnueabi-gcc -shared -Wl,--gc-sections -Wl,-z,defs -Wl,-soname -Wl,libfreeblpriv3.so -Wl,--version-script,Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/freeblpriv.def -Wl,-Bsymbolic -o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/libfreeblpriv3.so Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/freeblver.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/ldvector.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/sysrand.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/sha_fast.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/md2.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/md5.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/sha512.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/cmac.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/alghmac.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/rawhash.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/alg2268.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/arcfour.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/arcfive.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/crypto_primitives.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/blake2b.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/desblapi.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/des.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/drbg.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/chacha20poly1305.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/cts.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/ctr.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/blinit.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/fipsfreebl.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/gcm.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/hmacct.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/rijndael.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/aeskeywrap.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/camellia.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/dh.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/ec.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/ecdecode.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/pqg.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/dsa.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/rsa.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/rsapkcs.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/shvfy.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/tlsprfalg.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/seed.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/jpake.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/mpprime.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/mpmontg.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/mplogic.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/mpi.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/mp_gf2m.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/mpi_arm.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/mpcpucache.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/ecl.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/ecl_mult.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/ecl_gf.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/ecp_aff.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/ecp_jac.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/ecp_mont.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/ec_naf.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/ecp_jm.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/ecp_256.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/ecp_384.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/ecp_521.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/ecp_256_32.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/ecp_25519.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/curve25519_32.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/Hacl_Chacha20.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/Hacl_Chacha20_Vec128.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/FStar.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/stubs.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/nsslowhash.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/gcm-arm32-neon.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/aes-armv8.o Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/Hacl_Poly1305_32.o -ldl -lc /home/oleksandr/buildroot-git/output/a8/host/lib/gcc/arm-buildroot-linux-gnueabi/8.3.0/../../../../arm-buildroot-linux-gnueabi/bin/ld: Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/gcm-arm32-neon.o: in function `gcm_HashMult_hw': /home/oleksandr/buildroot-git/output/a8/build/libnss-3.49.1/nss/lib/freebl/gcm-arm32-neon.c:126: multiple definition of `gcm_HashMult_hw'; Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/gcm.o:/home/oleksandr/buildroot-git/output/a8/build/libnss-3.49.1/nss/lib/freebl/gcm.c:56: first defined here /home/oleksandr/buildroot-git/output/a8/host/lib/gcc/arm-buildroot-linux-gnueabi/8.3.0/../../../../arm-buildroot-linux-gnueabi/bin/ld: Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/gcm-arm32-neon.o: in function `vcreate_u8': /home/oleksandr/buildroot-git/output/a8/host/lib/gcc/arm-buildroot-linux-gnueabi/8.3.0/include/arm_neon.h:6582: multiple definition of `gcm_HashWrite_hw'; Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/gcm.o:/home/oleksandr/buildroot-git/output/a8/build/libnss-3.49.1/nss/lib/freebl/gcm.c:48: first defined here /home/oleksandr/buildroot-git/output/a8/host/lib/gcc/arm-buildroot-linux-gnueabi/8.3.0/../../../../arm-buildroot-linux-gnueabi/bin/ld: Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/gcm-arm32-neon.o: in function `gcm_HashInit_hw': /home/oleksandr/buildroot-git/output/a8/build/libnss-3.49.1/nss/lib/freebl/gcm-arm32-neon.c:186: multiple definition of `gcm_HashInit_hw'; Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/gcm.o:/home/oleksandr/buildroot-git/output/a8/build/libnss-3.49.1/nss/lib/freebl/gcm.c:63: first defined here /home/oleksandr/buildroot-git/output/a8/host/lib/gcc/arm-buildroot-linux-gnueabi/8.3.0/../../../../arm-buildroot-linux-gnueabi/bin/ld: Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/gcm-arm32-neon.o: in function `gcm_HashZeroX_hw': /home/oleksandr/buildroot-git/output/a8/build/libnss-3.49.1/nss/lib/freebl/gcm-arm32-neon.c:197: multiple definition of `gcm_HashZeroX_hw'; Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/gcm.o:gcm.c:(.text.gcm_HashZeroX_hw+0x0): first defined here collect2: error: ld returned 1 exit status ../../coreconf/rules.mk:289: recipe for target 'Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/libfreeblpriv3.so' failed make[5]: *** [Linux2.6_arm_arm-buildroot-linux-gnueabi-gcc.br_real_glibc_PTH_DBG.OBJ/Linux_SINGLE_SHLIB/libfreeblpriv3.so] Error 1 Makefile:655: recipe for target 'libs' failed make[4]: *** [libs] Error 2 ../coreconf/rules.mk:101: recipe for target 'libs' failed make[3]: *** [libs] Error 2 coreconf/rules.mk:101: recipe for target 'libs' failed make[2]: *** [libs] Error 2 package/pkg-generic.mk:257: recipe for target '/home/oleksandr/buildroot-git/output/a8/build/libnss-3.49.1/.stamp_built' failed make[1]: *** [/home/oleksandr/buildroot-git/output/a8/build/libnss-3.49.1/.stamp_built] Error 2 Makefile:84: recipe for target '_all' failed make: *** [_all] Error 2
Hi Aleksandr, here you can find a patch that solves the problem: https://patchwork.ozlabs.org/patch/1229021/ It bumps to version 3.49.2, where they've fixed that bug. Can you try to apply it and check if it works correctly? Thank you
The proposed patch fixes the error, thanks
Thank you for testing, I mark this bug as RESOLVED/FIXED.