RE: enabling float128 support in clang?
- Reply: Brooks Davis : "Re: enabling float128 support in clang?"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 03 Oct 2022 20:36:55 UTC
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?
>
> 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:
>
>
See:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=238129
for some past exchanges on this. From 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
===
Mark Millard
marklmi at yahoo.com