Hi,
I am trying to compile klee-uclibc on an x86_64 system with the kernel
2.6.28-11 and I get a few errors.
Initially I got the an include conflict:
In file included from /usr/include/asm/posix_types.h:4,
from /usr/include/linux/posix_types.h:47,
from /usr/include/linux/types.h:5,
from /usr/include/linux/if_ether.h:24,
from ./include/netinet/if_ether.h:26,
from ./include/netinet/ether.h:26,
from libc/inet/ether_addr.c:31:
/usr/include/asm/posix_types_64.h:10: error: redefinition of typedef
'__kernel_ino_t'
./include/bits/kernel_types.h:11: error: previous declaration of
'__kernel_ino_t' was here
I fixed it by patching klee-uclibc/libc/sysdeps/linux/x86_64/bits/
kernel_types.h
This is obviously caused by a change of the kernel macros.
However, now I get another conflict:
CC libc/stdlib/_stdlib_strto_l_l.os
In file included from libc/stdlib/strtol_l.c:8:
libc/stdlib/stdlib.c:346: error: conflicting types for 'strtoll_l'
./include/stdlib.h:266: error: previous declaration of 'strtoll_l' was
here
libc/stdlib/stdlib.c:348: error: conflicting types for 'strtoll_l'
./include/stdlib.h:266: error: previous declaration of 'strtoll_l' was
here
I suspect these errors may be because of the newer kernel headers and
an older uclibc version. They most likely show up on 32 bit systems too.
Thus, I have three questions:
What kernel version did you use?
What is the diff between klee-uclibc and uclibc?
Is it is complicated to upgrade to the newest uclibc version?
Thanks,
Cristi