Debian Bug report logs -
#542601
manpages-dev: mmap(2) manpage doesn't say that MAP_ANON is not available if _XOPEN_SOURCE is defined
Reported by: Török Edwin <edwintorok@gmail.com>
Date: Thu, 20 Aug 2009 11:15:03 UTC
Severity: normal
Tags: fixed-upstream
Found in version manpages/3.22-1
Fixed in version manpages/3.51-1
Done: Simon Paillard <spaillard@debian.org>
Bug is archived. No further changes may be made.
Toggle useless messages
Report forwarded
to debian-bugs-dist@lists.debian.org, Martin Schulze <joey@debian.org>:
Bug#542601; Package manpages-dev.
(Thu, 20 Aug 2009 11:15:08 GMT) (full text, mbox, link).
Acknowledgement sent
to Török Edwin <edwintorok@gmail.com>:
New Bug report received and forwarded. Copy sent to Martin Schulze <joey@debian.org>.
(Thu, 20 Aug 2009 11:15:08 GMT) (full text, mbox, link).
Message #5 received at submit@bugs.debian.org (full text, mbox, reply):
Package: manpages-dev
Version: 3.22-1
Severity: normal
When _XOPEN_SOURCE is defined the glibc headers no longer define MAP_ANON or
MAP_ANONYMOUS (because _BSD_SOURCE is no longer defined by default).
So if I want to use both pread(2) and mmap(2) in same C source file,
I have to define both _XOPEN_SOURCE and _BSD_SOURCE to get the prototype
for pread *and* MAP_ANON for mmap(2).
The manpage of pread(2) does say that _XOPEN_SOURCE 500 is needed, but doesn't
say that this breaks mmap. mmap's manpage doesn't say that some constants
may not be available under _XOPEN_SOURCE.
Why is _XOPEN_SOURCE 500 even needed for pread? It is a POSIX function,
and defining _XOPEN_SOURCE is not needed for other POSIX functions.
Also the POSIX manpage for pread(3p) doesn't say that _XOPEN_SOURCE is needed,
so this seems like an unnecessary complication on Linux.
If pread(2) was available w/o _XOPEN_SOURCE being defined, then the problem
with using pread and mmap would no longer exist. I think this is rather a
question for glibc though.
-- System Information:
Debian Release: squeeze/sid
APT prefers unstable
APT policy: (990, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.30.4 (SMP w/4 CPU cores; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages manpages-dev depends on:
ii manpages 3.22-1 Manual pages about using a GNU/Lin
manpages-dev recommends no packages.
Versions of packages manpages-dev suggests:
ii konqueror [man-browser] 4:4.3.0-1 KDE 4's advanced file manager, web
ii man-db [man-browser] 2.5.5-3 on-line manual pager
-- no debconf information
Information forwarded
to debian-bugs-dist@lists.debian.org, Martin Schulze <joey@debian.org>:
Bug#542601; Package manpages-dev.
(Tue, 12 Feb 2013 20:45:03 GMT) (full text, mbox, link).
Acknowledgement sent
to mtk.manpages@gmail.com:
Extra info received and forwarded to list. Copy sent to Martin Schulze <joey@debian.org>.
(Tue, 12 Feb 2013 20:45:03 GMT) (full text, mbox, link).
Message #10 received at 542601@bugs.debian.org (full text, mbox, reply):
tags 542601 fixed-upstream
thanks
On Thu, Aug 20, 2009 at 1:02 PM, Török Edwin <edwintorok@gmail.com> wrote:
> Package: manpages-dev
> Version: 3.22-1
> Severity: normal
>
> When _XOPEN_SOURCE is defined the glibc headers no longer define MAP_ANON or
> MAP_ANONYMOUS (because _BSD_SOURCE is no longer defined by default).
>
> So if I want to use both pread(2) and mmap(2) in same C source file,
> I have to define both _XOPEN_SOURCE and _BSD_SOURCE to get the prototype
> for pread *and* MAP_ANON for mmap(2).
>
> The manpage of pread(2) does say that _XOPEN_SOURCE 500 is needed, but doesn't
> say that this breaks mmap. mmap's manpage doesn't say that some constants
> may not be available under _XOPEN_SOURCE.
>
> Why is _XOPEN_SOURCE 500 even needed for pread? It is a POSIX function,
> and defining _XOPEN_SOURCE is not needed for other POSIX functions.
> Also the POSIX manpage for pread(3p) doesn't say that _XOPEN_SOURCE is needed,
> so this seems like an unnecessary complication on Linux.
> If pread(2) was available w/o _XOPEN_SOURCE being defined, then the problem
> with using pread and mmap would no longer exist. I think this is rather a
> question for glibc though.
I applied the patch below upstream.
Thanks,
Michael
--- a/man2/mmap.2
+++ b/man2/mmap.2
@@ -49,6 +49,8 @@ mmap, munmap \- map or unmap files or devices into memory
.BI " int " fd ", off_t " offset );
.BI "int munmap(void *" addr ", size_t " length );
.fi
+
+See NOTES for information on feature test macro requirements.
.SH DESCRIPTION
.BR mmap ()
creates a new mapping in the virtual address space of
@@ -541,6 +543,36 @@ If the
flag is specified, and
.I addr
is 0 (NULL), then the mapped address will be 0 (NULL).
+
+Certain
+.I flags
+constants are defined only if either
+.BR _BSD_SOURCE
+or
+.BR _SVID_SOURCE
+is defined.
+(Requiring
+.BR _GNU_SOURCE
+also suffices,
+and requiring that macro specifically would have been more logical,
+since these flags are all Linux specific.)
+The relevant flags are:
+.BR MAP_32BIT ,
+.BR MAP_ANONYMOUS
+(and the synonym
+.BR MAP_ANON ),
+.BR MAP_DENYWRITE ,
+.BR MAP_EXECUTABLE ,
+.BR MAP_FILE ,
+.BR MAP_GROWSDOWN ,
+.BR MAP_HUGETLB ,
+.BR MAP_LOCKED ,
+.BR MAP_NONBLOCK ,
+.BR MAP_NORESERVE ,
+.BR MAP_POPULATE ,
+and
+.BR MAP_STACK .
+
.SH BUGS
On Linux there are no guarantees like those suggested above under
.BR MAP_NORESERVE .
--
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Author of "The Linux Programming Interface"; http://man7.org/tlpi/
Added tag(s) fixed-upstream.
Request was from "Michael Kerrisk (man-pages)" <mtk.manpages@gmail.com>
to control@bugs.debian.org.
(Tue, 12 Feb 2013 20:45:07 GMT) (full text, mbox, link).
Information forwarded
to debian-bugs-dist@lists.debian.org, Martin Schulze <joey@debian.org>:
Bug#542601; Package manpages-dev.
(Wed, 13 Feb 2013 12:39:03 GMT) (full text, mbox, link).
Acknowledgement sent
to Simon Paillard <spaillard@debian.org>:
Extra info received and forwarded to list. Copy sent to Martin Schulze <joey@debian.org>.
(Wed, 13 Feb 2013 12:39:03 GMT) (full text, mbox, link).
Message #17 received at 542601@bugs.debian.org (full text, mbox, reply):
On Tue, Feb 12, 2013 at 09:42:11PM +0100, Michael Kerrisk (man-pages) wrote:
> tags 542601 fixed-upstream
> thanks
FTR, it will be available in 3.48, and is:
45e97e2ac5b mmap.2: Some 'flags' values require a feature test macro to be defined
--
Simon Paillard
Added tag(s) pending.
Request was from Simon Paillard <spaillard@debian.org>
to control@bugs.debian.org.
(Tue, 05 Mar 2013 23:15:13 GMT) (full text, mbox, link).
Changed Bug submitter to 'Török Edwin <edwintorok@gmail.com>' from 'Török Edwin <edwintorok@gmail.com>'
Request was from Don Armstrong <don@debian.org>
to control@bugs.debian.org.
(Thu, 21 Mar 2013 21:27:46 GMT) (full text, mbox, link).
Reply sent
to Simon Paillard <spaillard@debian.org>:
You have taken responsibility.
(Thu, 23 May 2013 22:51:15 GMT) (full text, mbox, link).
Notification sent
to Török Edwin <edwintorok@gmail.com>:
Bug acknowledged by developer.
(Thu, 23 May 2013 22:51:15 GMT) (full text, mbox, link).
Message #26 received at 542601-close@bugs.debian.org (full text, mbox, reply):
Source: manpages
Source-Version: 3.51-1
We believe that the bug you reported is fixed in the latest version of
manpages, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to 542601@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Simon Paillard <spaillard@debian.org> (supplier of updated manpages package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@debian.org)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Format: 1.8
Date: Thu, 23 May 2013 23:05:10 +0200
Source: manpages
Binary: manpages manpages-dev
Architecture: source all
Version: 3.51-1
Distribution: unstable
Urgency: low
Maintainer: Martin Schulze <joey@debian.org>
Changed-By: Simon Paillard <spaillard@debian.org>
Description:
manpages - Manual pages about using a GNU/Linux system
manpages-dev - Manual pages about using GNU/Linux for development
Closes: 182014 235967 533232 542601 553413 575077 578178 620746 674034 676264 692136 699387 700529 704787 705293
Changes:
manpages (3.51-1) unstable; urgency=low
.
* Imported Upstream version 3.51:
. new manpages: kcmp.3 s390_runtime_instr.2 if_freenameindex.3
if_indextoname.3 if_nameindex.3 if_nametoindex.3 (Closes: #235967)
perf_event_open.2 getcontext.3 getdtablesize.3 pthread_getname_np.3
pthread_setname_np.3 setcontext.3 sln.8
fattach.2 fdetach.2 getmsg.2 getunwind.2 isastream.2
perfmonctl.2 putmsg.2 nss.5
. ttyname.3: Fix confused text in ERRORS (Closes: #676264)
. proc.5: Add field numbers for (Closes: #553413)
. read.2: Remove crufty text about O_NONBLOCK on files (Closes: #700529)
. read.2: Clarify interaction of count==0 and error check (Closes: #533232)
. getpeername.2: Clarify semantics of getpeername() for datagram
sockets (Closes: #674034)
. mmap.2: Some 'flags' values require a feature test macro to be
defined (Closes: #542601)
. resolver.3, resolv.conf.5: RES_DEBUG is only available if glibc is
compiled with debug support (Closes: #692136)
. stdarg.3: Describe va_copy() (Closes: #575077)
. futimes.3: ERRORS: Add ENOSYS for lutimes() (Closes: #620746)
. units.7: units should use an actual µ (Closes: #704787)
. access.2: Clarify RETURN VALUE for F_OK (Closes: #705293)
. resolv.conf.5: Document "single-request-reopen" option (Closes: #699387)
. bootparam.7: Document 'rootfstype' option (Closes: #182014)
. ioperm.2: Linux 2.6.8 lifted the port limit to 65,536 (Closes: #578178)
* d/rules: build-{arch,indep} as required by policy 3.9.4
* lintian overrides: FSSTND-dir-in-manual-page are alternate path
Checksums-Sha1:
f277d33dc4ae2e2824fd7f2d747ec18f272a0d59 1907 manpages_3.51-1.dsc
96c93e69f4e5db0952361b25db3eb3c19504ac1f 1828168 manpages_3.51.orig.tar.gz
beaf9204e88e4406e7afd7d6014e7ea7af620e2f 47215 manpages_3.51-1.diff.gz
db917de30d91a0382c32b8a71a57331eb0da7d40 823120 manpages_3.51-1_all.deb
3d8a2bba0b3c9cb0ef8e4ab545eb37b5b1bf1974 1803556 manpages-dev_3.51-1_all.deb
Checksums-Sha256:
bf5b05f49b85e86052694c2c80fc1a9119437c88b60f0606d786b301b1c6f07b 1907 manpages_3.51-1.dsc
f6639351a6a9e7fd9a82bae7dbefa8cb73557794e04a5d6a05bf8f64b8457bad 1828168 manpages_3.51.orig.tar.gz
0151dd7c6eeeae5f3e764b5a5ac03fa6a48e3c36eeaa19e550de2ccbf0cfb337 47215 manpages_3.51-1.diff.gz
fd60606aecff76039e414d9930b528900c90916f226ab61e24a1ce782de85916 823120 manpages_3.51-1_all.deb
ebf111927854d749bfe4b1b510fe4ac49b965ed3466795a0456c144de3e5311f 1803556 manpages-dev_3.51-1_all.deb
Files:
233eff29953c78f8c1257fda9f31a6d2 1907 doc important manpages_3.51-1.dsc
bed1627674356ec85492c5e94619b23d 1828168 doc important manpages_3.51.orig.tar.gz
3144b81732373b7f027c071c58f6c230 47215 doc important manpages_3.51-1.diff.gz
4df5993a51d7985a0a271d0a4bf19d79 823120 doc important manpages_3.51-1_all.deb
075aa05d2cae81593bf807ad5b56585f 1803556 doc optional manpages-dev_3.51-1_all.deb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
iQIcBAEBCAAGBQJRnplOAAoJEN/3OMLRbPuiX0EP/0++s6v9aB7OtKEXos4RnFbQ
SAOyHWgLaBJ7ui/nb0OfUHWhZ3DxfgkGQmcDw0EU86pvr5FAJinMKV0rJ7s4YacY
VxL5Ryw0VlvnTBWt017c2GgRxFtMUZFY3wvuvB4hJRCnjFujR3e8ARvDjmYTGr/0
xIP/5dMqEXJIKKFBdg3PDI1p+MqG5xapINBX2kegRI6bAWmEXq356JkIvGy2QuLU
OKkrFeKijgaij8ZPuwDqrq2Wax3wsB8Qn4RKM64zRZpilEDvRZZHBBHwpdDFl8rr
iIlFuXeC0fePVMefJ1u7T8X640hoFMNBcYU5lJdT4rHKPlqDJFIU+C9SlRH1kxYX
+0x4EgzOxzLZfXmP0FoQpeCC4kOqpLOteFHylLHFr9RItKHmFdvBiPCGTjuAb71c
dtPJLx+LgXoHagvOI9wc1aS6AAsVove1PRJtAaj7jNK5SJX+o0chT2rWXkw2HHYy
sJMLb5ePdwP15IsuUwkN8XDyWsnEfPyM+hIgoPByyNZolEsrzXKlpAl62I5cCI/D
8LHgLmAhKEsRwbvvy9EhgzV5+qAS5ABL6T1BB55ZRKZ8omkMq5AXeHGhgYwISeYp
AdM4DTI0kWZ7yNgrJxsIMtewPgR2pI1Cgf+B7xzZHfP94+ogSKEq/jdvgJEml9St
INgTr6jypYWrNIjoJenf
=cbGv
-----END PGP SIGNATURE-----
Bug archived.
Request was from Debbugs Internal Request <owner@bugs.debian.org>
to internal_control@bugs.debian.org.
(Mon, 01 Jul 2013 07:25:41 GMT) (full text, mbox, link).
Send a report that this bug log contains spam.
Debian bug tracking system administrator <owner@bugs.debian.org>.
Last modified:
Thu Mar 9 10:00:17 2023;
Machine Name:
buxtehude
Debian Bug tracking system
Debbugs is free software and licensed under the terms of the GNU
Public License version 2. The current version can be obtained
from https://bugs.debian.org/debbugs-source/.
Copyright © 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson,
2005-2017 Don Armstrong, and many other contributors.