Messages in this thread | | | From | Huacai Chen <> | Date | Fri, 4 Aug 2023 23:25:50 +0800 | Subject | Re: [PATCH] LoongArch: Drop -ffreestanding from CFLAGS |
| |
Hi, Xuerui,
On Fri, Aug 4, 2023 at 8:56 PM WANG Xuerui <kernel@xen0n.name> wrote: > > From: WANG Xuerui <git@xen0n.name> > > As explained by Nick in the original issue: the kernel usually does a > good job of providing library helpers that have similar semantics as > their ordinary userspace libc equivalents, but -ffreestanding disables > such libcall optimization and other related features in the compiler, > which can lead to unexpected things such as CONFIG_FORTIFY_SOURCE not > working (!). > > As it turns out to be the case, removing the flag does not impact the > LoongArch kernel's normal operation at all; so just remove it to > restore expected libcall semantics globally on this architecture. > Not all processors support unaligned access, so we need the alternative mechanism to select memset/memcpy/memmove implementations. If remove -ffreestanding, the builtin implementation cannot be used on all hardware.
Huacai
> Closes: https://github.com/ClangBuiltLinux/linux/issues/1897 > Reported-by: Nathan Chancellor <nathan@kernel.org> > Suggested-by: Nick Desaulniers <ndesaulniers@google.com> > Signed-off-by: WANG Xuerui <git@xen0n.name> > --- > arch/loongarch/Makefile | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/arch/loongarch/Makefile b/arch/loongarch/Makefile > index b1e5db51b61c..db0d7210272d 100644 > --- a/arch/loongarch/Makefile > +++ b/arch/loongarch/Makefile > @@ -83,7 +83,6 @@ KBUILD_CFLAGS_KERNEL += -fPIE > LDFLAGS_vmlinux += -static -pie --no-dynamic-linker -z notext > endif > > -cflags-y += -ffreestanding > cflags-y += $(call cc-option, -mno-check-zero-division) > > load-y = 0x9000000000200000 > -- > 2.40.0 >
| |