При связывании программы hello-world в c (или asm) с gcc
она добавит некоторые вещи в файл исполняемого файла результата. Я знаю только о динамическом компоновщике времени выполнения и точке входа _start
, но каковы эти дополнительные функции?
00000000004003f0 t deregister_tm_clones
0000000000400430 t register_tm_clones
0000000000400470 t __do_global_dtors_aux
0000000000400490 t frame_dummy
00000000004004e0 T __libc_csu_init
0000000000400550 T __libc_csu_fini
0000000000400554 T _fini
0000000000600668 t __frame_dummy_init_array_entry
0000000000600668 t __init_array_start
0000000000600670 t __do_global_dtors_aux_fini_array_entry
0000000000600670 t __init_array_end
Что они и зачем? Описывается ли это где-то? Googling не помогает.