public inbox for linux-riscv@lists.infradead.org
 help / color / mirror / Atom feed
From: Conor Dooley <conor@kernel.org>
To: Palmer Dabbelt <palmer@rivosinc.com>
Cc: linux-riscv@lists.infradead.org
Subject: Re: [PATCH v2] RISC-V: Stop emitting attributes
Date: Thu, 23 Feb 2023 22:57:08 +0000	[thread overview]
Message-ID: <Y/fvRHUzFKy6ZS6i@spud> (raw)
In-Reply-To: <20230223224605.6995-1-palmer@rivosinc.com>


[-- Attachment #1.1: Type: text/plain, Size: 3865 bytes --]

On Thu, Feb 23, 2023 at 02:46:05PM -0800, Palmer Dabbelt wrote:
> The RISC-V ELF attributes don't contain any useful information.  New
> toolchains ignore them, but they frequently trip up various older/mixed
> toolchains.  So just turn them off.

+cc: stable, yeah?

> Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>

Fixes the build for me w/ my awful config w/ gcc-13 + 2 different
binutils versions:
Tested-by: Conor Dooley <conor.dooley@microchip.com>

I still see issues with llvm-17, LLVM=1 & ld-2.35 in both purgatory and
regular modules:
  LD      arch/riscv/purgatory/purgatory.ro
/stuff/toolchains/binutils-2.35/bin/riscv64-linux-gnu-ld: -march=rv64i2p0_m2p0_a2p0_c2p0_zicsr2p0_zifencei2p0: Invalid or unknown z ISA extension: 'zifencei'
/stuff/toolchains/binutils-2.35/bin/riscv64-linux-gnu-ld: failed to merge target specific data of file arch/riscv/purgatory/sha256.o
/stuff/toolchains/binutils-2.35/bin/riscv64-linux-gnu-ld: -march=rv64i2p0_m2p0_a2p0_c2p0_zicsr2p0_zifencei2p0: Invalid or unknown z ISA extension: 'zifencei'
/stuff/toolchains/binutils-2.35/bin/riscv64-linux-gnu-ld: failed to merge target specific data of file arch/riscv/purgatory/string.o
/stuff/toolchains/binutils-2.35/bin/riscv64-linux-gnu-ld: -march=rv64i2p0_m2p0_a2p0_c2p0_zicsr2p0_zifencei2p0: Invalid or unknown z ISA extension: 'zifencei'
/stuff/toolchains/binutils-2.35/bin/riscv64-linux-gnu-ld: failed to merge target specific data of file arch/riscv/purgatory/ctype.o
make[6]: *** [/stuff/linux/arch/riscv/purgatory/Makefile:95: arch/riscv/purgatory/purgatory.ro] Error 1

So probably still need to pick up some variant of my series I posted
earlier unfortunately:
https://lore.kernel.org/linux-riscv/20230223220546.52879-1-conor@kernel.org/

Thanks!

> ---
> Changes since v1 <20230223195112.10489-1-palmer@rivosinc.com/>:
> 
> * Add the attributes to both KBUILD_CFLAGS and KBUILD_AFLAGS, so
>   assembly files build without attributes.
> * Set COMPAT_CFLAGS so the compat VDSO builds without attributes.
> ---
>  arch/riscv/Makefile                    | 7 +++++++
>  arch/riscv/kernel/compat_vdso/Makefile | 4 ++++
>  2 files changed, 11 insertions(+)
> 
> diff --git a/arch/riscv/Makefile b/arch/riscv/Makefile
> index 76989561566b..7b53f0be56b2 100644
> --- a/arch/riscv/Makefile
> +++ b/arch/riscv/Makefile
> @@ -81,6 +81,13 @@ ifeq ($(CONFIG_PERF_EVENTS),y)
>          KBUILD_CFLAGS += -fno-omit-frame-pointer
>  endif
>  
> +# The RISC-V attributes frequently cause compatibility issues and provide no
> +# information, so just turn them off.
> +KBUILD_CFLAGS += $(call cc-option,-mno-riscv-attribute)
> +KBUILD_AFLAGS += $(call cc-option,-mno-riscv-attribute)
> +KBUILD_CFLAGS += $(call as-option,-Wa$(comma)-mno-arch-attr)
> +KBUILD_AFLAGS += $(call as-option,-Wa$(comma)-mno-arch-attr)
> +
>  KBUILD_CFLAGS_MODULE += $(call cc-option,-mno-relax)
>  KBUILD_AFLAGS_MODULE += $(call as-option,-Wa$(comma)-mno-relax)
>  
> diff --git a/arch/riscv/kernel/compat_vdso/Makefile b/arch/riscv/kernel/compat_vdso/Makefile
> index 260daf3236d3..7f34f3c7c882 100644
> --- a/arch/riscv/kernel/compat_vdso/Makefile
> +++ b/arch/riscv/kernel/compat_vdso/Makefile
> @@ -14,6 +14,10 @@ COMPAT_LD := $(LD)
>  COMPAT_CC_FLAGS := -march=rv32g -mabi=ilp32
>  COMPAT_LD_FLAGS := -melf32lriscv
>  
> +# Disable attributes, as they're useless and break the build.
> +COMPAT_CC_FLAGS += $(call cc-option,-mno-riscv-attribute)
> +COMPAT_CC_FLAGS += $(call as-option,-Wa$(comma)-mno-arch-attr)
> +
>  # Files to link into the compat_vdso
>  obj-compat_vdso = $(patsubst %, %.o, $(compat_vdso-syms)) note.o
>  
> -- 
> 2.39.1
> 
> 
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

[-- Attachment #2: Type: text/plain, Size: 161 bytes --]

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

  reply	other threads:[~2023-02-23 22:57 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-23 22:46 [PATCH v2] RISC-V: Stop emitting attributes Palmer Dabbelt
2023-02-23 22:57 ` Conor Dooley [this message]
2023-03-07 18:50   ` Palmer Dabbelt
2023-03-07 21:00 ` patchwork-bot+linux-riscv

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y/fvRHUzFKy6ZS6i@spud \
    --to=conor@kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=palmer@rivosinc.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox