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