rtld_global
·
Tips & theory
이론 프로그램이 return 함수와 함께 종료되는 경우 main 함수는 __libc_start_main __GI_exit __run_exit_handlers _dl_fini 등의 함수를 차례로 거치며 종료되는데, 이 중 _dl_fini 코드 내의 _rtld_global 구조체에서 _dl_load_lock을 인자로 __dl_rtld_lock_recursive 함수를 호출하게 된다. # define __rtld_lock_lock_recursive(NAME) \ GL(dl_rtld_lock_recursive) (&(NAME).mutex) void _dl_fini (void) { #ifdef SHARED int do_audit = 0; again: #endif for (Lmid_t ns = GL(dl_nns) ..