From: Brad Smith Subject: compiler_rt: Enable Quad-precision float support for amd64 To: tech@openbsd.org Cc: kettenis@openbsd.org Date: Thu, 19 Feb 2026 22:39:24 -0500 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 fmt::v11::detail::write_float, __float128>(fmt::v11::basic_appender, __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&)) 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&)) 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"