4.4.2. 자동 동적 기호 테이블 규칙

다음 규칙이 적용됩니다.

실행 파일

정의되지 않은 기호 참조는 정의되지 않은 기호 오류입니다.

표시 유형이 STV_HIDDEN 또는 STV_INTERNAL인 전역 기호는 동적 기호 테이블로 내보내지지 않습니다.

표시 유형이 STV_PROTECTED 또는 STV_DEFAULT인 전역 기호는 --export_all을 설정한 경우에만 동적 기호 테이블로 내보내집니다.

공유 라이브러리

표시 유형이 STV_DEFAULT인 정의되지 않은 기호 참조는 가져온 것으로 처리되고 동적 기호 테이블에 배치됩니다.

표시 유형이 STV_DEFAULT가 아닌 정의되지 않은 기호 참조는 정의되지 않은 기호 오류입니다.

표시 유형이 STV_HIDDEN 또는 STV_INTERNAL인 전역 기호는 동적 기호 테이블로 내보내지지 않습니다.

Note

재배치에 필요한 STV_HIDDEN 또는 STV_INTERNAL 전역 기호는 동적 기호 테이블에 배치할 수 있지만 공유 라이브러리 외부에서 액세스하지 못하도록 링커에서 지역 기호로 변경됩니다.

표시 유형이 STV_PROTECTED 또는 STV_DEFAULT인 전역 기호는 항상 동적 기호 테이블로 내보내집니다.

기호 정의

SysV와 glibc의 호환성을 높이기 위해 링커는 참조되는 경우에 다음 기호를 정의합니다.

  • __init_array_start

  • __init_array_end

  • __fini_array_start

  • __fini_array_end

  • __exidx_start

  • __exidx_end.

Copyright © 2008 ARM Limited. All rights reserved.ARM DUI 0381AK
Non-Confidential