Re: PG 17.2 compilation fails with -std=c11 on mac
От | Tom Lane |
---|---|
Тема | Re: PG 17.2 compilation fails with -std=c11 on mac |
Дата | |
Msg-id | 37369.1747410143@sss.pgh.pa.us обсуждение исходный текст |
Ответы |
Re: PG 17.2 compilation fails with -std=c11 on mac
|
Список | pgsql-hackers |
Lakshmi Narayana Velayudam <dev.narayana.v@gmail.com> writes: > When I trying to compiling postgres 17.2 with -std=c11 I am getting the > below error on mac > explicit_bzero.c:22:9: error: call to undeclared function 'memset_s'; ISO > C99 and later do not support implicit function declarations > [-Wimplicit-function-declaration] Yeah, I can reproduce that. After some digging, I see that the problem is explained by "man memset_s": SYNOPSIS #define __STDC_WANT_LIB_EXT1__ 1 #include <string.h> errno_t memset_s(void *s, rsize_t smax, int c, rsize_t n); We lack that #define, which results in <string.h> not supplying the declaration. AFAICT the requirement for this is in the C11 standard, this is not just Apple doing something weird. (I did not figure out how come the code compiles without -std=c11.) Aside from this compilation error, we're probably failing to use memset_s on some platforms where it's available, for lack of the #define in our configure/meson probes. I know how to fix that in configure, but I'm less clear on how nonstandard probes work in meson --- any help there? regards, tom lane
В списке pgsql-hackers по дате отправления: