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