2021-07-22 02:19:53

by Changbin Du

[permalink] [raw]
Subject: [PATCH] riscv: kexec: do not add '-mno-relax' flag if compiler doesn't support it

The RISC-V special option '-mno-relax' which to disable linker relaxations
is supported by GCC8+. For GCC7 and lower versions do not support this
option.

Fixes: fba8a8674f ("RISC-V: Add kexec support")
Signed-off-by: Changbin Du <[email protected]>
---
arch/riscv/kernel/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/riscv/kernel/Makefile b/arch/riscv/kernel/Makefile
index d3081e4d9600..3397ddac1a30 100644
--- a/arch/riscv/kernel/Makefile
+++ b/arch/riscv/kernel/Makefile
@@ -11,7 +11,7 @@ endif
CFLAGS_syscall_table.o += $(call cc-option,-Wno-override-init,)

ifdef CONFIG_KEXEC
-AFLAGS_kexec_relocate.o := -mcmodel=medany -mno-relax
+AFLAGS_kexec_relocate.o := -mcmodel=medany $(call cc-option,-mno-relax)
endif

extra-y += head.o
--
2.26.2



2021-08-11 23:40:12

by Changbin Du

[permalink] [raw]
Subject: Re: [PATCH] riscv: kexec: do not add '-mno-relax' flag if compiler doesn't support it

Hello, ping status for this fix. There's a build error with gcc7-.

On Thu, Jul 22, 2021 at 10:17:15AM +0800, Changbin Du wrote:
> The RISC-V special option '-mno-relax' which to disable linker relaxations
> is supported by GCC8+. For GCC7 and lower versions do not support this
> option.
>
> Fixes: fba8a8674f ("RISC-V: Add kexec support")
> Signed-off-by: Changbin Du <[email protected]>
> ---
> arch/riscv/kernel/Makefile | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/riscv/kernel/Makefile b/arch/riscv/kernel/Makefile
> index d3081e4d9600..3397ddac1a30 100644
> --- a/arch/riscv/kernel/Makefile
> +++ b/arch/riscv/kernel/Makefile
> @@ -11,7 +11,7 @@ endif
> CFLAGS_syscall_table.o += $(call cc-option,-Wno-override-init,)
>
> ifdef CONFIG_KEXEC
> -AFLAGS_kexec_relocate.o := -mcmodel=medany -mno-relax
> +AFLAGS_kexec_relocate.o := -mcmodel=medany $(call cc-option,-mno-relax)
> endif
>
> extra-y += head.o
> --
> 2.26.2
>
>

--
Cheers,
Changbin Du

2021-08-12 05:29:26

by Palmer Dabbelt

[permalink] [raw]
Subject: Re: [PATCH] riscv: kexec: do not add '-mno-relax' flag if compiler doesn't support it

On Wed, 21 Jul 2021 19:17:15 PDT (-0700), [email protected] wrote:
> The RISC-V special option '-mno-relax' which to disable linker relaxations
> is supported by GCC8+. For GCC7 and lower versions do not support this
> option.

I would not trust GCC 7 on RISC-V, that was a long time ago and there's
been a lot fixed since then.

>
> Fixes: fba8a8674f ("RISC-V: Add kexec support")
> Signed-off-by: Changbin Du <[email protected]>
> ---
> arch/riscv/kernel/Makefile | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/riscv/kernel/Makefile b/arch/riscv/kernel/Makefile
> index d3081e4d9600..3397ddac1a30 100644
> --- a/arch/riscv/kernel/Makefile
> +++ b/arch/riscv/kernel/Makefile
> @@ -11,7 +11,7 @@ endif
> CFLAGS_syscall_table.o += $(call cc-option,-Wno-override-init,)
>
> ifdef CONFIG_KEXEC
> -AFLAGS_kexec_relocate.o := -mcmodel=medany -mno-relax
> +AFLAGS_kexec_relocate.o := -mcmodel=medany $(call cc-option,-mno-relax)
> endif
>
> extra-y += head.o

This is on fixes.

Thanks!