Hello Truong,
ok, now that makes sense. On Ubuntu 11.04, the includes have moved to the 'i386-linux-gnu' subdirectory. When compiling components that use the Linux syscall bindings, we tell the compiler to use the standard include search locations. This works because the Genode tool chain is actually a Linux tool chain. However, at the time when the Genode tool chain was built, those standard include paths did not comprise the 'i386-linux-gnu' subdirectory. So this directory is not searched for includes.
There is a quick fix and a real fix for this problem. The quick fix is the patch attached to this email. The patch adds the new include search location manually to the search paths. Could you please give it a try? If it works for you, I will commit it to our public SVN. If it does not work, could you please post the lines of the log preceding the actual error message?
The real fix would be to use a non-Linux tool chain in the first place and let the Genode build system handle the include-search paths explicitly (rather than relying on gcc's built-in heuristics). This is one topic I am currently working on. I expect that the tool chain will become part of the next release scheduled for November.
Best regards Norman