/usr/include/sys/signal.h says: #if (defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED)) || \ (_XOPEN_SOURCE - 0) >= 500 || defined(_NETBSD_SOURCE)
If the posix standard says that it shall be defined, then we have got a bug. On 15.05.2016 03:18, Charles Cui wrote: > let's call this small program as test.c. > There is no problem when executing the command gcc test.c, > However, when executing as gcc test.c -D_POSIX_C_SOURCE=200112L, it > reports SA_ONSTACK is not declared. > _POSIX_C_SOURCE is enabled by default in the benchmark suite. > If you guys think this flag is not necessary for us, then problem is solved. > > 2016-05-13 6:43 GMT-07:00 Christos Zoulas <chris...@zoulas.com>: > >> On May 12, 9:50pm, charles.cui1...@gmail.com (Charles Cui) wrote: >> -- Subject: Re: refine of the GSOC project >> >> | Well, your saying of _NETBSD_SOURCE is defined by default seems correct, >> | I compiled a file in the benchmark separately which has the problem of >> | accessing >> | macro SA_ONSTACK >> | <http://nxr.netbsd.org/source/s?refs=SA_ONSTACK&project=src> which >> lives >> | in <signal.h>. There is no problem in executing. >> | However, I am still not convinced why _NETBSD_SOURCE does not take effect >> | in the benchmark execution? There is no #undef _NETBSD_SOURCE in the >> | benchmark, >> | also defining other macros will not affect _NETBSD_SOURCE (it will make >> | multiple macros >> | exist simultaneously). I am not quite clear why the default >> _NETBSD_SOURCE >> | does not >> | work in the benchmark. >> | >> | this is from <signal.h>, benchmark using SA_ONSTACK reporting this macro >> | not found. >> | >> >> Why do you say that? Just compile and run this: >> >> #include <signal.h> >> #include <stdio.h> >> >> int >> main(void) >> { >> printf("%#x\n", SA_ONSTACK); >> return 0; >> } >> >> christos >> >