linux-mips
[Top] [All Lists]

gcc 3.x, -ansi and "static inline"

To: linux-mips@oss.sgi.com
Subject: gcc 3.x, -ansi and "static inline"
From: Jun Sun <jsun@mvista.com>
Date: Fri, 1 Feb 2002 11:52:06 -0800
Sender: owner-linux-mips@oss.sgi.com
User-agent: Mutt/1.2.5i
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

<Prev in Thread] Current Thread [Next in Thread>