This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH v2] [BZ #10283] localedef: align fixed maps to SHMLBA
- From: "Carlos O'Donell" <carlos at redhat dot com>
- To: Roland McGrath <roland at hack dot frob dot com>
- Cc: David Miller <davem at davemloft dot net>, vapier at gentoo dot org, libc-alpha at sourceware dot org
- Date: Tue, 28 May 2013 19:58:29 -0400
- Subject: Re: [PATCH v2] [BZ #10283] localedef: align fixed maps to SHMLBA
- References: <20130528194042 dot 1EF7B2C074 at topped-with-meat dot com> <20130528 dot 130721 dot 1721261559877509450 dot davem at davemloft dot net> <51A51186 dot 7070904 at redhat dot com> <20130528 dot 132601 dot 2200516495498570890 dot davem at davemloft dot net> <51A524FE dot 7040202 at redhat dot com> <20130528231403 dot 2C6C32C05D at topped-with-meat dot com>
On 05/28/2013 07:14 PM, Roland McGrath wrote:
>> It's unfortunate that POSIX doesn't say more than just:
>> "If MAP_FIXED is specified, the implementation may require that
>> addr is a multiple of the page size."
>>
>> Perhaps we'll get Issue 8 to say something about SHMLBA in the
>> non-normative RATIONALE section for mmap.
>
> If the reality is as Dave says, that some implementations will simply
> refuse MAP_FIXED attempts for page-aligned addresses that do not meet some
> other constraints, then the normative standard needs to provide some way
> for an application to find out how to meet those constraints. Otherwise
> MAP_FIXED is essentially useless for anything other than overwriting an
> existing mapping, and that means that the Linux implementations on some
> machines are nonconforming.
http://pubs.opengroup.org/onlinepubs/9699919799/functions/mmap.html
~~~
If MAP_FIXED is specified, the implementation may
require that addr is a multiple of the page size.
~~~
Thus addr must be aligned to N*<page size>, where N is implementation
specific.
Are you saying that glibc as an implementation assumes that N == 1?
Thus that PA/Linux and Sparc/Linux are all non-conforming implementations
because they require N > 1?
I might have considered PA/Linux to be a distinct implementation with
N = 1024 (since SHMLBA is 4MB there).
I agree that POSIX might change their wording to say that SHMLBA
is the right value to use, but I bet you'll never get the Austin Group
to agree to this kind of change without a lot of work.
Thus I'm happy to see some rationale text changes first :-)
Cheers,
Carlos.