-
-
Notifications
You must be signed in to change notification settings - Fork 204
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
64-bit long double for x86-64? #478
Comments
Can you quantify what you refer to here? llvm-mingw is generally ABI compatible with GCC. C++ code that refers to the standard C++ library isn't compatible across C++ libraries of course though. And object files/static libraries built for UCRT isn't generally safe to mix with similar ones built for msvcrt.dll - but that's not an issue specific to llvm-mingw or Clang vs GCC.
Yes, this would require quite large modifications there. If you want the performance of 64 bit doubles, use |
To provide more context on this; e.g. on aarch64 linux, |
The main incompatibilities are toolchain runtime: compiler-rt, libc++, libunwind, but there are still some incompatibilities besides that which are not related to runtime: CFGuard, AVX512, TLS, LTO. Anyway, apart from msys2 mingw64/ucrt64 env, there is no other llvm-mingw distribution specifically configured to be compatible with GCC.
I'm sorry, but I'm only using llvm-mingw to build software, so it's not something I can decide. |
Compiler-rt and libunwind are only implementation differences, and they are ABI compatible with libgcc.
TLS is indeed a bit of an issue, but there are actually things happening in GCC to move towards native TLS here. The rest also isn't about ABI differences, but just differing sets of features or how to invoke them - not ABI level incompatibilities. In any case - your wish is noted. |
@Andarwinux: Currently I'm working on this: creating patches for mingw-w64 to be compatible with |
Good to know! It would be nice to have it as an experimental option disabled by default. I think @cjacek might be interested in your work, which might also help with arm64ec. |
Yes, I hope we can have support for that upstream. |
It seems that llvm-mingw used to define the x86-64 long double as 80-bit for gcc compatibility, which made many UCRT math functions unusable.
But nowadays llvm-mingw is not gcc-compatible anyway, so would it be possible to add a 64-bit variant of long double for x86-64 to improve performance and MSVC compatibility?
This seems to require a modification on the MinGW CRT side, and -mlong-double-64 won't work.
The text was updated successfully, but these errors were encountered: