소프트웨어 엔지니어링에서, gold는 ELF 파일의 링커입니다. 그것은 공식 GNU 패키지가 되었고 2008년 3월 binutils에 추가되었고 binutils 버전 2.19에서 처음 릴리스되었습니다. gold는 Ian Lance Taylor와 구글의 소규모 팀에 의해 개발되었습니다. gold를 작성하는 동기는 GNU 링커, 특히 C++로 코딩된 대규모 응용 프로그램에 대해 더 빠른 링커를 만드는 것이었습니다.
GNU 링커와 달리, gold는 BFD 라이브러리를 객체 파일을 처리하지 위해 사용하지 않았습니다. 이것은 오직 ELF로 처리할 수 있는 객체 파일 형식을 제한하지만, 역시 추가 추상화 계층 없이 더 깨끗하고 빠른 구현을 가져온다고 주장됩니다. 저자는 GNU 링커를 점진적으로 개선하기 보다는 처음부터 새로운 링커를 만드는 이유로 BFD의 완전한 제거를 인용했습니다. 이 재작성은 역시 다양한 사소한 방식으로 ELF 파일을 손상시키는 old ld의 일부 버그를 수정합니다.
makefile에서 gold를 지정하기 위해, LD 또는 LD 환경 변수를 ld.gold로 설정합니다. 컴파일러 옵션을 통해 gold를 지정하기 위해, gcc 옵션 -fuse-ld=gold를 사용할 수 있습니다.
페도라는 구글의 관심이 LLVM으로 이동한 후 bitrot로 고통받고 있다는 우려로 인해 binutils에서 자체 패키지로 gold를 옮겼습니다.
External links
- Ian Lance Taylor (2007-08-22). "Linkers part 1". Retrieved 2020-04-28.
- Edge, Jake (2008-03-26). "Striking gold in binutils". LWN.net. Retrieved 2020-04-28.
- "The LLVM gold plugin". LLVM.
- Coutant, Cary (2012-04-05). "Incremental Linking with Gold" (PDF). Linux Foundation Collaboration Summit.
- "Incremental Linking with Gold". 2012 Linux Foundation Collaboration Summit. 2012-04-11.