From: Anton Blanchard <hidden> Date: 2018-08-21 01:02:06
From: Anton Blanchard <redacted>
Commit 15a3204d24a3 ("powerpc/64s: Set assembler machine type to POWER4")
passes -mpower4 to the assembler. We have more recent instructions in our
assembly files, but gas permits them. The clang/llvm integrated assembler
is more strict, and we get a build failure.
Fix this by calling the assembler with -mcpu=power8
Signed-off-by: Anton Blanchard <redacted>
---
arch/powerpc/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
From: Michael Ellerman <mpe@ellerman.id.au> Date: 2018-08-21 05:18:15
Anton Blanchard [off-list ref] writes:
From: Anton Blanchard <redacted>
Commit 15a3204d24a3 ("powerpc/64s: Set assembler machine type to POWER4")
passes -mpower4 to the assembler. We have more recent instructions in our
assembly files, but gas permits them. The clang/llvm integrated assembler
is more strict, and we get a build failure.
Fix this by calling the assembler with -mcpu=power8
This breaks GCC 4.6.3 at least, which we still support:
Assembler messages:
Error: invalid switch -mpower8
Error: unrecognized option -mpower8
../scripts/mod/empty.c:1:0: fatal error: error closing -: Broken pipe
cheers
From: Anton Blanchard <hidden> Date: 2018-08-21 05:38:40
Hi Michael,
This breaks GCC 4.6.3 at least, which we still support:
Assembler messages:
Error: invalid switch -mpower8
Error: unrecognized option -mpower8
../scripts/mod/empty.c:1:0: fatal error: error closing -: Broken
pipe
Yuck. We have POWER8 instructions in our assembly code, and a toolchain
that doesn't understand the -mpower8 flag, but has support for
power8 instructions.
This is what I see on clang with -mpower7:
/tmp/sstep-2afa55.s:7584: Error: unrecognized opcode: `lbarx'
/tmp/sstep-2afa55.s:7626: Error: unrecognized opcode: `stbcx.'
/tmp/sstep-2afa55.s:8077: Error: unrecognized opcode: `lharx'
/tmp/sstep-2afa55.s:8140: Error: unrecognized opcode: `stbcx.'
Nick: any suggestions?
Thanks,
Anton
From: Nicholas Piggin <npiggin@gmail.com> Date: 2018-08-21 06:25:51
On Tue, 21 Aug 2018 15:38:39 +1000
Anton Blanchard [off-list ref] wrote:
Hi Michael,
quoted
This breaks GCC 4.6.3 at least, which we still support:
Assembler messages:
Error: invalid switch -mpower8
Error: unrecognized option -mpower8
../scripts/mod/empty.c:1:0: fatal error: error closing -: Broken
pipe
Yuck. We have POWER8 instructions in our assembly code, and a toolchain
that doesn't understand the -mpower8 flag, but has support for
power8 instructions.
This is what I see on clang with -mpower7:
/tmp/sstep-2afa55.s:7584: Error: unrecognized opcode: `lbarx'
/tmp/sstep-2afa55.s:7626: Error: unrecognized opcode: `stbcx.'
/tmp/sstep-2afa55.s:8077: Error: unrecognized opcode: `lharx'
/tmp/sstep-2afa55.s:8140: Error: unrecognized opcode: `stbcx.'
Nick: any suggestions?
cpu-as-$(CONFIG_PPC_BOOK3S_64) += $(call as-option,-Wa$(comma)-mpower8,-Wa$(comma)-mpower4)
?
Thanks,
Nick