We are trying to build userland apps with the newer kernel headers.
Unexpected problems occur with the "static inline" declaration
when "-ansi" option is used.
Anybody else is having the problem?
Also, what are the reasons for us to switch to "static inline" in the
kernel header?
Here is an example I am talking about:
In 2.4.2, we have in bitops.h:
extern __inline__ unsigned long ffz(unsigned long word)
In 2.4.17, we have instead:
static inline unsigned long ffz(unsigned long word)
This problem seems only happening with gcc 3.x. I start to wonder
whether we should fix kernel header. In some case, the fix seems
to be not exposing to userland (by #ifdef __KERNEL__). In others,
the fix might be using __inline__.
However, I really like to know what was the original motivation
to do such a change.
BTW, the inclusion of "mipsregs.h" file in bitops.h seems unnecessary
and caused a bunch of similar errors.
Jun
|