GNU Linker ld
- 작성자
- 고친과정
2010년 6월 1일 : 처음씀
1.1. 시작하기에 앞서서
본 문서는 GNU Linker ld version 2.18을 기준으로 작성하였으며 필자 나름대로 해석과 경험으로 작성되어 일부 잘못된 부분이 충분히 존재할수 있음을 밝힙니다.
1.2. Command line option
1.3. Linker script
Linker script는 주로 Link작업에 대하여 입력파일의 section이 어떻게 출력파일로 대응되는지에 대한것과 memory를 어떻게 사용할지를 결정하기 위해서 Linker 명령언어로 쓰여집니다.
Linker는 항상 Linker script를 사용하는데 별도로 지정하지 않으면 ld는 내부 기본 Linker script를 사용하게 됩니다. "--verbose" 옵션을 사용하면 기본 Linker script의 내용을 볼수 있습니다.
"-T <linker script filename>" 옵션으로 임의로 Linker script를 지정하여 사용할수 있으며 "-L <search path>" 옵션을 통해서 특정 디렉토리에서 Linker script를 찾도록 할수 있습니다.
Linker는 항상 Linker script를 사용하는데 별도로 지정하지 않으면 ld는 내부 기본 Linker script를 사용하게 됩니다. "--verbose" 옵션을 사용하면 기본 Linker script의 내용을 볼수 있습니다.
"-T <linker script filename>" 옵션으로 임의로 Linker script를 지정하여 사용할수 있으며 "-L <search path>" 옵션을 통해서 특정 디렉토리에서 Linker script를 찾도록 할수 있습니다.
1.3.1. ENTRY(symbol)
Program이 실행되면 처음으로 실행되는 진입점의 symbol을 지정합니다.
다음과 같은 조건순서에 따라서 진입점이 결정되며
다음과 같은 조건순서에 따라서 진입점이 결정되며
- Command line 에서는 옵션 "-e <symbol>"으로 지정하는 경우
- Linker script내에서 "ENTRY(symbol)" 로 지정하는 경우
- 만약 symbol로 "start"가 정의된 경우
- 만약 ".text" section이 있는 경우 ".text" section의 최선두부분
- 주소 0에 해당하는 경우
1.3.2. INCLUDE filename
작성중...