Debian Bug report logs - #542601
manpages-dev: mmap(2) manpage doesn't say that MAP_ANON is not available if _XOPEN_SOURCE is defined

version graph

Package: manpages-dev; Maintainer for manpages-dev is Martin Schulze <joey@debian.org>; Source for manpages-dev is src:manpages.

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

View this report as an mbox folder, status mbox, maintainer mbox


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 and rfc822 format available.

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 and rfc822 format available.

Message #5 received at submit@bugs.debian.org (full text, mbox):

From: Török Edwin <edwintorok@gmail.com>
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: manpages-dev: mmap(2) manpage doesn't say that MAP_ANON is not available if _XOPEN_SOURCE is defined
Date: Thu, 20 Aug 2009 14:02:50 +0300
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 and rfc822 format available.

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 and rfc822 format available.

Message #10 received at 542601@bugs.debian.org (full text, mbox):

From: "Michael Kerrisk (man-pages)" <mtk.manpages@gmail.com>
To: Török Edwin <edwintorok@gmail.com>, 542601@bugs.debian.org
Cc: control@bugs.debian.org
Subject: Re: Bug#542601: manpages-dev: mmap(2) manpage doesn't say that MAP_ANON is not available if _XOPEN_SOURCE is defined
Date: Tue, 12 Feb 2013 21:42:11 +0100
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 and rfc822 format available.

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 and rfc822 format available.

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 and rfc822 format available.

Message #17 received at 542601@bugs.debian.org (full text, mbox):

From: Simon Paillard <spaillard@debian.org>
To: 542601@bugs.debian.org
Subject: Re: Bug#542601: manpages-dev: mmap(2) manpage doesn't say that MAP_ANON is not available if _XOPEN_SOURCE is defined
Date: Wed, 13 Feb 2013 13:32:07 +0100
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 and rfc822 format available.

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 and rfc822 format available.

Reply sent to Simon Paillard <spaillard@debian.org>:
You have taken responsibility. (Thu, 23 May 2013 22:51:15 GMT) Full text and rfc822 format available.

Notification sent to Török Edwin <edwintorok@gmail.com>:
Bug acknowledged by developer. (Thu, 23 May 2013 22:51:15 GMT) Full text and rfc822 format available.

Message #26 received at 542601-close@bugs.debian.org (full text, mbox):

From: Simon Paillard <spaillard@debian.org>
To: 542601-close@bugs.debian.org
Subject: Bug#542601: fixed in manpages 3.51-1
Date: Thu, 23 May 2013 22:48:40 +0000
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 and rfc822 format available.

Send a report that this bug log contains spam.


Debian bug tracking system administrator <owner@bugs.debian.org>. Last modified: Thu Apr 24 02:18:47 2014; Machine Name: buxtehude.debian.org

Debian Bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.