2.1.110. --split_sections

이 옵션은 소스 파일에 있는 각 함수에 대해 ELF 섹션을 하나씩 생성하도록 컴파일러에 지시합니다.

출력 섹션에는 해당 섹션을 생성하는 함수의 이름에 접두사 i.가 추가된 형태로 이름이 지정됩니다.

Note

별도의 섹션에 특정 데이터 항목 또는 구조체를 배치하려면 __attribute__((section(...)))를 사용하여 따로따로 만듭니다.

사용하지 않는 함수를 제거하려면 이 옵션보다는 링커 피드백 최적화를 사용하는 것이 좋습니다. 링커 피드백은 모든 섹션을 분할하는 오버헤드를 방지하여 더 작은 코드를 생성하기 때문입니다.

제한

이 옵션은 함수 간에 주소, 데이터 및 문자열 리터럴을 공유할 가능성을 줄입니다. 그 결과 일부 함수의 코드 크기가 약간 커질 수 있습니다.

예제

int f(int x)
{
    return x+1;
}

--split_sections를 사용하여 이 코드를 컴파일하면 다음이 생성됩니다.

        AREA ||i.f||, CODE, READONLY, ALIGN=2
f PROC
        ADD      r0,r0,#1
        BX       lr
        ENDP

추가 참고

Copyright © 2007 ARM Limited. All rights reserved.ARM DUI 0348AK
Non-Confidential