GNU 툴체인(gcc+autotools) 없이 Linux 커널을 빌드하는 것이 가능한지 궁금합니다.
나는 이것이 가능하다는 것을 알았습니다: 패치를 적용한 후llvm.linuxfoundation.org, clang을 사용하여 Linux 커널을 빌드할 수 있습니다. GNU 링커가 사용됩니다.
그 대안은 GNU binutils의 일부 ld
이기도 합니다 . gold
인기 있는 musl+clang 툴체인 ELLCC도 GNU binutils를 사용합니다.
더 많은 옵션이 있습니다: ( lld
안정적인 버전 없음), mclinker
(안정적인 버전 없음).
GNU binutils에 대한 대안이 있습니까? 아마도 Mac OS X 또는 FreeBSD에서 구축하는 데 GNU 도구가 필요하지 않을 수도 있습니다.
답변1
2018년 기준으로 lld
생산에 사용할 수 있을 만큼 성숙한 것으로 보이며 100% 호환되지는 않지만 bfd
대부분의 경우 드롭인 교체로 사용할 수 있습니다.
업데이트: 최근 새로운 링커가 등장하여 활발하게 개발 중입니다: mold
.
답변2
UNIX 링커는 소스 코드(CDDL 아래)에서 무료로 사용할 수 있습니다. 소스 코드는 OpenSolaris 프로젝트와 함께 제공됩니다.
일부 결함과 버그로 인해 GNU 링커는 Solaris의 UNIX ld를 대체하지 않습니다. 반면에 Linux에서의 링크는 gld 편차(예: 다른 명령줄 옵션 및 호환되지 않는 맵 파일 구현)에 따라 달라질 수 있습니다.
다음과 같이 OpenSolaris 소스 코드를 확인할 수 있습니다.http://schillix.sourceforge.net
링커 소스는 다음 위치에 있습니다.usr/src/cmd/sgs
싱가포르 표준 연구소대표하다소프트웨어 생성 시스템공정한.