Thread (14 messages) flat view 14 messages, 9 authors, 2012-05-18

Re: Build regressions/improvements in v3.4-rc7

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2012-05-16 16:00:04
Also in: lkml

On Wed, May 16, 2012 at 4:46 PM, James Bottomley
[off-list ref] wrote:
On Wed, 2012-05-16 at 10:47 +0200, Geert Uytterhoeven wrote:
quoted
On Wed, May 16, 2012 at 10:30 AM, Geert Uytterhoeven
[off-list ref] wrote:
=C2=A0 + lib/mpi/generic_mpih-mul1.c: error: inconsistent operand
constraints in an 'asm': =C2=A0=3D> 50:70
=C2=A0 + lib/mpi/generic_mpih-mul2.c: error: inconsistent operand
constraints in an 'asm': =C2=A0=3D> 49:70
=C2=A0 + lib/mpi/generic_mpih-mul3.c: error: inconsistent operand
constraints in an 'asm': =C2=A0=3D> 49:70
=C2=A0 + lib/mpi/mpih-div.c: error: inconsistent operand constraints in =
an
quoted
'asm': =C2=A0=3D> 135:122, 135:371, 97:122, 106:121, 106:370, 97:371

parisc-allmodconfig
Wow, lib/mpi/ is a complete horror: it's full of hand crafted asm code.
The error in this case appears to be that umul_ppm() is implemented as
an xmpyu instruction. =C2=A0That's a floating point instruction. =C2=A0We
deliberately compile the kernel with floating point disabled because we
don't want to save and restore the floating point register file on each
context switch, hence the operand constraints are unsatisfiable.
It also does fishy things on m68k, cfr. https://lkml.org/lkml/2012/3/11/22
It appears to be completely untested on non-x86 and to have been
imported via the security tree ... what are we supposed to do with this?
I thought the general principle was that asm code was really supposed to
be confined to the arch directories?
Kick it out again, or contain it in staging?

Gr{oetje,eeting}s,

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k=
.org

In personal conversations with technical people, I call myself a hacker. Bu=
t
when I'm talking to journalists I just say "programmer" or something like t=
hat.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0=C2=A0 =C2=A0=C2=A0 -- Linus Torvalds
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help