From sources as of 2012-11-25 at 04:54:05 UTC...
A 'build.sh release' for evbarm-eb fails with the following error:
cc1: warnings being treated as errors
In file included from ./machine/lock.h:3:0,
from
/build/netbsd-local/src/lib/librump/../../sys/rump/../sys/simplelock.h:80,
from ./arm/arm32/vmparam.h:48,
from ./machine/vmparam.h:37,
from
/build/netbsd-local/src/lib/librump/../../sys/rump/../uvm/uvm_param.h:76,
from
/build/netbsd-local/src/lib/librump/../../sys/rump/../sys/param.h:141,
from
/build/netbsd-local/src/lib/librump/../../sys/rump/../lib/libkern/arc4random.c:54:
./arm/lock.h:78:1: error: type qualifiers ignored on function return type
*** [arc4random.pico] Error code 1
sys/arch/arm/include/lock.h contains the following function definition:
#if defined(_KERNEL)
static __inline __cpu_simple_lock_t
__swp(__cpu_simple_lock_t __val, volatile __cpu_simple_lock_t *__ptr)
{
...
}
#else
static __inline int
__swp(int __val, volatile int *__ptr)
{
...
}
And, in sys/arch/arm/include/types.h we have:
#if defined(_KERNEL)
typedef volatile unsigned char __cpu_simple_lock_t;
#else
typedef volatile int __cpu_simple_lock_t;
#endif /* _KERNEL */
It would seem that, when _KERNEL is defined, we are unable to have the inline
function return a volatile value?
Should the definition of __swp() in lock.h be changed to
#if defined(_KERNEL)
static __inline unsigned char
__swp(__cpu_simple_lock_t __val, volatile __cpu_simple_lock_t *__ptr)
{
to remove the volatile attribute?