/usr/bin/ld: OBJS/Linux_SINGLE_SHLIB/sha512-p8.o: ABI version 2 is not compatible with ABI version 1 output
Categories
(NSS :: Libraries, defect, P1)
Tracking
(Not tracked)
People
(Reporter: glandium, Assigned: cand)
References
(Regression)
Details
(Keywords: regression)
Attachments
(1 file, 2 obsolete files)
1.12 KB,
patch
|
jcj
:
review+
|
Details | Diff | Splinter Review |
On Powerpc64 Linux (not powerpc64le), the build fails with:
cc -shared -Wl,-z,relro -m64 -Wl,-z,defs -Wl,-soname -Wl,libfreeblpriv3.so -Wl,--version-script,OBJS/Linux_SINGLE_SHLIB/freeblpriv.def -Wl,-Bsymbolic -o OBJS/Linux_SINGLE_SHLIB/libfreeblpriv3.so OBJS/Linux_SINGLE_SHLIB/freeblver.o OBJS/Linux_SINGLE_SHLIB/ldvector.o OBJS/Linux_SINGLE_SHLIB/sysrand.o OBJS/Linux_SINGLE_SHLIB/sha_fast.o OBJS/Linux_SINGLE_SHLIB/md2.o OBJS/Linux_SINGLE_SHLIB/md5.o OBJS/Linux_SINGLE_SHLIB/sha512.o OBJS/Linux_SINGLE_SHLIB/cmac.o OBJS/Linux_SINGLE_SHLIB/alghmac.o OBJS/Linux_SINGLE_SHLIB/rawhash.o OBJS/Linux_SINGLE_SHLIB/alg2268.o OBJS/Linux_SINGLE_SHLIB/arcfour.o OBJS/Linux_SINGLE_SHLIB/arcfive.o OBJS/Linux_SINGLE_SHLIB/crypto_primitives.o OBJS/Linux_SINGLE_SHLIB/blake2b.o OBJS/Linux_SINGLE_SHLIB/desblapi.o OBJS/Linux_SINGLE_SHLIB/des.o OBJS/Linux_SINGLE_SHLIB/drbg.o OBJS/Linux_SINGLE_SHLIB/chacha20poly1305.o OBJS/Linux_SINGLE_SHLIB/cts.o OBJS/Linux_SINGLE_SHLIB/ctr.o OBJS/Linux_SINGLE_SHLIB/blinit.o OBJS/Linux_SINGLE_SHLIB/fipsfreebl.o OBJS/Linux_SINGLE_SHLIB/gcm.o OBJS/Linux_SINGLE_SHLIB/hmacct.o OBJS/Linux_SINGLE_SHLIB/rijndael.o OBJS/Linux_SINGLE_SHLIB/aeskeywrap.o OBJS/Linux_SINGLE_SHLIB/camellia.o OBJS/Linux_SINGLE_SHLIB/dh.o OBJS/Linux_SINGLE_SHLIB/ec.o OBJS/Linux_SINGLE_SHLIB/ecdecode.o OBJS/Linux_SINGLE_SHLIB/pqg.o OBJS/Linux_SINGLE_SHLIB/dsa.o OBJS/Linux_SINGLE_SHLIB/rsa.o OBJS/Linux_SINGLE_SHLIB/rsapkcs.o OBJS/Linux_SINGLE_SHLIB/shvfy.o OBJS/Linux_SINGLE_SHLIB/tlsprfalg.o OBJS/Linux_SINGLE_SHLIB/jpake.o OBJS/Linux_SINGLE_SHLIB/mpprime.o OBJS/Linux_SINGLE_SHLIB/mpmontg.o OBJS/Linux_SINGLE_SHLIB/mplogic.o OBJS/Linux_SINGLE_SHLIB/mpi.o OBJS/Linux_SINGLE_SHLIB/mp_gf2m.o OBJS/Linux_SINGLE_SHLIB/mpcpucache.o OBJS/Linux_SINGLE_SHLIB/ecl.o OBJS/Linux_SINGLE_SHLIB/ecl_mult.o OBJS/Linux_SINGLE_SHLIB/ecl_gf.o OBJS/Linux_SINGLE_SHLIB/ecp_aff.o OBJS/Linux_SINGLE_SHLIB/ecp_jac.o OBJS/Linux_SINGLE_SHLIB/ecp_mont.o OBJS/Linux_SINGLE_SHLIB/ec_naf.o OBJS/Linux_SINGLE_SHLIB/ecp_jm.o OBJS/Linux_SINGLE_SHLIB/ecp_256.o OBJS/Linux_SINGLE_SHLIB/ecp_384.o OBJS/Linux_SINGLE_SHLIB/ecp_521.o OBJS/Linux_SINGLE_SHLIB/ecp_256_32.o OBJS/Linux_SINGLE_SHLIB/ecp_25519.o OBJS/Linux_SINGLE_SHLIB/curve25519_32.o OBJS/Linux_SINGLE_SHLIB/Hacl_Poly1305_32.o OBJS/Linux_SINGLE_SHLIB/Hacl_Chacha20.o OBJS/Linux_SINGLE_SHLIB/Hacl_Chacha20Poly1305_32.o OBJS/Linux_SINGLE_SHLIB/stubs.o OBJS/Linux_SINGLE_SHLIB/nsslowhash.o OBJS/Linux_SINGLE_SHLIB/gcm-ppc.o OBJS/Linux_SINGLE_SHLIB/deprecated/seed.o OBJS/Linux_SINGLE_SHLIB/sha512-p8.o -ldl -lc
/usr/bin/ld: OBJS/Linux_SINGLE_SHLIB/sha512-p8.o: ABI version 2 is not compatible with ABI version 1 output
/usr/bin/ld: failed to merge target specific data of file OBJS/Linux_SINGLE_SHLIB/sha512-p8.o
sha512-p8.s has a explicit ABI version 2 set, so it can't be used as is when building for ABI version 1.
What distro is this? I thought all distros had moved to the new ABI.
Reporter | ||
Comment 2•5 years ago
|
||
Debian.
Please try this patch.
Currently make only, I don't have enough gyp-fu to do that side.
v2 with CC instead of gcc.
Reporter | ||
Comment 6•5 years ago
|
||
(In reply to J.C. Jones [:jcj] (he/him) [increased latency due to COVID-19] from comment #5)
Mike, does this fix it for you?
It does, but it breaks ppc64el.
The problem is the awk command using $3, which Make expands first. It needs to be $$3.
Note, I'd move the PPC_ABI under the USE_64 ifdef.
Huh? I tested it on ppc64el only, and it worked correctly for me. I wonder how your env differs from mine.
Reporter | ||
Comment 8•5 years ago
|
||
I don't know how it can work. PPC_ABI is always #define _CALL_ELF 2
because the awk command becomes awk '{print }'
Reporter | ||
Comment 9•5 years ago
|
||
BTW, | grep _CALL_ELF | awk '{print $$3}'
can be rewritten as | awk '$$2 == "_CALL_ELF" {print $$3}'
Assignee | ||
Comment 10•5 years ago
|
||
v3 addressing review comments. My v2 test must've been user error, touched the wrong file etc.
Updated•5 years ago
|
Updated•5 years ago
|
Comment 13•5 years ago
|
||
Thanks for fixing this. If you need a big-endian ppc64 machine, the GCC compile farm has the machine gcc203 free to use for every open source developer. I'm an admin on this machine, so I can install packages if necessary.
Comment 14•5 years ago
|
||
I have tested the current patch and with it, nss builds fine both on ppc64 (old ABI) and ppc64le (new ABI).
Comment 15•5 years ago
|
||
The severity field is not set for this bug.
:jcj, could you have a look please?
For more information, please visit auto_nag documentation.
Comment 16•5 years ago
|
||
Updated•5 years ago
|
Comment 17•5 years ago
|
||
Hi,
is there a reason why this patch has not been committed yet?
Comment 18•4 years ago
|
||
(In reply to J.C. Jones [:jcj] (he/him) [increased latency due to COVID-19] from comment #16)
Comment on attachment 9156182 [details] [diff] [review]
ppc-old-abi-v3.patchReview of attachment 9156182 [details] [diff] [review]:
r=jcj.
Approved for NSS 3.55, let's not try to slot it into the 3.54 betas.
Hi, this patch is in buildroot since 5 months ago and it makes build correctly.
Maybe it's possible to commit now?
Comment 19•4 years ago
|
||
Sorry this fell off the radar. Pushed in https://hg.mozilla.org/projects/nss/rev/d806f7992b10aa9a4dd62d8bf1f1248ae1dab008
Thanks for patch and the follow up.
Updated•4 years ago
|
Updated•4 years ago
|
Description
•