Я компилирую этот код с помощью gcc hello.c -o hello -O3
:
#include <stdio.h>
int main(void) {
printf("Hello world\n");
return 0;
}
и когда я перечисляю перемещения, я получаю:
[email protected]$ readelf -r hello | grep gmon
080495a4 00000106 R_386_GLOB_DAT 00000000 __gmon_start__
080495b4 00000107 R_386_JUMP_SLOT 00000000 __gmon_start__
Когда я перечисляю символы в этом файле, я получаю:
[email protected]$ readelf -s hello | grep gmon
1: 00000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__
48: 00000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__
Имеет ли gmon_start
какое-либо отношение к gprof? Почему у него есть перемещение для этого символа, даже если я не скомпилировал/связал с -pg
или -g
? Какая библиотека разрешит этот символ?