lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 25 Apr 2023 00:01:18 +0000
From:   SeongJae Park <sj@...nel.org>
To:     Sasha Levin <sashal@...nel.org>, gregkh@...uxfoundation.org
Cc:     linux-kernel@...r.kernel.org, stable@...r.kernel.org,
        "David Gow" <davidgow@...gle.com>,
        Sergio González Collado 
        <sergio.collado@...il.com>, "Richard Weinberger" <richard@....at>,
        tglx@...utronix.de, mingo@...hat.com, hpa@...or.com, x86@...nel.org
Subject: Re: [PATCH AUTOSEL 6.1 04/13] rust: arch/um: Disable FP/SIMD instruction to match x86

Hello Sasha and Greg,


On Tue, 14 Mar 2023 08:43:16 -0400 Sasha Levin <sashal@...nel.org> wrote:

> From: David Gow <davidgow@...gle.com>
> 
> [ Upstream commit 8849818679478933dd1d9718741f4daa3f4e8b86 ]
> 
> The kernel disables all SSE and similar FP/SIMD instructions on
> x86-based architectures (partly because we shouldn't be using floats in
> the kernel, and partly to avoid the need for stack alignment, see:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53383 )
> 
> UML does not do the same thing, which isn't in itself a problem, but
> does add to the list of differences between UML and "normal" x86 builds.
> 
> In addition, there was a crash bug with LLVM < 15 / rustc < 1.65 when
> building with SSE, so disabling it fixes rust builds with earlier
> compiler versions, see:
> https://github.com/Rust-for-Linux/linux/pull/881
> 
> Signed-off-by: David Gow <davidgow@...gle.com>
> Reviewed-by: Sergio González Collado <sergio.collado@...il.com>
> Signed-off-by: Richard Weinberger <richard@....at>
> Signed-off-by: Sasha Levin <sashal@...nel.org>

There is a followup fix of this patch that merged into the mainline by commit
a3046a618a28 ("um: Only disable SSE on clang to work around old GCC bugs"), but
it has not added to 6.1.y so far.  Without it, compiling on some setup using an
old version of gcc fails, as the followup is also mentioning.  I also confirmed
the issue can be reproduced on latest 6.1.y.

Could you please add the followup fix to 6.1.y?  I confirmed the commit can be
cleanly cherry-picked on latest 6.1.y, and fixes the issue as expected.


Thanks,
SJ

> ---
>  arch/x86/Makefile.um | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/arch/x86/Makefile.um b/arch/x86/Makefile.um
> index b3c1ae084180d..d2e95d1d4db77 100644
> --- a/arch/x86/Makefile.um
> +++ b/arch/x86/Makefile.um
> @@ -1,6 +1,12 @@
>  # SPDX-License-Identifier: GPL-2.0
>  core-y += arch/x86/crypto/
>  
> +#
> +# Disable SSE and other FP/SIMD instructions to match normal x86
> +#
> +KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx
> +KBUILD_RUSTFLAGS += -Ctarget-feature=-sse,-sse2,-sse3,-ssse3,-sse4.1,-sse4.2,-avx,-avx2
> +
>  ifeq ($(CONFIG_X86_32),y)
>  START := 0x8048000
>  
> -- 
> 2.39.2
> 
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ