make 파일 안에 링커의 옵션 중에 -Ttext 0x100 이 옵션 ??
글쓴이: barrios / 작성시간: 목, 2003/11/06 - 9:10오후
제가 가지고 있는 소스에서 make 파일 안에
$(LD) -o $@ $(OBJS) -dN -Ttext 0x10080 )
이런 부분이 있습니다.
LD는 링커 ld를 얘기하는 것이고..모 다들 아실 테고..어쩌구 저쩌구 있고.
마지막에 -Ttext 0x10080이라고 나와 있는 것 있잖아요.
Text 주소를 0x10080으로 맞추라는 소리 같은데 정확한 개념을 모르겠어요.
저렇게 하면 나중에 로딩 될때 어떻게 되는 거죠 ??
0x10080이라는 것은 선형 주소 겠죠 ?
Forums:
x86 에서는 가상 메모리와 세그멘테이션을 같이 사용하기 때문에 선형 주
x86 에서는 가상 메모리와 세그멘테이션을 같이 사용하기 때문에 선형 주소라기 보다는 논리주소라고 보는게 더 맞는 말이겠네요...^^;
어차피 리눅스에서는 세그멘트 베이스 주소가 0으로 되어 있어서 논리주소와 선형주소가 항상 일치하지만요...
링커에서 -Ttext 는 text 영역 즉, code 부분의 시작 주소를 지정하는 겁니다...
objdump -D testfile
이렇게 해보시면 어셈 코드가 쭉 나오는데, 여기서 main 의 주소가 위의 지정한 주소는 아니고, main 앞에 프로그램을 로드하기 위한 함수들이 붙습니다...
더 자세한 내용은 gcc 컴파일러 관련된 자료를 보시는게 나으실듯합니다...
이제 졸업이다...사랑하는 SKKULUG 후배들아 안녕~
댓글 달기