Messages in this thread | | | From | Ulrich Drepper <> | Date | Mon, 30 Nov 2009 08:37:04 -0800 | Subject | using kernel headers in libc headers |
| |
The kernel headers nowadays are cleaned up to separate in-kernel definitions from those that are exported. That's of course good but it's unfortunately not sufficient to use (most of) the headers in glibc.
Take <linux/sched.h> for instance. The <sched.h> header is defined in POSIX and therefore the specify which symbols can be defined in which configuration. The <linux/sched.h> defines all kinds of symbols, though, unconditionally. If you compare it with the glibc header you'd see that all the CLONE_* symbols and some of the SCHED_* symbols are only defined in certain configurations (non-POSIX configurations).
It's likely in everybody's interest to get the kernel headers used. But for this mode #ifdefs are needed. I'm willing to do the work. Easy enough to do when I'm going through the headers one-by-one to enable them in glibc. But I don't want to start this work unless it's going to be accepted. The symbols would be something like
__USE_MISC
or
__USE_GNU
These are not macros which the user must define. The user sets macros like _GNU_SOURCE etc which then set all the appropriate __USE_* macros (see "info libc 'Feature Test Macros'" on machines with glibc installed). These names are somewhat glibc-specific but other libcs can (or already have) adapt them.
So, what do you say?
| |