Re: Need clarification on compilation errors in PG 16.2

Поиск
Список
Период
Сортировка
От Pradeep Kumar
Тема Re: Need clarification on compilation errors in PG 16.2
Дата
Msg-id CAJ4xhP=cXKBe9na6AavMSTf40f25fV+3sScOBq9_STy5GYdrqw@mail.gmail.com
обсуждение исходный текст
Ответ на Need clarification on compilation errors in PG 16.2  (Pradeep Kumar <spradeepkumar29@gmail.com>)
Ответы Re: Need clarification on compilation errors in PG 16.2
Список pgsql-hackers
Hi Long,

>In fact, whether the HAVE_MEMSET_S macro is defined determines whether the implementation
>of the explicit_bzero() function calls memset_s() or memset(). This macro is undefined by default
>in pg_config.h, so check to see if your build environment has a HAVE_MEMSET_S macro defined.

Yes it was defined in "pg_config.h"
/* Define to 1 if you have the `memset_s' function. */
#define HAVE_MEMSET_S 1

Thanks

On Tue, May 28, 2024 at 12:27 PM Long Song <songlong88@126.com> wrote:





Hi Pradeep,


At 2024-05-28 12:37:08, "Pradeep Kumar" <spradeepkumar29@gmail.com> wrote:

> Hi ,
> While we try to install PG 16.2 from the source code in macbook we getting this following errors
> ```
>
> 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]
>         (void) memset_s(buf, len, 0, len);
>                ^
> explicit_bzero.c:22:9: note: did you mean 'memset'?
> /Library/Developer/CommandLineTools/SDKs/MacOSX14.2.sdk/usr/include/string.h:74:7: note: 'memset' declared here
> void    memset(void __b, int __c, size_t __len);
>          ^
> 1 error generated.
> make[2]: *** [explicit_bzero.o] Error 1
> make[2]: *** Waiting for unfinished jobs....
> make[1]: *** [all-port-recurse] Error 2
> make: *** [all-src-recurse] Error 2
>
> ```
> then I changed the function memset_s(buf, len, 0, len) to memset(buf, 0, len) and it's working. need a clarification on this?
In fact, whether the HAVE_MEMSET_S macro is defined determines whether the implementation
of the explicit_bzero() function calls memset_s() or memset(). This macro is undefined by default
in pg_config.h, so check to see if your build environment has a HAVE_MEMSET_S macro defined.

Best Regards,
Long

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Pradeep Kumar
Дата:
Сообщение: Re: Need clarification on compilation errors in PG 16.2
Следующее
От: Pavel Stehule
Дата:
Сообщение: why memoize is not used for correlated subquery