Update which platforms have no f16 symbols

Previously we were building the C versions of these symbols. Since we
added the Rust version and updated compiler builtins, these are no
longer available by default. This is unintentional, but it gives a
better indicator of which symbol versions are not actually provided by
the system.

Use the list of build failures to correct the list of platforms that do
not have `f16` symbols.
This commit is contained in:
Trevor Gross 2024-08-02 19:20:26 -04:00
parent 8199433bb2
commit db8daebd5b

View file

@ -44,10 +44,20 @@ fn main() {
features.insert(Feature::NoSysF16F128Convert);
}
if target.starts_with("wasm32-") {
// These platforms do not have f16 symbols available in their system libraries, so
// skip related tests. Most of these are missing `f16 <-> f32` conversion routines.
if (target.starts_with("aarch64-") && target.contains("linux"))
|| target.starts_with("arm")
|| target.starts_with("powerpc-")
|| target.starts_with("powerpc64-")
|| target.starts_with("powerpc64le-")
|| target.contains("windows-")
// Linking says "error: function signature mismatch: __extendhfsf2" and seems to
// think the signature is either `(i32) -> f32` or `(f32) -> f32`
|| target.starts_with("wasm32-")
{
features.insert(Feature::NoSysF16);
features.insert(Feature::NoSysF16F128Convert);
}
for feature in features {