Compile-time check for clock_nanosleep()

Eric van Gyzen vangyzen at FreeBSD.org
Wed Jul 5 15:10:33 UTC 2017


On 07/03/2017 15:28, Chris Ross wrote:
> 
>> On Jul 3, 2017, at 14:46, Kurt Jaeger <lists at opsec.eu> wrote:
>>
>> Use __FreeBSD_version from sys/param.h:
>>
>> https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/versions.html
> 
>   Thanks.  That looks great.  Also, for my specific case of the addition of clock_nanosleep(), it looks from time.h like I could use "__POSIX_VISIBLE >= 200112”.  Maybe that isn’t safe, since later looking at time.h on 11.0 and on 11.1, the latter has a definition for clock_nanosleep() in that block, but the former does not.

__POSIX_VISIBLE has a different purpose and can't be used for this.  It's part
of a way for the application to request a strict namespace of certain versions
of POSIX, ANSI C, etc.

>   Yeah, digging around it appears that stable/11/sys/sys/param.h at r316498 had __FreeBSD_version at 1100512, and it was raised to 1100513 in revision 318197.  And, clock_nanosleep was MFC’d into 11-stable in-between the two, at revision 317618.  So, not a precise match there, but >= 1100513 should be safe.

Yes, this is exactly what you want.  Actually, what you /really/ want is for the
committer to remember to bump __FreeBSD_version when he added the call, but I
forgot.  :(

Cheers,

Eric


More information about the freebsd-stable mailing list