On Thu, 19 Feb 2015, David Miller wrote: > From: Joseph Myers <joseph@xxxxxxxxxxxxxxxx> > Date: Fri, 6 Feb 2015 17:25:29 +0000 > > > * On SPARC, comparisons now use raw unpacking (this should not in fact > > change how the emulation behaves, just make it more efficient). > > I did a sparc64 test build and it failed like so: > > arch/sparc/math-emu/math_64.c: In function ʽdo_mathemuʼ: > arch/sparc/math-emu/math_64.c:487:1: error: expected expression before ʽreturnʼ > arch/sparc/math-emu/math_64.c:488:1: error: expected expression before ʽreturnʼ > arch/sparc/math-emu/math_64.c:490:1: error: expected expression before ʽreturnʼ > arch/sparc/math-emu/math_64.c:491:1: error: expected expression before ʽreturnʼ > arch/sparc/math-emu/math_64.c:495:1: error: expected expression before ʽreturnʼ > > I'm attaching a CPP processed math_64.c for your convenience: Please try this patch on top of the previous one. The way abort is redefined in the kernel code doesn't work for one place using it in an expression; this patch changes a comma expression to a statement expression. This didn't appear in my powerpc testing because the powerpc emulation never uses FP_FROM_INT; I'm not sure how Kaz's sh testing avoided the problem appearing there. diff --git a/include/math-emu/op-common.h b/include/math-emu/op-common.h index b9f5e1a..8c059c3 100644 --- a/include/math-emu/op-common.h +++ b/include/math-emu/op-common.h @@ -1818,7 +1818,7 @@ X##_e = (_FP_EXPBIAS_##fs + 2 * _FP_W_TYPE_SIZE - 1 \ - _FP_FROM_INT_lz); \ }) \ - : (abort (), 0))); \ + : ({ abort (); 0; }))); \ \ if ((rsize) - 1 + _FP_EXPBIAS_##fs >= _FP_EXPMAX_##fs \ && X##_e >= _FP_EXPMAX_##fs) \ -- Joseph S. Myers joseph@xxxxxxxxxxxxxxxx