On Út 19-01-21 15:18:00, Michael Ellerman wrote: > Newer binutils (>= 2.36) refuse to assemble lmw/stmw when building in > little endian mode. That breaks compilation of our alignment handler > test: > > /tmp/cco4l14N.s: Assembler messages: > /tmp/cco4l14N.s:1440: Error: `lmw' invalid when little-endian > /tmp/cco4l14N.s:1814: Error: `stmw' invalid when little-endian > make[2]: *** [../../lib.mk:139: > /output/kselftest/powerpc/alignment/alignment_handler] Error 1 > > These tests do pass on little endian machines, as the kernel will > still emulate those instructions even when running little > endian (which is arguably a kernel bug). > > But we don't really need to test that case, so ifdef those > instructions out to get the alignment test building again. > > Reported-by: Libor Pechacek <lpecha...@suse.com> > Signed-off-by: Michael Ellerman <m...@ellerman.id.au>
Tested-by: Libor Pechacek <lpecha...@suse.com> Thanks, Michael, for the fix! Libor > --- > .../testing/selftests/powerpc/alignment/alignment_handler.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/powerpc/alignment/alignment_handler.c > b/tools/testing/selftests/powerpc/alignment/alignment_handler.c > index cb53a8b777e6..c25cf7cd45e9 100644 > --- a/tools/testing/selftests/powerpc/alignment/alignment_handler.c > +++ b/tools/testing/selftests/powerpc/alignment/alignment_handler.c > @@ -443,7 +443,6 @@ int test_alignment_handler_integer(void) > LOAD_DFORM_TEST(ldu); > LOAD_XFORM_TEST(ldx); > LOAD_XFORM_TEST(ldux); > - LOAD_DFORM_TEST(lmw); > STORE_DFORM_TEST(stb); > STORE_XFORM_TEST(stbx); > STORE_DFORM_TEST(stbu); > @@ -462,7 +461,11 @@ int test_alignment_handler_integer(void) > STORE_XFORM_TEST(stdx); > STORE_DFORM_TEST(stdu); > STORE_XFORM_TEST(stdux); > + > +#ifdef __BIG_ENDIAN__ > + LOAD_DFORM_TEST(lmw); > STORE_DFORM_TEST(stmw); > +#endif > > return rc; > } > -- > 2.25.1 > -- Libor Pechacek SUSE Labs Remember to have fun...