고속 링커 mold, Rust 기반 3.0.0 버전 출시
Mold Linker Version 3.0.0 Release – Rewritten in Rust
고속 링커 mold가 메이저 업데이트 3.0.0을 발표하며 C++에서 Rust로 전면 재작성되었습니다. 이는 기존 버전과 높은 호환성을 유지하면서 안정성과 기능을 대폭 개선한 첫 번째 Rust 기반 버전입니다.
고속 링커 mold가 Rust로 재작성되면서 안전성이 크게 높아졌고, 리눅스 배포판의 기본 링커로 채택되는 기반을 마련하는 데 중요한 역할을 해요.
- mold 3.0은 이전 버전을 대체하는 드롭인 방식으로 작동하여 성능 저하가 없으며, Rust의 메모리 경계 검사 기능 도입으로 입력 파일 오류 시 프로그램 충돌을 방지해 안전성이 크게 향상되었습니다.
- 이번 업데이트는 mold가 GNU ld와의 호환성을 높이고 리눅스 배포판의 기본 링커로 채택되는 기반을 마련하는 데 중요한 의미를 가지며, 다양한 아키텍처에서 수많은 버그가 수정되었습니다.
- 개발자가 직접 mold를 빌드할 경우, 기존 CMake 방식 대신 Cargo를 사용해야 하며 Rust 1.95 이상이 필요합니다. 라이브러리 경로 설정 등 변경된 빌드 시스템 가이드라인을 반드시 확인해야 합니다.
고속 링커인 mold가 메이저 업데이트 3.0.0을 발표하며 C++에서 Rust로 전면 재작성된 첫 번째 버전을 공개했다. 이 버전의 목표는 GNU ld와의 호환성을 높여 리눅스 배포판의 기본 링커로 채택되는 기반을 마련하는 것이다. mold 3.0은 이전 버전인 2.42.1과 동일한 명령줄 옵션 및 타겟 아키텍처를 지원하는 드롭인 대체재 역할을 하며, 성능 저하 없이 높은 호환성을 유지한다.
Rust로의 전환은 안전성 측면에서 큰 개선을 가져왔다. 기존 C++ 버전에서는 입력 파일이 손상되었을 때 메모리 경계 초과로 인해 세그멘테이션 오류가 발생할 수 있었으나, mold 3.0에서는 이러한 접근을 바운드 검사(bounds-checked)하여 패닉으로 중단된다. 또한, 이 업데이트를 통해 정적 링크 실행 파일 생성 시 충돌 문제 수정, 출력 파일과 입력 파일이 같은 경우의 오류 처리 등 다양한 버그가 수정되었다.
사용자가 직접 mold를 빌드하려면 빌드 시스템 변경 사항을 숙지해야 한다. 기존 CMake 방식 대신 Cargo를 사용하며 Rust 1.95 이상 버전과 C 컴파일러가 필요하다. 빌드는 `cargo build --release` 명령어로 진행하고, 설치는 `./install-mold.sh` 스크립트를 통해 할 수 있다. 라이브러리 경로 설정 등 변경된 빌드 시스템 가이드라인을 따라야 한다.
mold는 어떤 역할을 하는 프로그램인가요?
고속 링커인 mold는 GNU ld와의 호환성을 높여 리눅스 배포판의 기본 링커로 채택되는 기반을 마련하는 것을 목표로 해요. 이전 버전과 동일한 명령줄 옵션 및 타겟 아키텍처를 지원하며 성능 저하 없이 작동해요.
Rust로 재작성되면서 어떤 점이 개선되었나요?
기존 C++ 버전에서는 입력 파일 손상 시 메모리 경계 초과로 인해 프로그램 충돌(세그멘테이션 오류)할 수 있었지만, mold 3.0은 바운드 검사를 통해 패닉으로 중단되어 안전성이 크게 향상되었어요. 또한 정적 링크 실행 파일 생성 시의 충돌 문제 등 다양한 버그가 수정되었어요.
직접 mold를 빌드하려면 무엇을 준비해야 하나요?
기존의 CMake 방식 대신 Cargo를 사용해야 하며, Rust 1.95 버전 이상과 C 컴파일러가 필요해요. 빌드는 `cargo build --release` 명령어로 진행하고, 설치는 `./install-mold.sh` 스크립트를 통해 할 수 있어요. 변경된 라이브러리 경로 설정 등 가이드라인을 따라야 해요.