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


Reply via email to