GNU/Linux >> Linux Esercitazione >  >> Linux

glibc:file elf OS ABI non valido

Non è la tua versione del kernel il problema.

Il caricatore sul tuo sistema non supporta il nuovo Linux ABI. Fino a tempi relativamente recenti, i binari ELF di Linux utilizzavano il System V ABI. Recentemente, a supporto di STT_GNU_IFUNC, il Linux ABI è stato aggiunto. Dovresti aggiornare il tuo sistema libreria C per avere un caricatore che supporti STT_GNU_IFUNC, e quindi riconoscerà anche gli oggetti ELF con Linux Tipo ABI.

Guarda il post sul blog di Dave Miller su STT_GNU_IFUNC per Sparc (archiviato) per capire cosa fa STT_GNU_IFUNC, se ti interessa.


Se metti le mani nel caricatore da un sistema più recente, potresti essere in grado di farlo funzionare usando quello. Ma dovrai portare il caricatore ovunque vada il tuo programma. Puoi compilare il tuo programma per usare quel caricatore come spiegato qui, o compilare il tuo programma e correggerlo successivamente usando patchelf, in un modo simile a quello che menziono qui. Sono stato in grado di eseguire un programma che mi dava il OS ABI invalid errore su un Linux 2.6.18 (più vecchio del tuo) che aveva ld-2.5.so, copiando un ld-2.15.so da qualche altra parte.

NOTA:NON sovrascrivi il tuo sistema ld*.so o ld-linux.;-/


È possibile che la tua glibc sia stata creata con il --enable-multiarch flag che ha forzato l'utilizzo di ifunc e new LINUX ABI


Linux
  1. Come spostare un file in Linux

  2. Nozioni di base sui permessi dei file Linux

  3. Linux:tutto è un file?

  4. Come rinominare un file in Linux?

  5. Esecuzione di un file binario piatto sotto Linux

Comando Gunzip in Linux

Comando Stat in Linux

Cos'è umask in Linux?

Come collegare simbolicamente un file in Linux

Estrai il file tar.gz in Linux

Che cos'è il file .bashrc in Linux?