Eles estão ligados um ao outro, de certa forma.
- O kernel em que você está executando foi compilado com uma libc específica.
- A libc que você tem foi compilada para suportar apenas kernels acima de uma versão específica.
Então, se você está instalando os pacotes do kernel e os pacotes libc dos repositórios do Ubuntu, ao invés de compilá-los você mesmo, você está preso ao dilema acima.
No que diz respeito à libc, uma maneira de fazer o que você propõe é compilar o kernel 12.04 a partir do source em 8.04 , ligando-o assim ao 8.04 libc. Então você usa esse kernel personalizado para inicializar o 12.04, sobre o qual você compila a versão da libc que está no 8.04, também a partir do código-fonte. Você instala isso e seus aplicativos devem compartilhar a mesma versão 8.04 libc.
Suponho que você também esteja ciente de que quaisquer outras bibliotecas 12.04 com as quais seu aplicativo está vinculado podem não estar disponíveis em 8.04, então você terá que compilá-las a partir da fonte também ...
Para resumir, é melhor apenas compilar em 8.04 .