Mold 1.1이 이미 출시되었습니다. GNU gold 및 LLVM보다 우수한 이 최신 링커의 소식을 알 수 있습니다.

며칠 전 최신 버전의 Linker Mold 1.1 릴리스가 발표되었습니다. Linux 시스템에서 GNU 링커에 대한 더 빠르고 투명한 대체품으로 사용할 수 있습니다.

이 새로운 버전의 몰드 1.1은 다음과 같은 버전입니다. 새로운 기능, 버그 수정 및 성능 개선 사항이 포함되어 있습니다.

금형 정보

곰팡이 GNU 링커의 모든 기능을 지원합니다. 링크가 cp 유틸리티를 사용하여 파일을 복사하는 것보다 두 배만 빠르기 때문에 매우 높은 성능을 제공합니다.

이런 식으로 컴파일 시간을 줄이는 것은 대규모 프로젝트 개발의 편의성을 크게 향상시킵니다. 변경 사항을 디버깅하고 테스트할 때 실행 파일 생성 프로세스의 대기 시간을 줄입니다.

Mold를 만들게 된 동기는 매번 코드 변경 후 링크가 완료될 때까지 기다려야 하는 번거로움, 멀티코어 시스템에서 기존 링커의 낮은 효율성과 증분 링크와 같은 불필요하게 복잡한 모델에 의존하지 않고 근본적으로 다른 링크 아키텍처를 테스트하려는 욕구.

Mold에서 컴파일러가 준비한 다수의 개체 파일에서 실행 파일을 연결하는 고성능은 더 빠른 알고리즘의 사용, 사용 가능한 CPU 코어 간의 활성 병렬 작업 및 보다 효율적인 데이터 구조 사용을 통해 달성됩니다.

몰드는 집중적인 계산을 동시에 수행하는 기술을 구현합니다. 파일 복사를 통해 개체 파일을 메모리에 사전에 로드하고 문자를 확인할 때 빠른 해시 테이블을 사용합니다. 별도의 스트림에서 재배치 테이블 스캔 및 섹션 중복 제거 다른 파일에서 반복됩니다.

Mold 1.1의 주요 참신함

이 새로운 버전의 Mold 1.1에서는 다음과 같이 강조됩니다. 링크 스테이지 최적화 지원 (LTO, 링크 시간 최적화).

LTO 최적화는 빌드 프로세스와 관련된 모든 파일의 상태를 고려한다는 점에서 다릅니다. 반면 기존 최적화 모드는 각 파일을 개별적으로 최적화하고 다른 파일에 정의된 함수 호출 조건을 고려하지 않습니다.

이전에는 GCC 또는 LLVM 중간 코드(IR) 파일이 발견되면 적절한 ld.bfd 또는 ld.lld 링커가 호출되었지만 이제는 Mold가 자체적으로 IR 파일을 처리하고 GNU ld 및 GNU 골드 링커. LTO가 활성화된 경우 속도는 대부분의 시간이 링크가 아닌 코드 최적화에 소비되기 때문에 다른 링커보다 약간 빠릅니다.

또한 추가된 옵션 “–print-dependencies” 및 “–print-dependencies=full” p종속성에 대한 정보를 CSV 형식으로 생성하려면 예를 들어 특정 개체 파일을 연결할 때 또는 파일 간의 종속성을 최소화하기 위해 작업할 때 연결 이유를 분석하는 데 사용할 수 있습니다.

새로운 버전에서 눈에 띄는 또 다른 변경 사항은 RISC-V 아키텍처(RV64) 지원 호스트 및 대상 플랫폼에서

그 외에도 다음을 찾을 수 있습니다. 주소 재배치 섹션을 복사할 수 있는 "–emit-relocs" 옵션 추가 링크 후 단계에서 적용할 추가 최적화를 위해 입력 파일에서 최종 파일까지.

눈에 띄는 다른 변경 사항 중 :

  • 가상 주소 공간에서 주소를 수정하기 전에 섹션 순서를 무작위로 지정하는 옵션 "-shuffle-sections"를 추가했습니다.
  • "-warn-once" 및 "-warn-textrel" 옵션이 추가되었습니다.
  • libxxhash에 대한 종속성을 제거했습니다.

최종적으로 그것에 대해 더 많이 알고 싶다면에서 세부 정보를 확인할 수 있습니다. 다음 링크.

금형을 설치하는 방법?

Mold 작업에 관심이 있는 사람들은 소스 코드를 다운로드하고 컴파일하여 유틸리티를 얻을 수 있습니다. 이렇게 하려면 터미널을 열고 다음을 입력하기만 하면 됩니다.

git clone https://github.com/rui314/mold.git
cd mold
git checkout v1.1.1
make -j$(nproc) CXX=clang++
sudo make install

Mold의 사용법을 알아보려면 문서를 참조하십시오. 이 링크에서.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.