Por que o readelf mostra o “System V” como meu sistema operacional ao invés do Linux?

10

Eu compilei um pequeno programa em C (2 linhas de código) com o gcc para tentar entender o formato do arquivo ELF. Fazendo um readelf -h no arquivo objeto, eu tenho no cabeçalho:

OS/ABI:                            UNIX - System V 

Estou usando o Fedora, então por que não é Linux?

Editar : eu compilei

int main(){
  int x = 0;
  x++;
}

com gcc -o main.o -c main.c . Minha versão do gcc é

gcc (GCC) 4.5.1 20100924 (Red Hat 4.5.1-4) 
    
por alex_reader 26.05.2014 / 15:53

1 resposta

8

Existem poucas diferenças entre os executáveis do ELF em diferentes plataformas. “UNIX - System V” é o ponto comum; Sistema V é onde o ELF veio o formato. O valor numérico correspondente é 0. Esse valor indica que o executável não usa nenhuma extensão específica do sistema operacional. O Debian GNU / Linux, pelo menos, configura o GCC / binutils para gerar executáveis com este campo configurado para 0 por padrão.

    
por 27.05.2014 / 02:36

Tags