On Haiku, I see the following:

    In file included from test-random_r.c:21:
    test-random_r.c:23:18: warning: initialization of 'int (*)(unsigned int,  
char *, size_t,  struct random_data *)' {aka 'int (*)(unsigned int,  char *, 
long unsigned int,  struct random_data *)'} from incompatible pointer type 'int 
(*)(unsigned int,  void *, size_t,  struct random_data *)' {aka 'int 
(*)(unsigned int,  void *, long unsigned int,  struct random_data *)'} 
[-Wincompatible-pointer-types]
       23 | SIGNATURE_CHECK (initstate_r, int, (unsigned int, char *, size_t,
          |                  ^~~~~~~~~~~
    signature.h:46:57: note: in definition of macro 'SIGNATURE_CHECK2'
       46 |   _GL_UNUSED static ret (*signature_check ## id) args = fn
          |                                                         ^~
    signature.h:39:3: note: in expansion of macro 'SIGNATURE_CHECK1'
       39 |   SIGNATURE_CHECK1 (fn, ret, args, __LINE__)
          |   ^~~~~~~~~~~~~~~~
    test-random_r.c:23:1: note: in expansion of macro 'SIGNATURE_CHECK'
       23 | SIGNATURE_CHECK (initstate_r, int, (unsigned int, char *, size_t,
          | ^~~~~~~~~~~~~~~
    test-random_r.c:25:18: warning: initialization of 'int (*)(char *, struct 
random_data *)' from incompatible pointer type 'int (*)(void *, struct 
random_data *)' [-Wincompatible-pointer-types]
       25 | SIGNATURE_CHECK (setstate_r, int, (char *, struct random_data *));
          |                  ^~~~~~~~~~
    signature.h:46:57: note: in definition of macro 'SIGNATURE_CHECK2'
       46 |   _GL_UNUSED static ret (*signature_check ## id) args = fn
          |                                                         ^~
    signature.h:39:3: note: in expansion of macro 'SIGNATURE_CHECK1'
       39 |   SIGNATURE_CHECK1 (fn, ret, args, __LINE__)
          |   ^~~~~~~~~~~~~~~~
    test-random_r.c:25:1: note: in expansion of macro 'SIGNATURE_CHECK'
       25 | SIGNATURE_CHECK (setstate_r, int, (char *, struct random_data *));
          | ^~~~~~~~~~~~~~~

This different prototype was documented in 2017.

I've pushed the attach patch disabling the signature check and updating
the documentation to acknowledge current Haiku has this prototype.

Collin

>From bdb1601d379c56a915c439fa66adbb64f0cfd4c9 Mon Sep 17 00:00:00 2001
From: Collin Funk <collin.fu...@gmail.com>
Date: Tue, 22 Apr 2025 18:46:08 -0700
Subject: [PATCH] random_r tests: Disable signature check on Haiku.

* tests/test-random_r.c [__HAIKU__]: Skip initstate_r and setstate_r
signature check.
* doc/glibc-functions/initstate_r.texi: Remove year.
* doc/glibc-functions/setstate_r.texi: Likewise.
---
 ChangeLog                            | 8 ++++++++
 doc/glibc-functions/initstate_r.texi | 2 +-
 doc/glibc-functions/setstate_r.texi  | 2 +-
 tests/test-random_r.c                | 2 ++
 4 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 89250b7739..3ee1063908 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2025-04-22  Collin Funk  <collin.fu...@gmail.com>
+
+	random_r tests: Disable signature check on Haiku.
+	* tests/test-random_r.c [__HAIKU__]: Skip initstate_r and setstate_r
+	signature check.
+	* doc/glibc-functions/initstate_r.texi: Remove year.
+	* doc/glibc-functions/setstate_r.texi: Likewise.
+
 2025-04-21  Collin Funk  <collin.fu...@gmail.com>
 
 	strsignal tests: Disable signature check on Haiku.
diff --git a/doc/glibc-functions/initstate_r.texi b/doc/glibc-functions/initstate_r.texi
index 53f2106c0d..8a4fbfa687 100644
--- a/doc/glibc-functions/initstate_r.texi
+++ b/doc/glibc-functions/initstate_r.texi
@@ -39,5 +39,5 @@ @node initstate_r
 @item
 This function has a slightly different (but compatible) declaration on some
 platforms:
-Haiku 2017.
+Haiku.
 @end itemize
diff --git a/doc/glibc-functions/setstate_r.texi b/doc/glibc-functions/setstate_r.texi
index 3ecd5cf4be..79d7ee2908 100644
--- a/doc/glibc-functions/setstate_r.texi
+++ b/doc/glibc-functions/setstate_r.texi
@@ -35,5 +35,5 @@ @node setstate_r
 @item
 This function has a slightly different (but compatible) declaration on some
 platforms:
-Haiku 2017.
+Haiku.
 @end itemize
diff --git a/tests/test-random_r.c b/tests/test-random_r.c
index 74f19630f2..1c0ffdac5f 100644
--- a/tests/test-random_r.c
+++ b/tests/test-random_r.c
@@ -20,9 +20,11 @@
 
 #include "signature.h"
 SIGNATURE_CHECK (srandom_r, int, (unsigned int, struct random_data *));
+#if !defined __HAIKU__
 SIGNATURE_CHECK (initstate_r, int, (unsigned int, char *, size_t,
                                     struct random_data *));
 SIGNATURE_CHECK (setstate_r, int, (char *, struct random_data *));
+#endif
 SIGNATURE_CHECK (random_r, int, (struct random_data *, int32_t *));
 
 #include <time.h>
-- 
2.49.0

Reply via email to