Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix building under UML #881

Merged
merged 2 commits into from
Feb 13, 2023
Merged

Fix building under UML #881

merged 2 commits into from
Feb 13, 2023

Conversation

sulix
Copy link

@sulix sulix commented Sep 12, 2022

At some point, UML (arch/um) support got broken.

We were able to work out the two causes of this at Kangrejos:

  • A strange SSE2-related SIGTRAP in rustc.
  • The relocation model needs to be PIE for some reason on UML builds. Maybe this is something better fixed in UML, but it was easier to change here. This is basically a revert of this commit in PR Target specification cleanup #706 — despite the comment there, I couldn't override the command-line version in a per-architecture way.

There's almost definitely a better way of fixing these, and even these fixes would need to be better understood and documented, but I'm putting this out there so we have some documentation of the problems, and something we can apply to test against.

@sulix sulix force-pushed the rust_uml_fix branch 2 times, most recently from 3015c66 to 3aa68a3 Compare September 12, 2022 15:37
JoseExposito added a commit to JoseExposito/linux-rust that referenced this pull request Dec 5, 2022
Explain how to run unit tests and documentation tests.

Note that the documentation uses "--arch=x86_64" to run KUnit tests
because UML is not working at the moment [1].

[1] Rust-for-Linux#881
Signed-off-by: José Expósito <[email protected]>
JoseExposito added a commit to JoseExposito/linux that referenced this pull request Dec 5, 2022
Explain how to run unit tests and documentation tests.

Note that the documentation uses "--arch=x86_64" to run KUnit tests
because UML is not working at the moment [1].

[1] Rust-for-Linux/linux#881
Signed-off-by: José Expósito <[email protected]>
JoseExposito added a commit to JoseExposito/linux that referenced this pull request Dec 7, 2022
Explain how to run unit tests and documentation tests.

Note that the documentation uses "--arch=x86_64" to run KUnit tests
because UML is not working at the moment [1].

[1] Rust-for-Linux/linux#881
Reviewed-by: David Gow <[email protected]>
Signed-off-by: José Expósito <[email protected]>
JoseExposito added a commit to JoseExposito/linux-rust that referenced this pull request Dec 7, 2022
Explain how to run unit tests and documentation tests.

Note that the documentation uses "--arch=x86_64" to run KUnit tests
because UML is not working at the moment [1].

[1] Rust-for-Linux#881
Reviewed-by: David Gow <[email protected]>
Signed-off-by: José Expósito <[email protected]>
@sulix
Copy link
Author

sulix commented Dec 8, 2022

As alluded to in ClangBuiltLinux#1715 -- UML is very particular about its linker options, so I suspect it'd take a fair bit of work (and more knowledge than I have) to fix this on the UML side.

I've rebased it and verified it still works, so if there's no objection to working around this on the Rust side, and things like disabling SSE/SSE2 don't break anything, I think it makes sense to merge this for now.

That'll also remove the need to recommend --arch x86_64 in #935.

@sulix sulix marked this pull request as ready for review December 8, 2022 07:20
Copy link
Member

@bjorn3 bjorn3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

JoseExposito added a commit to JoseExposito/linux that referenced this pull request Dec 8, 2022
Add a .kunitconfig file with the required configuration options to
allow to easily run the KUnit tests without adding them manually:

	$ ./tools/testing/kunit/kunit.py run --kunitconfig=rust \
	  --make_options LLVM=1 --arch=x86_64

Note that "CONFIG_UML" is set to "n" because UML is not working at the
moment [1].

[1] Rust-for-Linux/linux#881

Reviewed-by: David Gow <[email protected]>
Signed-off-by: José Expósito <[email protected]>
JoseExposito added a commit to JoseExposito/linux that referenced this pull request Dec 8, 2022
Explain how to run unit tests and documentation tests.

Note that the documentation uses "--arch=x86_64" to run KUnit tests
because UML is not working at the moment [1].

[1] Rust-for-Linux/linux#881

Reviewed-by: David Gow <[email protected]>
Signed-off-by: José Expósito <[email protected]>
JoseExposito added a commit to JoseExposito/linux-rust that referenced this pull request Dec 8, 2022
Add a .kunitconfig file with the required configuration options to
allow to easily run the KUnit tests without adding them manually:

	$ ./tools/testing/kunit/kunit.py run --kunitconfig=rust \
	  --make_options LLVM=1 --arch=x86_64

Note that "CONFIG_UML" is set to "n" because UML is not working at the
moment [1].

[1] Rust-for-Linux#881

Reviewed-by: David Gow <[email protected]>
Signed-off-by: José Expósito <[email protected]>
JoseExposito added a commit to JoseExposito/linux-rust that referenced this pull request Dec 8, 2022
Explain how to run unit tests and documentation tests.

Note that the documentation uses "--arch=x86_64" to run KUnit tests
because UML is not working at the moment [1].

[1] Rust-for-Linux#881

Reviewed-by: David Gow <[email protected]>
Signed-off-by: José Expósito <[email protected]>
Comment on lines 231 to 235
if cfg.has("UML") {
ts.push("relocation-model", "pie");
} else {
ts.push("relocation-model", "static");
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since using target spec files is considered unstable inrustc, we are trying to use as many (stable) flags as possible instead, in hopes that, eventually, we will be have an easier time to move to stable-only builds. Could you please override the relocation model via arch/um/Makefile with KBUILD_RUSTFLAGS += ?

@@ -204,7 +204,7 @@ fn main() {
"data-layout",
"e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128",
);
let mut features = "-3dnow,-3dnowa,-mmx,+soft-float".to_string();
let mut features = "-3dnow,-3dnowa,-mmx,+soft-float,-sse,-sse2".to_string();
Copy link
Member

@ojeda ojeda Dec 9, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SSE2 is already disabled already through the arch/x86/Makefile:

KBUILD_RUSTFLAGS += -Ctarget-feature=-sse,-sse2,-sse3,-ssse3,-sse4.1,-sse4.2,-avx,-avx2

But of course that doesn't get picked up by ARCH=um... This seems to work:

KBUILD_RUSTFLAGS += -Ctarget-feature=-sse

in arch/um/Makefile (-sse seems enough), probably with a subarch conditional. That way, it is more localized (since it is a change for UML) and we avoid the unstable target spec file. Or, if UML is supposed to use the same flags, we can just copy the entire line.

I minimized our case down to https://godbolt.org/z/vWcadW96h, and noticed it doesn't happen anymore starting with rustc 1.65.0. Since that version upgraded to LLVM 15 in rust-lang/rust#99464, I guess we can assume it got fixed on LLVM's side (or somehow it doesn't trigger it anymore).

And indeed, with rustc 1.65.0 I could get pass that part compiling the kernel.

But again, we probably want the same flags as x86 anyway, right?

sulix added a commit to sulix/linux that referenced this pull request Dec 15, 2022
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 < 14 / rustc < 1.65 when
building with SSE, so disabling it fixes rust builds with earlier
compiler versions, see:
Rust-for-Linux#881

Signed-off-by: David Gow <[email protected]>
@sulix
Copy link
Author

sulix commented Dec 15, 2022

Thanks, Miguel.

I've updated the series to move everything to the various Makefiles.

Let me know if you'd rather I send this (or something similar) in via the UML mailing list / tree.

@ojeda
Copy link
Member

ojeda commented Dec 15, 2022

Thanks a lot! This will make it simpler later on for us. Looks good to me -- a couple things I noticed:

  • I think the second commit message should say "LLVM < 15" instead of "LLVM < 14", i.e. LLVM 15 appears to not trigger the issue anymore.

  • Nit: elsewhere (e.g. the main kernel Makefile) I have been putting RUSTFLAGS closer to CFLAGS (as "language compilers"), i.e. before AFLAGS/LDFLAGS.

Let me know if you'd rather I send this (or something similar) in via the UML mailing list / tree.

It would be great if the UML maintainers take it, actually, so that they start to get involved etc. But if they don't want, I can also route it through the Rust tree. Feel free to email both mailing lists!

By the way, it would be also a good opportunity to see if they want UML listed in Documentation/rust/arch-support.rst etc.

UML expects a position independent executable for some reason, so tell
rustc to generate pie objects. Otherwise we get a bunch of relocations
we can't deal with in libcore.

Signed-off-by: David Gow <[email protected]>
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:
Rust-for-Linux#881

Signed-off-by: David Gow <[email protected]>
@sulix
Copy link
Author

sulix commented Dec 17, 2022

I've sent this out (along with the CONFIG_HAVE_RUST patch from #766) to the UML list:
https://lore.kernel.org/rust-for-linux/[email protected]/T/

BenjaminBeichler pushed a commit to BenjaminBeichler/linux-uml-ext that referenced this pull request Feb 10, 2023
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:
Rust-for-Linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
@ojeda
Copy link
Member

ojeda commented Feb 13, 2023

Yeah, let's merge this to make rust closer then (we recently decided we will keep the rust branch around until the diff goes to zero), since the one from #766 is in too.

@ojeda ojeda merged commit 9c0096c into Rust-for-Linux:rust Feb 13, 2023
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this pull request Mar 20, 2023
[ Upstream commit 8849818 ]

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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this pull request Mar 20, 2023
[ Upstream commit 8849818 ]

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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this pull request Mar 20, 2023
[ Upstream commit 8849818 ]

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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this pull request Mar 20, 2023
[ Upstream commit 8849818 ]

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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this pull request Mar 20, 2023
[ Upstream commit 8849818 ]

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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this pull request Mar 20, 2023
[ Upstream commit 8849818 ]

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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this pull request Mar 20, 2023
[ Upstream commit 8849818 ]

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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this pull request Mar 20, 2023
[ Upstream commit 8849818 ]

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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this pull request Mar 20, 2023
[ Upstream commit 8849818 ]

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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this pull request Mar 20, 2023
[ Upstream commit 8849818 ]

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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this pull request Mar 20, 2023
[ Upstream commit 8849818 ]

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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this pull request Mar 20, 2023
[ Upstream commit 8849818 ]

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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this pull request Mar 20, 2023
[ Upstream commit 8849818 ]

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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this pull request Mar 20, 2023
[ Upstream commit 8849818 ]

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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this pull request Mar 20, 2023
[ Upstream commit 8849818 ]

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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this pull request Mar 20, 2023
[ Upstream commit 8849818 ]

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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this pull request Mar 20, 2023
[ Upstream commit 8849818 ]

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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
bananafunction pushed a commit to bananafunction/android_kernel_oneplus_sdm845 that referenced this pull request Mar 21, 2023
[ 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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this pull request Mar 21, 2023
[ Upstream commit 8849818 ]

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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this pull request Mar 21, 2023
[ Upstream commit 8849818 ]

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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this pull request Mar 21, 2023
[ Upstream commit 8849818 ]

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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this pull request Mar 21, 2023
[ Upstream commit 8849818 ]

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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
Whissi pushed a commit to Whissi/linux-stable that referenced this pull request Mar 22, 2023
[ Upstream commit 8849818 ]

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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
ammarfaizi2 pushed a commit to ammarfaizi2/linux-block that referenced this pull request Mar 22, 2023
[ Upstream commit 8849818 ]

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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
TogoFire pushed a commit to Dev-msm8953/kernel_xiaomi_msm8953 that referenced this pull request Apr 7, 2023
[ Upstream commit 8849818 ]

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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
Alone0316 pushed a commit to Alone0316/kernel_mido that referenced this pull request Apr 11, 2023
[ 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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
Whissi pushed a commit to Whissi/linux-stable that referenced this pull request Apr 30, 2023
commit 8849818 upstream.

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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
sileshn pushed a commit to sileshn/ubuntu-kernel-lunar that referenced this pull request Jul 9, 2023
BugLink: https://bugs.launchpad.net/bugs/2025066

commit 8849818679478933dd1d9718741f4daa3f4e8b86 upstream.

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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Signed-off-by: Kamal Mostafa <[email protected]>
Signed-off-by: Stefan Bader <[email protected]>
mozzaru pushed a commit to mozzaru/android_kernel_xiaomi_markw_new that referenced this pull request Jul 24, 2023
[ 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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
mozzaru pushed a commit to mozzaru/android_kernel_xiaomi_markw_new that referenced this pull request Aug 11, 2023
[ 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:
Rust-for-Linux/linux#881

Signed-off-by: David Gow <[email protected]>
Reviewed-by: Sergio González Collado <[email protected]>
Signed-off-by: Richard Weinberger <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

3 participants