I'm trying to compile GlibC on a Fedora 3 box for a user-mode-linux kernel. The box kernel is 2.6.5-1.358 and the UML kernel is 2.6.8.1.
My GlibC source is in /usr/local/src/glibc-2.3.3/ and I'm building in /usr/local/src/glibc-2.3.3/build
My configure command line is ../configure --enable-add-ons=linuxthreads --enable-kernel=2.6.8.1 --with-headers=/lib/modules/2.6.8.1/build/include/ --prefix=/usr
I can run configure just fine but when I run make I get the following errors:
In file included from /lib/modules/2.6.8.1/build/include/linux/syscalls.h:58,
from /lib/modules/2.6.8.1/build/include/asm/unistd.h:9,
from sysdeps/unix/sysv/linux/sys/syscall.h:25,
from sysdeps/unix/sysdep.h:21,
from sysdeps/unix/i386/sysdep.h:19,
from sysdeps/unix/sysv/linux/i386/sysdep.h:24,
from <stdin>:1:
/lib/modules/2.6.8.1/build/include/linux/list.h:699:2: warning: #warning "don't include kernel headers in userspace"
In file included from /lib/modules/2.6.8.1/build/include/asm/processor-generic.h:14,
from /lib/modules/2.6.8.1/build/include/asm/processor.h:22,
from /lib/modules/2.6.8.1/build/include/asm/thread_info.h:11,
from /lib/modules/2.6.8.1/build/include/linux/thread_info.h:21,
from /lib/modules/2.6.8.1/build/include/linux/spinlock.h:12,
from /lib/modules/2.6.8.1/build/include/linux/quota.h:40,
from /lib/modules/2.6.8.1/build/include/linux/syscalls.h:63,
from /lib/modules/2.6.8.1/build/include/asm/unistd.h:9,
from sysdeps/unix/sysv/linux/sys/syscall.h:25,
from sysdeps/unix/sysdep.h:21,
from sysdeps/unix/i386/sysdep.h:19,
from sysdeps/unix/sysv/linux/i386/sysdep.h:24,
from <stdin>:1:
/lib/modules/2.6.8.1/build/include/asm/ptrace.h:9:27: sysdep/ptrace.h: No such file or directory
The last message "No such file or directory" goes on for page after page after page. I did a locate and I found the missing files in /lib/modules/2.6.8.1/build/arch/um/include/ which is what I built the kernel under. So I ran the following command:
../configure --enable-add-ons=linuxthreads --enable-kernel=2.6.8.1 --with-headers=/lib/modules/2.6.8.1/build/include/ --prefix=/usr --includedir=/lib/modules/2.6.8.1/build/arch/um/
That didn't work so I tried
../configure --enable-add-ons=linuxthreads --enable-kernel=2.6.8.1 --with-headers=/lib/modules/2.6.8.1/build/include/ --prefix=/usr CPPFLAGS='-I/lib/modules/2.6.8.1/build/arch/um/include/'
That command at least put the include directory in the config files, but I'm still getting "No such file or directory" error.
So, how do I get make to tell cc that the files it's looking for is in /lib/modules/2.6.8.1/build/arch/um/?
Thanks
Kevin