Skip to contentSkip to conversation

sparc32 vs lib/mpi

DISCUSSION Al Viro 3 participants 3 messages Jan 21, 2012 – Jan 26, 2012

lore
Share & tools
lore

Al Viro

author
#0 lore raw

I realize that very few people care about sparc32 these days,
but...

	a) __clz_tab[] is defined (with identical contents) in

lib/mpi/mpi-bit.c and arch/sparc/lib/divdi3.S. Linker is unhappy, of course...
b) the same thing ends up using __udiv_qrnnd(), which simply
does not exist on sparc32. There's a Cthulhu-scaring cascade of ifdefs in lib/mpi/longlong.h, with several variants of udiv_qrnnd() for sparc. Unfortunately, it falls back on use of __udiv_qrnnd()... Note that arch/sparc/math-emu/sfp-util_32.h has a definition of udiv_qrnnd() which might match one of inline assembly variants in lib/mpi/longlong.h. Or not. BTW, what the hell is LONGLONG_STANDALONE?

Could somebody who might remember still remember that stuff
come up with comments? For now I'm disabling everything from INTEGRITY_SIGNATURE down to MPILIB on sparc32 cross-build, but it would be nice to get it at least somewhat sorted out...

#1 lore raw
Quoted 11 lines · Al Viro

       I realize that very few people care about sparc32 these days, but...
       a) __clz_tab[] is defined (with identical contents) in lib/mpi/mpi-bit.c and arch/sparc/lib/divdi3.S.  Linker is unhappy, of course...
       b) the same thing ends up using __udiv_qrnnd(), which simply does not exist on sparc32.  There's a Cthulhu-scaring cascade of ifdefs in lib/mpi/longlong.h, with several variants of udiv_qrnnd() for sparc.  Unfortunately, it falls back on use of __udiv_qrnnd()... Note that arch/sparc/math-emu/sfp-util_32.h has a definition of udiv_qrnnd() which might match one of inline assembly variants in

Would need to test it and see how it works...

Quoted 2 lines

lib/mpi/longlong.h.  Or not.  BTW, what the hell is LONGLONG_STANDALONE?

i see that it comes from gnupg code as it is, but do not see any scripts which might define it.

Quoted 4 lines

       Could somebody who might remember still remember that stuff come up with comments?  For now I'm disabling everything from INTEGRITY_SIGNATURE down to MPILIB on sparc32 cross-build, but it would be nice to get it at least somewhat sorted out...

#2 lore raw
In reply to Al Viro

From: Al Viro <[email protected]>
Date: Sat, 21 Jan 2012 01:12:43 +0000

Quoted 13 lines

I realize that very few people care about sparc32 these days,
but...

	a) __clz_tab[] is defined (with identical contents) in

lib/mpi/mpi-bit.c and arch/sparc/lib/divdi3.S. Linker is unhappy, of course...
b) the same thing ends up using __udiv_qrnnd(), which simply
does not exist on sparc32. There's a Cthulhu-scaring cascade of ifdefs in lib/mpi/longlong.h, with several variants of udiv_qrnnd() for sparc. Unfortunately, it falls back on use of __udiv_qrnnd()... Note that arch/sparc/math-emu/sfp-util_32.h has a definition of udiv_qrnnd() which might match one of inline assembly variants in lib/mpi/longlong.h. Or not. BTW, what the hell is LONGLONG_STANDALONE?

Quoted 4 lines

Could somebody who might remember still remember that stuff
come up with comments? For now I'm disabling everything from INTEGRITY_SIGNATURE down to MPILIB on sparc32 cross-build, but it would be nice to get it at least somewhat sorted out...

I'm taking a look at this.