GLIBC 에 관한 질문입니다.
안녕하세요.
일반적으로 GLIBC 에 있는 함수들을 이용을 하는데.. 이것들은 Dynamic 하게 로딩 되는 것인가요? 이것을 static 하게 이용 하는 방법은 없을까요? Makefile 에서 LDFLAGS= -g -Wall -static -Wl,--soname 으로 설정을 했는데 결과가 동일 하네요?
최종 결과로 nm 했을 경우 앖에 symbol address 값이 나오게 하고 싶습니다.
또 U snprintf@@GLIBC_2.0 에서 U 가 뜻하는 것은 무엇인지? 00406110 T _fini 이것은 무엇인지 궁금 합니다.
linux>nm crash
.
.
.
00406110 T _fini
00400fa0 T _ftext
100080e0 A _gp
00400eec T _init
00405f30 T sn_msg_getReturnAddress
00405f38 T sn_msg_getStackPointer
U snprintf@@GLIBC_2.0
U sscanf@@GLIBC_2.0
U stderr@@GLIBC_2.0
00401bb0 t stderrpfunc
U stdout@@GLIBC_2.0
U strerror@@GLIBC_2.0
U strftime@@GLIBC_2.0
U strlen@@GLIBC_2.0
U strncpy@@GLIBC_2.0
U strsignal@@GLIBC_
-static은 링킹옵션이 맞습니다.from gcc manual
-static은 링킹옵션이 맞습니다.
from gcc manual
-static
On systems that support dynamic linking, this prevents linking with the shared libraries. On other systems, this option has no effect.
U는 undefined symbol이란 뜻이고,
00406110 T _fini 는 global text section에 있는 _fini라는 심볼로 00406110주소에 로딩된다는 뜻입니다.
자세한 것은 man nm을 보세요.
/***********************
* while(1) sleep(INFINITE);
***********************/
댓글 달기