$ gcc -x c -c -o test.o /usr/include/asm/bitops.h
$ gcc -x c++ -c -o test.o /usr/include/asm/bitops.h
/usr/include/asm-generic/bitops/fls64.h: In function 'int fls64(__u64)':
/usr/include/asm-generic/bitops/fls64.h:10: error: 'fls' was not declared in 
this scope
/usr/include/asm-generic/bitops/fls64.h:11: error: 'fls' was not declared in 
this scope

Firstly, why is this package using a C++ compiler for what on the face
of it looks like C code?

Secondly, <asm-i486/bitops.h> defines fls() only if __KERNEL__ is
defined but always includes <asm-generic/bitops/fls64.h>, which defines
fls64() in terms of fls().  A C compiler will accept this use of fls()
as an implicit declaration - though the function is never defined - but
a C++ compiler will not.  This seems like a bug in linux-kernel-headers.

Ben.

-- 
Ben Hutchings -- [EMAIL PROTECTED] shortened to [EMAIL PROTECTED]
If you've signed my GPG key, please send a signature on and to the new uid.
Tomorrow will be cancelled due to lack of interest.

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to