공식 ELF 참조 및 공유 라이브러리의 DT_RPATH 무시

공식 ELF 참조 및 공유 라이브러리의 DT_RPATH 무시

Linux용 공식 ELF 형식 참조는 무엇입니까?

일부는지니 1.21995년에 나온 사양으로 더 이상 사용되지 않습니다( DT_RUNPATH예제는 포함되지 않음).

그런데 그 외에는 딱 하나 있는 것 같다.초안버전System V 애플리케이션 바이너리 인터페이스2003년부터. 초안이 아닌 버전을 찾을 수 없는 것 같습니다.

그런 다음Oracle Solaris 버전, 해당 초안을 기반으로 한 것으로 보입니다.

2003 초안과 Solaris 버전은 DT_RPATH공유 라이브러리가 비교 테이블을 무시하는지 여부에 대해 동의하지 않는 것으로 보입니다.2003년 드래프트그리고솔라리스. 2003년 초안에 따르면 무시되어야 하며, Solaris에 따르면 무시되어서는 안 됩니다.

내 Ubuntu 16 시스템에서 런타임 링커는 다음과 같습니다.아니요공유 라이브러리는 무시되므로 DT_RPATH2003 초안이 아닌 Solaris 사양을 따르는 것처럼 보입니다.

Linux의 공식 ELF 사양은 무엇입니까?


편집: LSB 5.0.0 기준:

LSB 준수 구현은 System V ABI 및 System V ABI 업데이트에 지정된 런타임 프로그램을 생성하는 개체 파일 정보 및 시스템 작업뿐만 아니라 이 사양 및 LSB 핵심 사양의 관련 아키텍처별 부분에 대한 추가 요구 사항도 지원해야 합니다. .

공유 라이브러리에서 DT_RPATH를 처리하는 방법을 언급하는 LSB 문서가 표시되지 않습니다. 이는 ld공유 라이브러리에서 RPATH를 무시해야 하기 때문에 LSB와 호환되지 않는다는 의미입니까 ?

관련 정보