Download raw body.
compiler_rt: Enable Quad-precision float support for amd64
Enable the Quad-precision float support for amd64
https://github.com/llvm/llvm-project/commit/910a4bf5b70ae14e7262677a8880ee98056e44e1
https://github.com/llvm/llvm-project/commit/d2ce3e9621411f3391def327f89e3a650918989f
This fixes an issue I ran into quite awhile ago with fmt and float128 support.
This was all fixed with compiler-rt as of LLVM 18.
ld: error: undefined symbol: __unordtf2
>>> referenced by format-test.cc
>>> test/CMakeFiles/format-test.dir/format-test.cc.o:(fmt::v11::basic_appender<char> fmt::v11::detail::write_float<char, fmt::v11::basic_appender<char>, __float128>(fmt::v11::basic_appender<char>, __float128, fmt::v11::format_specs, fmt::v11::detail::locale_ref))
ld: error: undefined symbol: __netf2
>>> referenced by format-test.cc
>>> test/CMakeFiles/format-test.dir/format-test.cc.o:(int fmt::v11::detail::format_float<__float128>(__float128, int, fmt::v11::format_specs const&, bool, fmt::v11::detail::buffer<char>&))
ld: error: undefined symbol: __trunctfsf2
>>> referenced by format-test.cc
>>> test/CMakeFiles/format-test.dir/format-test.cc.o:(int fmt::v11::detail::format_float<__float128>(__float128, int, fmt::v11::format_specs const&, bool, fmt::v11::detail::buffer<char>&))
c++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
Index: Makefile
===================================================================
RCS file: /cvs/src/gnu/lib/libcompiler_rt/Makefile,v
retrieving revision 1.14
diff -u -p -u -p -r1.14 Makefile
--- Makefile 10 Sep 2025 03:38:56 -0000 1.14
+++ Makefile 20 Feb 2026 03:13:38 -0000
@@ -303,6 +303,11 @@ SRCS+= divxc3.c \
mulxc3.c \
powixf2.c \
trunctfxf2.c
+
+.if ${RTARCH} == "x86_64"
+# Quad-precision float support
+GEN_SRCS+= ${GEN_TF_SRCS}
+.endif
.endif
.if ${RTARCH} == "mips64" || ${RTARCH} == "mips64el"
compiler_rt: Enable Quad-precision float support for amd64