[x264-devel] bug in common/cpu.c

Anders Brownworth abrownworth-videolan-x264 at bandwidth.com
Wed Jul 18 17:06:36 CEST 2007


Loïc Le Loarer wrote:
> Hi,
>
> Anders Brownworth wrote:
>   
>> Guillaume Poirier wrote:
>>     
>>> Anders Brownworth wrote:
>>>   
>>>       
>>>> I ran into a compile error in common/cpu.c in the 
>>>> x264-snapshot-20070717-2245 source. Patch to fix is:
>>>>
>>>> 214c214
>>>> <     sched_getaffinity( 0, sizeof(p_aff), &p_aff );
>>>> ---
>>>>  >     sched_getaffinity( sizeof(p_aff), &p_aff );
>>>>
>>>>
>>>>     
>>>>         
>>> On which Operating System did you experience this problem?
>>> No problem here on OSX and Linux.
>>>
>>> Guillaume
>>>       
>> This is Linux 2.6.18 - Gentoo flavor. Error was:
>>
>> gcc -O4 -ffast-math  -Wall -I. -DHAVE_MALLOC_H -DHAVE_MMX -DARCH_X86 
>> -DSYS_LINUX -DHAVE_PTHREAD -s -fomit-frame-pointer   -c -o common/cpu.o 
>> common/cpu.c
>> common/cpu.c: In function `x264_cpu_num_processors':
>> common/cpu.c:214: warning: passing arg 2 of `sched_getaffinity' makes 
>> pointer from integer without a cast
>> common/cpu.c:214: error: too many arguments to function `sched_getaffinity'
>> make: *** [common/cpu.o] Error 1
>>
>> On a hunch I eliminated the first param, recompiled and it worked. Where 
>> is sched_getaffinity defined?
>>     
>
> It is a system called (so handled by the kernel) but defined by the
> glibc. According to the man page, the prototype depends on the glibc
> version:
>
> HISTORY
> The CPU affinity system calls were introduced in Linux kernel 2.5.8.
> The library interfaces were  introduced  in  glibc  2.3.  Initially,
> the glibc  interfaces included  a  cpusetsize  argument.  In  glibc
> 2.3.2, the cpusetsize argument was removed, but this argument was
> restored in glibc 2.3.4.
>
> Can you check that you use glibc version 2.3.2 or 2.3.3 ?
>
> On this glibc versions, the correct patch is not to remove the first but
> the second argument:
> 214c214
> <     sched_getaffinity( 0, sizeof(p_aff), &p_aff );
> ---
>   
>>     sched_getaffinity( 0, &p_aff );
>>     
>
> Best regards.
>   
> ------------------------------------------------------------------------
>
> _______________________________________________
> x264-devel mailing list
> x264-devel at videolan.org
> http://mailman.videolan.org/listinfo/x264-devel
>   


Thanks. This box is glibc 2.3.2. Much appreciated.

-Anders

_______________________________________________
x264-devel mailing list
x264-devel at videolan.org
http://mailman.videolan.org/listinfo/x264-devel


More information about the x264-devel mailing list