Debian GNU/Any -------------- We are trying to abstract the userland from the running kernel with glibc, so binaries would be binary compatible with any kernel supported on GNU/Any through the glibc abstraction. TODO ~~~~ * multiarch support - /lib/<kernel>-<cpu> - /lib/<cpu> * new ELF kernel id (note.ABI-tag and on some cases OSABI) * kernels support for new ELF kernel id * binutils support for new ELF kernel id * new config.* triplet: <arch>-pc-any<version>-gnu * glibc should not export any kernel header to userspace - step 1: make all kernel headers show a #warning - step 2: make all kernel headers show an #error - step 3: define kernel independent headers to be used by glibc * glibc abi unification - same soname - same versioned symbols * each kernel should use the proper linker on the same system, possible solutions: - passing KERNEL env var to the linker. - mapping ld.so to ld-<kernel>.so - implement some kind of pattern that the kernel would expand. for example: ld-%k-%c.so -> ld-kfreebsd-i386.so * catalog (almost) generic source, and kernel dependent one * create kernel wrapper libs to be able to write portable code (those should go into <kernel>-<cpu> bound dirs, ex: - libps - libblockdev - libpmount - libsound - libcdrom - ... * start moving <cpu> only bound libs into <cpu> hieararchy