Saya menyusun program C kecil (2 baris kode) dengan gcc untuk mencoba memahami format file ELF. Melakukan readelf -h
pada file objek, saya miliki di header:
OS/ABI: UNIX - System V
Saya menggunakan Fedora, jadi mengapa bukan Linux?
Sunting : Saya kompilasi
int main(){
int x = 0;
x++;
}
dengan gcc -o main.o -c main.c
. Versi gcc saya adalah
gcc (GCC) 4.5.1 20100924 (Red Hat 4.5.1-4)
Saya telah mengedit pertanyaan sesuai.
—
alex_reader
Saya baru saja melakukannya
—
ctrl-alt-delor
readelf -h /bin/ls
di debian gnu / linux. Itu juga menunjukkan OS/ABI: UNIX - System V
. Dugaan saya adalah ABI digunakan pada lebih dari satu kernel, bukan hanya linux. Saya juga tahu bahwa linux mendukung lebih dari satu ABI.
Wikipedia mengatakan Ini [bidang OSABI di header ELF] sering diatur ke 0 [SysV] terlepas dari platform target
—
Stéphane Chazelas
Bidang ini memberi tahu jika file ELF menggunakan ekstensi spesifik OS apa pun, defaultnya adalah 0. Lebih banyak deskripsi terperinci di sini (di EI_OSABI).
—
Leiaz
gcc --version
dan iii) perintah persis yang Anda gunakan untuk mengompilasinya.