conundrum: _C99_SOURCE vs. sigset
Stefan Farfeleder
stefan at fafoe.narf.at
Fri Aug 4 06:38:34 UTC 2006
On Thu, Aug 03, 2006 at 03:47:34PM -0400, Mikhail Teterin wrote:
> Hello!
>
> I'm trying to compile a program, which uses threads and has its own daemon
> global variable.
>
> The variable's declaration results in an error:
>
> recsnap.C:50: error: `RTRString daemon' redeclared as different kind of symbol
> /usr/include/stdlib.h:252: error: previous declaration of `int daemon(int,
> int)'
>
> The daemon()'s declaration in stdlib.h can be turned off by declaring either
> _C99_SOURCE or _ANSI_SOURCE. Unfortunately, both of these defines also turn
> off the declaration of sigset_t and fd_set:
>
> /usr/include/pthread.h:233: error: expected `,' or `...' before '*' token
> .../include/rtr/selectni.h:129: error: `fd_set' does not name a type
>
> Can this be solved -- without modifying the vendor's code? Thanks!
Try -D_POSIX_C_SOURCE=200112.
The macro _C99_SOURCE is for pure C99 code and _ANSI_SOURCE for C90
code. Both don't include the <pthread.h> header.
Stefan
More information about the freebsd-questions
mailing list