(C) O LFS se esforça muito para construir um sistema linux com o menor número possível de conexões com a máquina de construção. Como resultado, algumas das etapas podem parecer desnecessárias, redundantes ou planejadas. Aqui está (um subconjunto do) processo CLFS que aborda a questão principal:
- Ch5: Cross binutils
- Ch5: 1ª passagem cruzada no GCC
- Ch5: Glibc (que pode ser usado por um compilador cruzado e nativo de destino), é instalado com o prefixo
/tools
- Ch5: segunda passagem cruzada gcc. O dynamic-linker-path-patch é aplicado aqui para apontar para
/tools
, que é um link simbólico para $CLFS/tools
, em que $ CLFS é a raiz do sistema de arquivos do destino.
- Ch6: Use a segunda passagem cruzada do gcc para criar um monte de novas ferramentas que serão nativas para o alvo, incluindo uma versão do gcc para ser executada nativa no alvo. Conspicuamente ausente desta lista é outra cópia da glibc. Isso não é necessário porque o que foi criado anteriormente está bom por enquanto.
- Ch10: Inicialize / chroot no sistema de destino, que agora tem
/tools
no mesmo local que sua máquina de construção. Isso permite que ferramentas construídas (como nativas) anteriormente acessem o vinculador dinâmico. Agora você vai fazer glibc novamente, mas desta vez ele vai para o padrão /usr
(em vez de /tools/usr
)
A raiz da pergunta tinha a ver com o caminho do vinculador dinâmico e com o fato de que ele aparece em relação à máquina de compilação. A resposta é basicamente que o OP (eu) não estava pensando em como havia um link simbólico entre / tools e ${CLFS}/tools
e que o patch foi aplicado para fazer / tools o caminho da raiz para o linker.
Não tenho resposta para a questão STANDARD_STARTFILE_PREFIX_X
.