>> I'm sorry I misread your question. I guess the correct reason would be >> /build/include/linux has a lot of header files that userspace programs >> wouldn't need and are internal to the kernel. >> > Thanks for the reply! > > but then what is the need for /usr/include/linux/*.h files ? Hi Sid, There are certain data structures and macro definitions that are common to both the kernel and userspace, libc and userspace program would need these definitions inorder to be able to talk to the kernel properly. Also `man 7 hier` though it doesn't directly answer your question can throw some light: /usr/include/linux This contains information which may change from system release to system release and used to be a symbolic link to /usr/src/linux/include/linux to get at operating system specific information. (Note that one should have include files there that work correctly with the current libc and in user space. However, Linux kernel source is not designed to be used with user programs and does not know anything about the libc you are using. It is very likely that things will break if you let /usr/include/asm and /usr/include/linux point at a random kernel tree. Debian systems don't do this and use headers from a known good kernel version, provided in the libc*-dev package.) take care, Joel -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ