Patch "powerpc: Don't add -mabi= flags when building with Clang" has been added to the 5.4-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    powerpc: Don't add -mabi= flags when building with Clang

to the 5.4-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     powerpc-don-t-add-mabi-flags-when-building-with-clan.patch
and it can be found in the queue-5.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit d188a1afeb7d5af752172f09bc71a41d745356d7
Author: Nathan Chancellor <natechancellor@xxxxxxxxx>
Date:   Mon Nov 18 21:57:10 2019 -0700

    powerpc: Don't add -mabi= flags when building with Clang
    
    [ Upstream commit 465bfd9c44dea6b55962b5788a23ac87a467c923 ]
    
    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 4dc831aa8813 ("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 238abecde8ad ("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: Daniel Axtens <dja@xxxxxxxxxx>
    Signed-off-by: Nathan Chancellor <natechancellor@xxxxxxxxx>
    [mpe: Trim clang links in change log]
    Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20191119045712.39633-2-natechancellor@xxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 83522c9fc7b6..37ac731a556b 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -91,11 +91,13 @@ MULTIPLEWORD	:= -mmultiple
 endif
 
 ifdef CONFIG_PPC64
+ifndef CONFIG_CC_IS_CLANG
 cflags-$(CONFIG_CPU_BIG_ENDIAN)		+= $(call cc-option,-mabi=elfv1)
 cflags-$(CONFIG_CPU_BIG_ENDIAN)		+= $(call cc-option,-mcall-aixdesc)
 aflags-$(CONFIG_CPU_BIG_ENDIAN)		+= $(call cc-option,-mabi=elfv1)
 aflags-$(CONFIG_CPU_LITTLE_ENDIAN)	+= -mabi=elfv2
 endif
+endif
 
 ifndef CONFIG_CC_IS_CLANG
   cflags-$(CONFIG_CPU_LITTLE_ENDIAN)	+= -mno-strict-align
@@ -141,6 +143,7 @@ endif
 endif
 
 CFLAGS-$(CONFIG_PPC64)	:= $(call cc-option,-mtraceback=no)
+ifndef CONFIG_CC_IS_CLANG
 ifdef CONFIG_CPU_LITTLE_ENDIAN
 CFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mabi=elfv2,$(call cc-option,-mcall-aixdesc))
 AFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mabi=elfv2)
@@ -149,6 +152,7 @@ CFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mabi=elfv1)
 CFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mcall-aixdesc)
 AFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mabi=elfv1)
 endif
+endif
 CFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mcmodel=medium,$(call cc-option,-mminimal-toc))
 CFLAGS-$(CONFIG_PPC64)	+= $(call cc-option,-mno-pointers-to-nested-functions)
 



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux