lkml.org 
[lkml]   [2023]   [Feb]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 2/3] powerpc: Fix use of '-mabi=elfv2' with clang
    '-mabi=elfv2' is not added to clang's invocations when
    CONFIG_PPC64_ELF_ABI_V2 is enabled, resulting in the generation of elfv1
    code, as evidenced by the orphan section warnings/errors:

    ld.lld: error: vmlinux.a(arch/powerpc/kernel/prom_init.o):(.opd) is being placed in '.opd'
    ld.lld: error: vmlinux.a(init/main.o):(.opd) is being placed in '.opd'
    ld.lld: error: vmlinux.a(init/version.o):(.opd) is being placed in '.opd'

    To resolve this, add '-mabi=elfv2' to CFLAGS with clang. This uncovers
    an issue in the 32-bit vDSO:

    error: unknown target ABI 'elfv2'

    The ELFv2 ABI cannot be used when building code for a 32-bit target. To
    resolve this, just remove the '-mabi' flags from the assembler flags, as
    it was only needed for preprocessing (the _CALL_ELF macro) but this was
    cleaned up in commit 5b89492c03e5 ("powerpc: Finalise cleanup around ABI
    use").

    Tested-by: "Erhard F." <erhard_f@mailbox.org
    Signed-off-by: Nathan Chancellor <nathan@kernel.org>
    ---
    arch/powerpc/Makefile | 4 +---
    1 file changed, 1 insertion(+), 3 deletions(-)

    diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
    index dc4cbf0a5ca9..3f2dd930e3cd 100644
    --- a/arch/powerpc/Makefile
    +++ b/arch/powerpc/Makefile
    @@ -123,14 +123,12 @@ endif
    endif

    CFLAGS-$(CONFIG_PPC64) := $(call cc-option,-mtraceback=no)
    -ifndef CONFIG_CC_IS_CLANG
    ifdef CONFIG_PPC64_ELF_ABI_V2
    CFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mabi=elfv2,$(call cc-option,-mcall-aixdesc))
    -AFLAGS-$(CONFIG_PPC64) += $(call cc-option,-mabi=elfv2)
    else
    +ifndef CONFIG_CC_IS_CLANG
    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))
    --
    2.39.2

    \
     
     \ /
      Last update: 2023-03-27 00:24    [W:4.544 / U:0.172 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site