Você pode definitivamente compilar uma nova versão do GLIBC e armazená-lo em um diretório separado. A primeira coisa que você terá que fazer é baixar a versão do glibc que você quer do link .
Execute o script configure
e defina o --prefix=
para algo como /home/you/mylibs
.
Depois que você conseguir instalá-lo nesse diretório, você terá que definir seu LD_LIBRARY_PATH
para o local do novo glibc.
Você precisará descobrir as dependências necessárias para compilar. Você pode criar um script de shell que defina as variáveis LD_ * e execute o programa (o que você precisaria fazer de qualquer maneira), e execute-o repetidamente - faça o download / recompilação de lobs perdidos ao longo do caminho.
Você também pode usar ldd
para determinar quais bibliotecas compartilhadas o programa precisa, então use ldd
em cada uma das bibliotecas para descobrir se elas precisam da glibc.
Este pode ser um processo muito demorado e não é para o impaciente ou fraco de coração - percorrer / recompilar o seu caminho através das possíveis dependências necessárias para tornar a sua aplicação o trabalho pode ocasionalmente fazer você querer arrancar o cabelo.
Atualização 1:
Eu baixei o glibc-2.4 e tentei compilá-lo no CentOS 6. Para fazer com que o configure
funcionasse corretamente, tive que alterar as verificações do ac
e ld
version alterando:
2.1[3-9]*)
para:
2.*)
nas linhas 4045
e 4106
no próprio arquivo configure
. Eu configurei minhas variáveis de ambiente * FLAGS da seguinte forma:
LDFLAGS="-Wl,--sort-common -Wl,-zcombreloc -Wl,-znow"
CFLAGS="-pipe -fomit-frame-pointer -g1 -O3 -frename-registers -fweb -ftracer -fmodulo-sched -fvariable-expansion-in-unroller -fgcse-sm"
CXXFLAGS="${CFLAGS}"
CFLAGS="${CFLAGS} -freorder-blocks-and-partition"
export LDFLAGS CFLAGS CXXFLAGS
e, em seguida, executou ./configure --prefix=/home/tim/masochist
. Ele configurou corretamente ... e ele começou a construir corretamente também ... mas depois comecei a executar erros - principalmente o compilador reclamando sobre as coisas sendo redefinidas.
Nesse momento eu desisti ... porque estava se tornando muito demorado . ;)