Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 3 Aug 2006 23:38:39 +0200
From:      Stefan Farfeleder <stefan@fafoe.narf.at>
To:        Mikhail Teterin <mi+mx@aldan.algebra.com>
Cc:        standards@freebsd.org, questions@freebsd.org
Subject:   Re: conundrum: _C99_SOURCE vs. sigset
Message-ID:  <20060803213839.GH33267@wombat.fafoe.narf.at>
In-Reply-To: <200608031547.34386.mi%2Bmx@aldan.algebra.com>
References:  <200608031547.34386.mi%2Bmx@aldan.algebra.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060803213839.GH33267>