On Fri, 1 Aug 2003, Michael Hohmuth wrote:
Sarah Hoffmann sh18@os.inf.tu-dresden.de writes:
I was able to reproduce the bug with on SUSE 7.3. For some reason functions that are declared 'inline NOEXPORT' won't get compiled at all. [...]
This could also be a problem with `preprocess' or the Perl interpreter it uses. Could you try the following:
Preprocess output is fine. The problem lies in how gcc 2.95.3 handles inlined member functions. Obviously they are automaticly 'inline extern' so if the function can't be inlined there is still no code generated. With the standard gcc 2.95.3 this was not a problem because it always respects the inline directive. SuSEs gcc is a bit more picky and refuses to inline some functions because they are too big.
I might find a way to tweak SuSE to produce correct code but I'm afraid we will run again into this problem sooner or later with another distribution.
David, I strongly recommend that you install a newer complier preferably gcc 3.2.x. (There are still some open issues with gcc 3.3 in L4 userland.) The kernel without inlined code is not really tested and you soon might run into problems with kernel stack overflows.
Cheers
Sarah