일간

mold 3.0 — 링커를 통째로 Rust로 다시 썼다, 속도는 그대로

원문 GitHub rui314/mold ↗

mold는 GNU ld·lld보다 몇 배 빠른 것으로 알려진 링커입니다. 3.0.0 릴리스 노트의 첫 줄이 이번 변경의 전부입니다 — C++ 코드베이스를 Rust로 완전히 다시 썼다.

바뀐 것

  • 소스가 Rust이고, 빌드는 Cargo입니다. Rust 1.95 이상이 필요합니다.
  • 성능은 2.42.1과 "on par"라고 밝혔습니다. 빨라진 게 아니라 같다는 뜻입니다.
  • 명령줄 옵션과 동작은 호환됩니다. -fuse-ld=mold나 .cargo/config.toml의 링커 지정을 바꿀 필요가 없습니다.

왜 다시 썼나

릴리스 노트는 이유를 길게 적지 않습니다. 메모리 안전성과 유지보수성을 위한 결정으로 읽히지만, 그건 노트에 없는 해석입니다. 분명한 건 같은 사람이 같은 설계를 다른 언어로 옮겼고, 속도를 잃지 않았다는 점입니다.

글에 없는 것

플랫폼별 지원 범위가 2.x와 완전히 같은지, 특정 아키텍처가 빠졌는지는 노트에 명시되지 않았습니다. 알려진 비호환 목록도 없습니다. 3.0이 "완전 재작성"인 이상, 2.x에서 없던 버그가 있을 가능성은 열어둬야 합니다.

실무에서 할 일

바로 바꿔 끼우되, 링크 결과물을 비교하세요. 같은 입력으로 2.42.1과 3.0.0의 출력 바이너리를 만들어 크기와 심볼 테이블, 그리고 테스트 결과가 같은지 보면 됩니다. 배포판 패키지로 쓰고 있다면 패키지가 3.0으로 올라올 때 Rust 툴체인이 빌드 의존성에 추가되는 것을 염두에 두세요. 소스에서 빌드하는 CI 이미지는 cargo가 있어야 합니다.

2026년 10월 5일에 올라온 글

그날 대시보드 →

이날은 이 글 하나입니다.

댓글

불러오는 중…