Index | Thread | Search

From:
Brad Smith <brad@comstyle.com>
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

Download raw body.

Thread
  • Brad Smith:

    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"