Message ID | 20180821010203.23213-1-anton@ozlabs.org (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | powerpc/Makefiles: Fix clang/llvm build | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/apply_patch | success | next/apply_patch Successfully applied |
snowpatch_ozlabs/checkpatch | success | Test checkpatch on branch next |
snowpatch_ozlabs/build-ppc64le | success | Test build-ppc64le on branch next |
snowpatch_ozlabs/build-ppc64be | success | Test build-ppc64be on branch next |
snowpatch_ozlabs/build-ppc64e | success | Test build-ppc64e on branch next |
snowpatch_ozlabs/build-ppc32 | success | Test build-ppc32 on branch next |
Anton Blanchard <anton@ozlabs.org> writes: > From: Anton Blanchard <anton@samba.org> > > 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
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
On Tue, 21 Aug 2018 15:38:39 +1000 Anton Blanchard <anton@ozlabs.org> wrote: > 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? cpu-as-$(CONFIG_PPC_BOOK3S_64) += $(call as-option,-Wa$(comma)-mpower8,-Wa$(comma)-mpower4) ? Thanks, Nick
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile index 8397c7bd5880..4d9c01df0dec 100644 --- a/arch/powerpc/Makefile +++ b/arch/powerpc/Makefile @@ -238,7 +238,7 @@ cpu-as-$(CONFIG_4xx) += -Wa,-m405 cpu-as-$(CONFIG_ALTIVEC) += $(call as-option,-Wa$(comma)-maltivec) cpu-as-$(CONFIG_E200) += -Wa,-me200 cpu-as-$(CONFIG_E500) += -Wa,-me500 -cpu-as-$(CONFIG_PPC_BOOK3S_64) += -Wa,-mpower4 +cpu-as-$(CONFIG_PPC_BOOK3S_64) += -Wa,-mpower8 cpu-as-$(CONFIG_PPC_E500MC) += $(call as-option,-Wa$(comma)-me500mc) KBUILD_AFLAGS += $(cpu-as-y)