[RFC PATCH 0/8] WIP support for the LLVM integrated assembler

Daniel Axtens dja at axtens.net
Thu Feb 25 14:09:58 AEDT 2021


To support Clang's CFI we need LTO. For LTO, we need to be able to compile
with the LLVM integrated assembler.

Currently, we can't.

This series gets us a bit closer, but I'm still stuck and I'm hoping
someone can point me in the right direction.

Patch 1 is a fix that can be merged at any time.

The rest of this series is pretty rough, but with it, building like this:

make CC=clang-11 LD=ld.lld-11 AR=llvm-ar-11 NM=llvm-nm-11 STRIP=llvm-strip-11 \
     OBJCOPY=llvm-objcopy-11 OBJDUMP=llvm-objdump-11 READELF=llvm-readelf-11 \
     HOSTCC=clang-11 HOSTCXX=clang++-11 HOSTAR=llvm-ar-11 HOSTLD=ld.lld-11 \
     LLVM_IAS=1  vmlinux

on a pseries_le_defconfig without Werror works except for head-64.S,
which still fails as described in the final patch. Help would be
appreciated because it's deep magic all around.

Apart from the very very dodgy change to drop the tlbiel feature
section, none of the de-gas-ing changed the compiled binary for me
under gcc-10.2.0-13ubuntu1.

Daniel Axtens (8):
  powerpc/64s/exception: Clean up a missed SRR specifier
  powerpc: check for support for -Wa,-m{power4,any}
  powerpc/head-64: do less gas-specific stuff with sections
  powerpc/ppc_asm: use plain numbers for registers
  poweprc/lib/quad: Provide macros for lq/stq
  powerpc/mm/book3s64/hash: drop pre 2.06 tlbiel for clang
  powerpc/purgatory: drop .machine specifier
  powerpc/64/asm: don't reassign labels

 arch/powerpc/Makefile                  |  4 +-
 arch/powerpc/include/asm/head-64.h     | 20 ++++----
 arch/powerpc/include/asm/ppc-opcode.h  |  4 ++
 arch/powerpc/include/asm/ppc_asm.h     | 64 +++++++++++++-------------
 arch/powerpc/kernel/exceptions-64s.S   | 33 ++++++-------
 arch/powerpc/kernel/head_64.S          | 16 +++----
 arch/powerpc/lib/quad.S                |  4 +-
 arch/powerpc/mm/book3s64/hash_native.c | 10 ++++
 arch/powerpc/purgatory/trampoline_64.S |  2 +-
 9 files changed, 86 insertions(+), 71 deletions(-)

-- 
2.27.0



More information about the Linuxppc-dev mailing list