This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH v2] [BZ #10283] localedef: align fixed maps to SHMLBA


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]