| From e18048da9bc3f87acef4eb67a11b4fc55fe15424 Mon Sep 17 00:00:00 2001 |
| From: Palmer Dabbelt <palmer@rivosinc.com> |
| Date: Thu, 23 Feb 2023 14:46:05 -0800 |
| Subject: RISC-V: Stop emitting attributes |
| |
| From: Palmer Dabbelt <palmer@rivosinc.com> |
| |
| commit e18048da9bc3f87acef4eb67a11b4fc55fe15424 upstream. |
| |
| 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. |
| |
| Tested-by: Conor Dooley <conor.dooley@microchip.com> |
| Link: https://lore.kernel.org/r/20230223224605.6995-1-palmer@rivosinc.com |
| Cc: stable@vger.kernel.org |
| Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| arch/riscv/Makefile | 7 +++++++ |
| arch/riscv/kernel/compat_vdso/Makefile | 4 ++++ |
| 2 files changed, 11 insertions(+) |
| |
| --- a/arch/riscv/Makefile |
| +++ b/arch/riscv/Makefile |
| @@ -87,6 +87,13 @@ endif |
| # Avoid generating .eh_frame sections. |
| KBUILD_CFLAGS += -fno-asynchronous-unwind-tables -fno-unwind-tables |
| |
| +# 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) |
| |
| --- 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 |
| |