enabling float128 support in clang?
Brooks Davis <[email protected]>
| Newsgroups | gmane.os.freebsd.architechture |
|---|---|
| Message-ID | <[email protected]> |
TL;DR: Is there a reason not to enable float128 support in clang for
x86?
Due to a build breakage with the flang runtime, I recently noticed that
unlike most other OSes we don't support float128 in clang. It's enable
in modern GCC and other OSes have it enable in clang:
- Hakiu 2018: https://reviews.llvm.org/D54901
- Solaris 2018: https://reviews.llvm.org/D41240
- WASM 2019: https://reviews.llvm.org/D57154
- Dragonfly 2021: https://reviews.llvm.org/D111760
- OpenBSD (history hard to find...)
Is there a known reason not to enable this?
Patch to enable below (I'm a bit skeptical of the __FLOAT128__ part as
GCC doesn't define it...)
-- Brooks
diff --git a/clang/lib/Basic/Targets/OSTargets.h b/clang/lib/Basic/Targets/OSTargets.h
index c75f7d9fbafe..ea95f40e81a0 100644
--- a/clang/lib/Basic/Targets/OSTargets.h
+++ b/clang/lib/Basic/Targets/OSTargets.h
@@ -232,6 +232,9 @@ protected:
// setting this to 1 is conforming even if all the basic source
// character literals have the same encoding as char and wchar_t.
Builder.defineMacro("__STDC_MB_MIGHT_NEQ_WC__", "1");
+
+ if (this->HasFloat128)
+ Builder.defineMacro("__FLOAT128__");
}
public:
@@ -241,6 +244,7 @@ public:
default:
case llvm::Triple::x86:
case llvm::Triple::x86_64:
+ this->HasFloat128 = true;
this->MCountName = ".mcount";
break;
case llvm::Triple::mips:
signature.asc
(application/pgp-signature, 455 B)
-----BEGIN PGP SIGNATURE----- iQEcBAEBAgAGBQJjOy09AAoJEKzQXbSebgfAntkH/2+tGDC6GKQclxKHY+712v4F OeSKHWdYh6A5qrQU0E/5pvJx4UoJ3fwffgJF3vdMzy822pN2ti/H1Ohf8W4ywETK kTNDpgUrhecPFozpBnC9LQYWAXO4tBlBXZ7xL1b2LLFVz3UZSJRGv3v//+fHZ05u SMv2HvMK2mEOzXZGqqVQ9TWgx8YXlxst5fFjU6K2QZX8vkRqzSHW8F7achI+/ddh hCp22I1OA/ikTHMjz+s0WCi953LEtRBz+t30jJWP9kMIi+irbYkbwYrLkOHWIpt4 kzpte4AsVJMhTHUb71FTRbTMtbdTsgpuoH6t+Y4IdLYAbnaZ+7G7KSr67k0QVyc= =kJOs -----END PGP SIGNATURE-----