Use uClibc para pacote único

0

Estou tendo alguns problemas usando as pesquisas busybox e dns. Eu encontrei uma queixa que isso é um problema da glibc. Eu estou no gentoo. Eu gostaria de compilar o busybox contra o uClibc, sem substituir o glibc no sistema.

Esclarecimento

Sistema host

Sistema Gentoo, pacotes construídos contra o glibc. Eu tenho o busybox instalado como um binário vinculado estaticamente à glibc. Editar: a arquitetura é x86_64, nomultilib.

Meta

Eu quero vincular o busybox ao uClibc, sem mexer na libc do sistema host. Eu prefiro conseguir isso usando as ferramentas nativas do gentoo, como o emerge. Mas sugestões que envolvem alguns scripts manuais também são bem-vindas. O host de destino é a mesma arquitetura.

Tentei

  1. use a opção emerge --root=/.. . Mas a vinculação ainda parece ser feita contra a glibc em /
  2. Use o projeto de prefixo do gentoo , mas acabo com outro estágio 3 baseado no glibc, em um prefixo caminho de instalação.
  3. Eu encontrei a opção gcc -Xlinker -rpath=/default/path/to/libraries -Xlinker -I/default/path/to/libraries/ld.so program.c . Mas eu não tenho idéia de como usar isso no make.conf ou do gentoo em uma construção baseada em make como busybox '.

Editar; Mais tentativas:

  1. Defina USE="-static no busybox para criar uma versão vinculada dinâmica. Encontre as dependências da biblioteca usando ldd /bin/busybox . Stangly, ldd não retorna nenhuma das nss*.so libs. Então copiei a imagem manualmente. Ainda assim, nslookup de ping example.com resultaria em um erro.
  2. Faça o download de um estágio do uClibc no link . Configure e re-construa o binário do busybox em um chroot. Isso funciona, mas é um exagero definitivo para a construção do binário ocupado de +/- 1MB vs um stage3 de 144MB.
por Tim 23.06.2018 / 20:05

0 respostas