On 4/19/23 21:07, Charlie Li wrote:
Hans Petter Selasky wrote:

This causes ports to fail, so far with Python's configure phase and any Python ports with C extensions:

In file included from /usr/local/include/python3.11/Python.h:23:
/usr/include/stdlib.h:409:1: error: unknown type name 'errno_t'
errno_t  bsort_s(void *, rsize_t, rsize_t,
^
/usr/include/stdlib.h:409:35: error: redefinition of parameter 'rsize_t'
errno_t  bsort_s(void *, rsize_t, rsize_t,
                                   ^
/usr/include/stdlib.h:409:26: note: previous declaration is here
errno_t  bsort_s(void *, rsize_t, rsize_t,
                          ^
2 errors generated.


Hi Charlie,

The following patch should fix it. I'm just kicking a buildworld to ensure nothing else is broken. Will push this once that is complete.

From ed6a0aaa839086cfe2037989fc8feb3ac864be63 Mon Sep 17 00:00:00 2001
From: Hans Petter Selasky <hsela...@freebsd.org>
Date: Wed, 19 Apr 2023 21:37:29 +0200
Subject: [PATCH] libc: bsort_s() requires both __BSD_VISIBLE and
 __EXT1_VISIBLE

Fixes build of Python.

Found by:       vishwin@
MFC after:      1 week
Sponsored by:   NVIDIA Networking
Differential Revision:  https://reviews.freebsd.org/D36493
---
 include/stdlib.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/stdlib.h b/include/stdlib.h
index 857092b9053e..3ad28cf68847 100644
--- a/include/stdlib.h
+++ b/include/stdlib.h
@@ -403,12 +403,12 @@ void ignore_handler_s(const char * __restrict, void * 
__restrict, errno_t);
 /* K.3.6.3.2 */
 errno_t         qsort_s(void *, rsize_t, rsize_t,
     int (*)(const void *, const void *, void *), void *);
-#endif /* __EXT1_VISIBLE */
#if __BSD_VISIBLE
 errno_t         bsort_s(void *, rsize_t, rsize_t,
     int (*)(const void *, const void *, void *), void *);
 #endif /* __BSD_VISIBLE */
+#endif /* __EXT1_VISIBLE */
__END_DECLS
 __NULLABILITY_PRAGMA_POP
--
2.40.0

--HPS

Reply via email to