Hi,
On Mon, Feb 23, 2026 at 08:12:41AM +0100, Peter Eisentraut wrote:
> We can use either of these to implement a missing explicit_bzero().
>
> explicit_memset() is supported on NetBSD. NetBSD hitherto didn't have a way
> to implement explicit_bzero() other than the fallback variant.
>
> memset_explicit() is the C23 standard, so we use it as first preference. It
> is currently supported on:
>
> - NetBSD 11
> - FreeBSD 15
> - glibc 2.43
@@ -1846,6 +1847,7 @@ AC_CHECK_FUNCS(m4_normalize([
kqueue
localeconv_l
mbstowcs_l
+ memset_explicit
posix_fallocate
ppoll
Could we hit the same kind of issue as in [1] (when using -std=c11)?
Asking because I can see (in [2]), that in glibc 2.43, memset_explicit is
guarded
that way (string/string.h):
"
#if defined __USE_MISC || __GLIBC_USE (ISOC23)
/* Like memset, but the compiler will not delete a call to this
function, even if S is dead after the call. */
extern void *memset_explicit (void *__s, int __c, size_t __n)
__THROW __nonnull ((1)) __fortified_attr_access (__write_only__, 1, 3);
#endif
"
Should we move from AC_CHECK_FUNCS to AC_CHECK_DECLS? (same kind of idea as
12eee85e511f)?
[1]:
https://postgr.es/m/CAA4pTnLcKGG78xeOjiBr5yS7ZeE-Rh%3DFaFQQGOO%3DnPzA1L8yEA%40mail.gmail.com
[2]:
https://sourceware.org/git/?p=glibc.git;a=blob;f=string/string.h;hb=glibc-2.43
Regards,
--
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com