[FFmpeg-devel] [PATCH] libswscale: Fix the anonymous memory mapping in sws_GetContext for NetBSD when MMX2 optimisations are enabled.

Ramiro Polla ramiro.polla
Fri Aug 20 01:49:31 CEST 2010


On Thu, Aug 19, 2010 at 7:37 PM, Michael Niedermayer <michaelni at gmx.at> wrote:
> On Thu, Aug 19, 2010 at 12:47:22PM +0200, Grant Carver wrote:
>> > On Thu, Aug 19, 2010 at 08:19:24AM +0200, Grant Carver wrote:
>> > > Hi there
>> > >
>> > > Creation of a swscale context was failing on NetBSD due to the
>> > > anonymous mmap call failing. It seems that if the MAP_ANONYMOUS flag
>> > > is specified some BSD flavours require the file descriptor to be -1,
>> > > whilst on linux this parameter is just ignored.
>> >
>> > where is this documented or is it a bug?
>>
>> The man page for NetBSD
>> (http://netbsd.gw.com/cgi-bin/man-cgi?mmap++NetBSD-current) and FreeBSD
>> (http://nixdoc.net/man-pages/FreeBSD/mmap.2.html) contain the following:
>>
>> ----
>> mmap() will fail if:
>> ....
>> [EINVAL] ?MAP_FIXED was specified and the addr parameter was not
>> ? ? ? ? ? page aligned or was outside of the valid address range
>> ? ? ? ? ? for a process. ?MAP_ANON was specified and fd was not
>> ? ? ? ? ? -1.
>
> ok, then chaning them to -1 is probably ok.

Applied.

> you might want to mail the linux mmap manpage maintainers they could add a
> note about portability (or start a flamewar about which way is right :)))

man mmap on ubuntu already says:
MAP_ANONYMOUS
       The mapping is not backed by any file; its contents are initial?
       ized to zero.  The fd and offset arguments are ignored; however,
       some implementations require fd to be -1  if  MAP_ANONYMOUS  (or
       MAP_ANON)  is specified, and portable applications should ensure
       this.  The use of MAP_ANONYMOUS in conjunction  with  MAP_SHARED
       is only supported on Linux since kernel 2.4.

It is likely a flamewar has already occurred =)



More information about the ffmpeg-devel mailing list