git: 42678686fc54 - main - devel/cbmc: fix build on powerpc64*

Piotr Kubaj <[email protected]> Mon, 03 Aug 2026 15:21:50 +0000
Newsgroups gmane.os.freebsd.devel.cvs.ports
Message-ID <[email protected]>
The branch main has been updated by pkubaj:

URL: https://cgit.FreeBSD.org/ports/commit/?id=42678686fc54495891c0df3d78be192e8ef5b8c9

commit 42678686fc54495891c0df3d78be192e8ef5b8c9
Author:     Piotr Kubaj <[email protected]>
AuthorDate: 2026-08-03 07:39:13 +0000
Commit:     Piotr Kubaj <[email protected]>
CommitDate: 2026-08-03 15:21:23 +0000

    devel/cbmc: fix build on powerpc64*
    
    1. powerpc64 always uses 64-bit long double.
    2. powerpc64le before 16.0 uses 64-bit long double and switched to
    128-bit IEEE long double in 16.0.
---
 devel/cbmc/files/patch-src_util_config.cpp | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/devel/cbmc/files/patch-src_util_config.cpp b/devel/cbmc/files/patch-src_util_config.cpp
new file mode 100644
index 000000000000..7e589cb250d1
--- /dev/null
+++ b/devel/cbmc/files/patch-src_util_config.cpp
@@ -0,0 +1,19 @@
+--- src/util/config.cpp.orig	2026-08-02 21:22:02 UTC
++++ src/util/config.cpp
+@@ -1088,6 +1088,16 @@ bool configt::set(const cmdlinet &cmdline)
+     ansi_c.char_is_unsigned = false;
+     ansi_c.long_double_width = 8 * 8;
+   }
++  else if(
++    os == "freebsd" &&
++    (arch == "powerpc" || arch == "ppc64" || arch == "ppc64le"))
++  {
++    // FreeBSD/PowerPC does not use the 128-bit long double assumed by
++    // set_arch_spec_power(): it is 64-bit, except on powerpc64le since
++    // FreeBSD 16.0, where it is IEEE binary128. Follow the toolchain
++    // instead of hard-coding either width.
++    ansi_c.long_double_width = sizeof(long double) * CHAR_BIT;
++  }
+ 
+   // Let's check some of the type widths in case we run
+   // the same architecture and OS that we are verifying for.