[PATCH] D139450: Warn about unsupported ibmlongdouble

Qiu Chaofan via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Dec 8 07:32:30 PST 2022


qiucf added a comment.

Thanks for the patch! But does libc++ support to be built with `-mabi=ieeelongdouble` now? (like libstdc++, if it works correctly, it should co-exist and be linked with different long double ABIs)



================
Comment at: clang/lib/Driver/ToolChains/PPCLinux.cpp:96
   bool HasUnsupportedCXXLib =
-      StdLib == CST_Libcxx ||
+      (StdLib == CST_Libcxx && !defaultToIEEELongDouble()) ||
       (StdLib == CST_Libstdcxx &&
----------------
`SupportIEEEFloat128` checks the library version:

* If using libstdc++, then libstdc++ (GCC) >= 12.1.0 is okay.
* If using libc++, then sorry, no libc++ supports `-mabi=ieeelongdouble` now.
* Glibc should >= 2.32

If the assumptions are still right, this changes its meaning (and `supportIBMLongDouble` has different meaning from it).


================
Comment at: clang/test/Driver/lit.local.cfg:26
+if config.ppc_linux_default_ieeelongdouble == "ON":
+  config.available_features.add('ppc_linux_default_ieeelongdouble')
----------------
Can we assume if we are compiling with `-mabi=ieeelongdouble`, then libc++ 'must' be built with the same long double ABI? If I understand correctly, they're unrelated.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D139450/new/

https://reviews.llvm.org/D139450



More information about the cfe-commits mailing list