• Nathan Chancellor's avatar
    powerpc: Don't add -mabi= flags when building with Clang · 465bfd9c
    Nathan Chancellor authored
    When building pseries_defconfig, building vdso32 errors out:
    
      error: unknown target ABI 'elfv1'
    
    This happens because -m32 in clang changes the target to 32-bit,
    which does not allow the ABI to be changed.
    
    Commit 4dc831aa ("powerpc: Fix compiling a BE kernel with a
    powerpc64le toolchain") added these flags to fix building big endian
    kernels with a little endian GCC.
    
    Clang doesn't need -mabi because the target triple controls the
    default value. -mlittle-endian and -mbig-endian manipulate the triple
    into either powerpc64-* or powerpc64le-*, which properly sets the
    default ABI.
    
    Adding a debug print out in the PPC64TargetInfo constructor after line
    383 above shows this:
    
      $ echo | ./clang -E --target=powerpc64-linux -mbig-endian -o /dev/null -
      Default ABI: elfv1
    
      $ echo | ./clang -E --target=powerpc64-linux -mlittle-endian -o /dev/null -
      Default ABI: elfv2
    
      $ echo | ./clang -E --target=powerpc64le-linux -mbig-endian -o /dev/null -
      Default ABI: elfv1
    
      $ echo | ./clang -E --target=powerpc64le-linux -mlittle-endian -o /dev/null -
      Default ABI: elfv2
    
    Don't specify -mabi when building with clang to avoid the build error
    with -m32 and not change any code generation.
    
    -mcall-aixdesc is not an implemented flag in clang so it can be safely
    excluded as well, see commit 238abecd ("powerpc: Don't use gcc
    specific options on clang").
    
    pseries_defconfig successfully builds after this patch and
    powernv_defconfig and ppc44x_defconfig don't regress.
    Reviewed-by: default avatarDaniel Axtens <dja@axtens.net>
    Signed-off-by: default avatarNathan Chancellor <natechancellor@gmail.com>
    [mpe: Trim clang links in change log]
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20191119045712.39633-2-natechancellor@gmail.com
    465bfd9c
Makefile 14.9 KB