From: Craig Howland <howland-ZkbvEYpuQwKSe5ORCPIMD9BPR1lH4CV8@public.gmane.org>
To: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
Cc: linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: random(3) man page error
Date: Wed, 23 Mar 2016 15:20:29 -0400 [thread overview]
Message-ID: <56F2EC7D.6010108@LGSInnovations.com> (raw)
http://man7.org/linux/man-pages/man3/random.3.html contains an error with
respect to the feature test macro requirements.
It says "_XOPEN_SOURCE >= 500
|| /* Glibc since 2.19: */ _DEFAULT_SOURCE
|| /* Glibc versions <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE"
However, the POSIX-related requirement is not complete. According to POSIX, it
originated in issue 4 as an X/OPEN UNIX extension (see
http://pubs.opengroup.org/onlinepubs/9699919799/functions/random.html), and was
moved to BASE in issue 5. The GLIBC 2.12 on my RHEL6 system do seem to gate it
as POSIX says (see clips below), so it is only the man page in error.
So the man page really should say "_XOPEN_SOURCE >= 500
|| _XOPEN_SOURCE_EXTENDED && _XOPEN_SOURCE
|| /* Glibc since 2.19: */ _DEFAULT_SOURCE
|| /* Glibc versions <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE"
(I'm not totally certain of the right way for _XOPEN_SOURCE_EXTENDED to be used,
but you get the idea.)
Now perhaps this extra line was purposely left out based on a statement in
feature_test_macros(7) that says "since defining _XOPEN_SOURCE with a value of
500 or more has the same effect as defining _XOPEN_SOURCE_EXTENDED, the latter
(obsolete) feature test macro is generally not described in the SYNOPSIS in man
pages." However, for this case it leaves out a user getting it with a version
older than 500. (The manual as-is is good for a new user, really, but it is not
good for a developer working on the proper gates in the code, or a user looking
at older code.)
Craig Howland
Supporting information:
From stdlib.h;
#if defined __USE_SVID || defined __USE_XOPEN_EXTENDED || defined __USE_BSD
...
extern long int random (void) __THROW;
From features.h:
#ifdef _XOPEN_SOURCE
# define __USE_XOPEN 1
# if (_XOPEN_SOURCE - 0) >= 500
# define __USE_XOPEN_EXTENDED 1
# ...
# else
# ifdef _XOPEN_SOURCE_EXTENDED
# define __USE_XOPEN_EXTENDED 1
...
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next reply other threads:[~2016-03-23 19:20 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-23 19:20 Craig Howland [this message]
[not found] ` <56F2EC7D.6010108-ZkbvEYpuQwKSe5ORCPIMD9BPR1lH4CV8@public.gmane.org>
2016-03-25 20:13 ` random(3) man page error Michael Kerrisk (man-pages)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56F2EC7D.6010108@LGSInnovations.com \
--to=howland-zkbveypuqwkse5orcpimd9bpr1lh4cv8@public.gmane.org \
--cc=linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.