Without this patch, the compiler complains “warning: cast from
provenance-free integer type to pointer type will give pointer
that can not be dereferenced” and some tests fail.
* lib/thread-optim.h (_GL_MULTITHREADED_VIA_ELF)
[__CHERI_PURE_CAPABILITY__]: Don’t define.
---
 ChangeLog          | 9 +++++++++
 lib/thread-optim.h | 9 +++++----
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index ef34e06bb6..2087507129 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2026-08-31  Paul Eggert  <[email protected]>
+
+       thread-optim: port to CheriBSD purecap
+       Without this patch, the compiler complains “warning: cast from
+       provenance-free integer type to pointer type will give pointer
+       that can not be dereferenced” and some tests fail.
+       * lib/thread-optim.h (_GL_MULTITHREADED_VIA_ELF)
+       [__CHERI_PURE_CAPABILITY__]: Don’t define.
+
 2026-08-31  Bruno Haible  <[email protected]>
 
        fenv-exceptions-tracking-c99 tests: Fix test on Solaris 11 OpenIndiana.
diff --git a/lib/thread-optim.h b/lib/thread-optim.h
index dc097c8046..fe6affb20c 100644
--- a/lib/thread-optim.h
+++ b/lib/thread-optim.h
@@ -70,10 +70,11 @@
 # define gl_multithreaded()  1
 # define _GL_MULTITHREADED_ALWAYS_TRUE
 
-#elif defined __ELF__ /* Linux, Hurd, FreeBSD, NetBSD, OpenBSD, Solaris, ... 
*/\
-      && HAVE_LINK_H \
-      && (HAVE_DL_ITERATE_PHDR /* not Solaris 10, not Haiku */ \
-          && !defined __FILC__ /* not Fil-C */)
+#elif (defined __ELF__ /* Linux, Hurd, FreeBSD, NetBSD, OpenBSD, ... */ \
+       && HAVE_LINK_H \
+       && HAVE_DL_ITERATE_PHDR /* not Solaris 10, not Haiku */ \
+       && !defined __CHERI_PURE_CAPABILITY__ /* not CheriBSD purecap */ \
+       && !defined __FILC__ /* not Fil-C */)
 
 /* We can detect whether pthread_create() can be invoked, by looking
    at the contents of the PLT of the executable and of each shared object.  */
-- 
2.55.0


Reply via email to