um: Pass the correct Rust target and options with gcc
authorDavid Gow <davidgow@google.com>
Mon, 10 Feb 2025 10:53:51 +0000 (18:53 +0800)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 18 Mar 2025 10:01:02 +0000 (11:01 +0100)
commit5550187c4c21740942c32a9ae56f9f472a104cb4
treefab30e8c3393fe3816637f1d439fd572c70dd157
parent7eb172143d5508b4da468ed59ee857c6e5e01da6
um: Pass the correct Rust target and options with gcc

In order to work around some issues with disabling SSE on older versions
of gcc (compilation would fail upon seeing a function declaration
containing a float, even if it was never called or defined), the
corresponding CFLAGS and RUSTFLAGS were only set when using clang.

However, this led to two problems:
- Newer gcc versions also wouldn't get the correct flags, despite not
  having the bug.
- The RUSTFLAGS for setting the rust target definition were not set,
  despite being unrelated. This works by chance for x86_64, as the
  built-in default target is close enough, but not for 32-bit x86.

Move the target definition outside the conditional block, and update the
condition to take into account the gcc version.

Fixes: a3046a618a28 ("um: Only disable SSE on clang to work around old GCC bugs")
Signed-off-by: David Gow <davidgow@google.com>
Link: https://patch.msgid.link/20250210105353.2238769-2-davidgow@google.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
arch/x86/Makefile.um