On Sat, Feb 19, 2011 at 2:13 PM, Andreas Färber andreas.faerber@web.de wrote:
Am 19.02.2011 um 12:43 schrieb Aurelien Jarno:
Given openbios overrides <asm/types.h> with its own version, it should provides at least the same types for the included kernel headers. This fixes the following build failure:
| HOSTCC host/kernel/bootstrap.o | In file included from /usr/include/asm/ptrace.h:28, | from /usr/include/asm/sigcontext.h:12, | from /usr/include/bits/sigcontext.h:29, | from /usr/include/signal.h:340, | from ../kernel/bootstrap.c:14: | /usr/include/linux/types.h:27: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__le16' | /usr/include/linux/types.h:28: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__be16' | /usr/include/linux/types.h:29: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__le32' | /usr/include/linux/types.h:30: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__be32' | /usr/include/linux/types.h:31: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__le64' | /usr/include/linux/types.h:32: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__be64' | /usr/include/linux/types.h:34: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__sum16' | /usr/include/linux/types.h:35: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__wsum' | In file included from /usr/include/asm/sigcontext.h:12, | from /usr/include/bits/sigcontext.h:29, | from /usr/include/signal.h:340, | from ../kernel/bootstrap.c:14: | /usr/include/asm/ptrace.h:201: error: expected specifier-qualifier-list before '__u32' | In file included from /usr/include/asm/sigcontext.h:12, | from /usr/include/bits/sigcontext.h:29, | from /usr/include/signal.h:340, | from ../kernel/bootstrap.c:14: | /usr/include/asm/ptrace.h:223: error: expected specifier-qualifier-list before '__u32' | make[1]: *** [host/kernel/bootstrap.o] Error 1
Signed-off-by: Aurelien Jarno aurelien@aurel32.net
--- a/include/arch/ppc/types.h +++ b/include/arch/ppc/types.h @@ -75,4 +75,10 @@ typedef short s16; typedef int s32; typedef long long s64;
+/* Needed by kernel includes */ +typedef u8 __u8; +typedef u16 __u16; +typedef u32 __u32; +typedef u64 __u64;
#endif
Looks fine to me.
Acked-by: Andreas Färber andreas.faerber@web.de
Do you have commit rights here or should I apply it?
I think we should rather try to avoid same file names. We can't be compatible with every userland header out there, including non-Linux systems which may also have asm/types.h. So I'd rename the files or the link 'asm'.
For standard libc stuff which we provide (printf, strcpy etc), the opposite situation exists, since our libc headers are not used at the same time as host's. The libc APIs should be compatible.