Date: Mon, 3 Oct 2022 13:36:55 -0700 From: Mark Millard <marklmi@yahoo.com> To: Brooks Davis <brooks@FreeBSD.org>, freebsd-arch <freebsd-arch@freebsd.org> Subject: RE: enabling float128 support in clang? Message-ID: <2705ED56-AD0E-4FC4-AB32-E96D297BEDDB@yahoo.com> References: <2705ED56-AD0E-4FC4-AB32-E96D297BEDDB.ref@yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Brooks Davis <brooks_at_freebsd.org> wrote on Date: Mon, 03 Oct 2022 18:43:10 UTC : > TL;DR: Is there a reason not to enable float128 support in clang for > x86? >=20 > Due to a build breakage with the flang runtime, I recently noticed = that=20 > 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...) >=20 > Is there a known reason not to enable this? >=20 > Patch to enable below (I'm a bit skeptical of the __FLOAT128__ part as > GCC doesn't define it...) >=20 > -- Brooks >=20 > 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__"); > } > =20 > public: > @@ -241,6 +244,7 @@ public: > default: > case llvm::Triple::x86: > case llvm::Triple::x86_64: > + this->HasFloat128 =3D true; > this->MCountName =3D ".mcount"; > break; > case llvm::Triple::mips: >=20 >=20 See: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D238129 for some past exchanges on this. =46rom comment #3: QUOTE of Dimitry Andric: As mentioned on the mailing list, it is not a matter of just "enabling" = float128. Somebody has to step up and write a BSD licensed quadmath.h, = to start with. END QUOTE =3D=3D=3D Mark Millard marklmi at yahoo.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2705ED56-AD0E-4FC4-AB32-E96D297BEDDB>