ELLCC를 활용한 LFS 시스템 구축

ELLCC를 활용한 LFS 시스템 구축

우선, 이것은 LFS 시스템 구축에 대한 나의 첫 번째 시도는 아닙니다. 저는 LFS 7.8 및 LFS 7.8-systemd를 성공적으로 구축했습니다.

GCC+GlibC로 바꾸고 싶습니다엘렉, 즉 Clang/LLVM+musl입니다.

여기에는 몇 가지 제한 사항이 있습니다. 특히 현재 동적 연결에 대한 지원이 부족합니다. 그러나 예상되는 결과는 내 이전 장치에 대한 실험의 일부로 armhf LFS 빌드를 크로스 컴파일(또는 더 나은 방법으로는 장치 내 컴파일)하는 것입니다. 장치는 완전히 Android를 Linux로 대체하므로 바이너리의 효율성이 중요합니다(이것이 제가 ELLCC 사용에 관심을 갖는 이유입니다.)

진짜 질문은 어떻게 해야 하느냐는 것입니다. 단순히 GCC와 GlibC를 ELLCC로 교체해도 Linux API 헤더 설치를 건너뛸 수 없었습니다. 일부 프로그램은 소스만으로 컴파일할 수 있지만 결국 어떤 방식으로든 호스트 시스템에 종속되게 됩니다.

답변1

당신 말이 맞습니다. 단순히 툴체인을 바꾸는 것만으로는 마술처럼 작동하지 않습니다.

숙련된 musl 사용자로서 나는 이것이 "즉시" 작동하지 않을 것이라고 말할 수 있습니다. 많은 프로그램은 여전히 ​​glibc에서만 제공되고 musl에서는 사용할 수 없는 특수한 경우를 요구합니다.특히glibc가 없으면 많은 GNU 프로젝트 프로그램이 컴파일조차 되지 않습니다.

인기가 있지만 문제가 있는 프로그램을 고치기 위한 대대적인 노력이 현재 진행 중이며, 원하는 경우 모니터링하고 참여할 수 있습니다. 이런 프로젝트도 있어요리눅스를 깨다이는 이러한 프로그램이 musl(및 덜 알려진 기타 libcs)과 작동할 수 있도록 패치를 생성하므로 용기가 있다면 이러한 프로젝트의 도움으로 주요 빌드 중단을 수정하려고 시도할 수 있습니다.

아마도 일반 LFS가 작동하도록 하기 위해 이 책을 상당히 수정하게 될 것입니다. (2009년에 LFS를 마지막으로 구축했을 때 일부 glibc 특수 사례를 해결하는 설명되지 않은 지침이 여전히 있었던 것을 기억합니다.)

대안으로 다음을 시도해 볼 수 있습니다.

  • 임베디드 CLFS, glibc를 musl로 대체합니다. 이 두 권의 책을 결합하여 상황에 맞는 책을 만들 수 있습니다. 비록 고전적인 GNU 소프트웨어를 완전히 생략했지만.
  • 새로운 musl 기반 Linux 배포판 중 하나를 사용하세요. 예를 들어 파괴와 산을 들 수 있지만무슬림 위키더 많은 이름. 최소한 호스트 컴퓨터에서 바이너리를 빌드한 다음 이를 장치로 가져오려고 시도할 수 있습니다.

임베디드 플랫폼용 바이너리를 구축하려고 하므로 GNU 소프트웨어를 사용하지 말고 대신 시도해 볼 것을 강력히 권장합니다.경량 대안대신에.

관련 정보