Criando um sistema LFS usando ELLCC

1

Em primeiro lugar, esta não é minha primeira tentativa de construir um sistema LFS - eu já construí o LFS 7.8 e o LFS 7.8-systemd com sucesso.

Eu gostaria de substituir o GCC + GlibC por ELLCC , que é o Clang / LLVM + musl.

Ele tem algumas limitações - a mais notável delas é que atualmente falta suporte para links dinâmicos - mas o fim pretendido é um compilação cross-compiled (ou melhor, compilado no dispositivo) armhf LFS, como parte de uma experiência em substituir completamente o Android por Linux em um antigo dispositivo meu, então a eficiência dos binários gerou problemas (daí o motivo pelo qual estou interessado em usar o ELLCC.)

A verdadeira questão é, como eu faria isso? Simplesmente substituir o GCC e o GlibC por ELLCC não me deixará passar pela instalação dos cabeçalhos da API do Linux. Eu posso compilar alguns programas da fonte separadamente, mas eles sempre acabam confiando no sistema host de uma maneira ou de outra.

    
por Forrest Carroll 29.01.2016 / 01:56

1 resposta

1

Você está certo - simplesmente trocar os toolchains não fará com que funcione magicamente.

Como um usuário experiente, posso dizer que isso não funcionará "fora da caixa". Muitos, muitos programas ainda requerem casos especiais que a glibc apenas fornece que nem sequer estão em destaque, e especialmente muitos programas de projeto GNU nem mesmo compilarão sem a presença da glibc.

O grande trabalho de consertar programas populares, mas quebrados, atualmente está em andamento, e você pode monitorar e participar se quiser. Existem projetos como sabotage linux que geram patches para tais programas para fazê-los funcionar com musl (e outras libcs menos conhecidas como bem, então se você for corajoso o suficiente, você pode tentar consertar grandes quebras de construção com a ajuda desses projetos.

Para simplificar o trabalho do LFS, você provavelmente acabará invadindo o livro. (De volta a 2009, quando eu criei o LFS da última vez, lembro que ainda havia instruções inexplicadas que funcionavam em torno de alguns casos especiais da glibc)

Como alternativa, você pode tentar:

  • CLFS incorporado , que substituiu o glibc por musl. Você pode mesclar os dois livros para criar algo que funcione na sua situação. Embora omita completamente o software GNU clássico.
  • Use uma dessas novas distribuições Linux baseadas em musl disponíveis. Como exemplos, posso nomear sabotagem e alpina, mas musl wiki cita mais. Pelo menos você pode criar binários no host e tentar importá-los para o seu dispositivo.

Como você está tentando construir binários para plataformas embarcadas, eu sugiro que você não interfira com o software GNU, mas tente alternativas leves em vez disso.

    
por 29.01.2016 / 05:20