A primeira linha da sua mensagem não está relacionada ao seu problema e está relacionada aos requisitos de compilação da glibc (não à interface compilada), mas a segunda linha é o seu problema.
À primeira vista, você está usando a variável errada para definir sua versão mínima do kernel. Tente definir NPTL_KERN_VER
no make.conf. A ebuild usa esse nome de variável e define o padrão como 2.6.16. De /usr/portage/sys-libs/glibc/glibc-2.16.0.ebuild
:
NPTL_KERN_VER=${NPTL_KERN_VER:-"2.6.16"} # min kernel version nptl requires
Esta também é a variável que é passada para configure
no arquivo /usr/portage/sys-libs/glibc/files/eblits/src_compile.eblit
:
myconf+=( --enable-kernel=${NPTL_KERN_VER} )
Observe que essa variável de configuração também pode ser definida para a variável LT_KER_VER
if linuxthreads
é a opção de threading vs nptl
.
Você informa, no entanto, que está vendo --enable-kenrel=2.6.9
, o que significa que você está configurando a variável corretamente e, talvez, a desorientando em sua postagem.
Isso nos leva aos scripts de configuração e ao arquivo glibc/sysdeps/unix/sysv/linux/configure.in
, onde o teste é feito para a versão mínima do kernel. O teste é:
if test -n "$minimum_kernel"; then
changequote(,)
user_version=$(('echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/ \* 65536 + \ * 256 + /''))
arch_version=$(('echo "$arch_minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/ \* 65536 + \* 256 + /''))
changequote([,])
if test $user_version -lt $arch_version; then
AC_MSG_WARN([minimum kernel version reset to $arch_minimum_kernel])
minimum_kernel=$arch_minimum_kernel
fi
else
minimum_kernel=$arch_minimum_kernel
fi
em que $minimum_kernel
é o valor fornecido para configure
, por ex. 2.6.9
e $arch_minimum_kernel
é 2.4.0
definiu algumas linhas acima deste snippet. O que é confuso agora é que, quando avaliado:
user_version=132617 (from 2.6.9)
arch_version=132096 (from 2.4.0)
test 132617 -lt 132096 (FALSE)
que deve resultar em minimum_kernel
inalterado. Em vez disso, o que está acontecendo é que você está acionando o aviso e a versão está sendo redefinida para $arch_minimum_kernel
, que é declaradamente 2.6.16 no seu caso. Não consigo encontrar uma referência a $arch_minimum_kernel
sendo definido para esse valor em outro lugar no código da glibc ou no conjunto de padrões do gentoo, portanto, não tenho certeza do que está acontecendo no seu caso.
Quando executo configure
manualmente com a linha de comando:
../glibc/configure --enable-kernel=2.6.9 --prefix=/usr
ele é executado com sucesso com isso na saída:
checking for kernel header at least 2.6.9... ok
Parece que algo é diferente para você e estou tentando ver se consigo encontrar um patch que possa estar aplicando um arch_minimum_kernel
diferente para você ou talvez em um arquivo que ignorei.
UPDATE
Eu localizei uma possível fonte de 2.6.16 sendo sua versão mínima. Essa versão do kernel está definida como arch_minimum_kernel
para a arm
port no arquivo glibc-ports-2.16.0/sysdeps/unix/sysv/linux/arm/configure.in
. Por favor, verifique se você não estragou o seu alvo ARCH e está de fato compilando para o i686, já que você não deveria estar vendo essa versão. Esta é a única referência à versão do kernel (2.6.16) que eu posso encontrar nos arquivos baixados pelo gentoo (glibc, glibc-ports e gentoo patches).