Problémem není verze vašeho jádra.
Zavaděč ve vašem systému nepodporuje nový Linux
ABI. Až do relativně nedávné doby používaly binární soubory Linux ELF kód System V
ABI. Nedávno, na podporu STT_GNU_IFUNC, Linux
Bylo přidáno ABI. Budete muset aktualizovat svůj systém Knihovna C, aby měla zavaděč, který podporuje STT_GNU_IFUNC, a pak také rozpozná objekty ELF s Linux
Typ ABI.
Podívejte se na příspěvek Dave Millera na blogu STT_GNU_IFUNC pro Sparc (archivováno), abyste porozuměli tomu, co STT_GNU_IFUNC dělá, pokud vás to zajímá.
Pokud se vám dostane do rukou zavaděč z novějšího systému, možná ho budete moci zprovoznit pomocí něj. Ale budete muset nosit nakladač kamkoli váš program půjde. Můžete buď zkompilovat svůj program pro použití tohoto zavaděče, jak je vysvětleno zde, nebo zkompilovat svůj program a opravit jej později pomocí patchelfu, způsobem podobným tomu, co zde uvádím. Podařilo se mi spustit program, který mi dával OS ABI invalid
chyba na linuxu 2.6.18 (starším než váš), který měl ld-2.5.so, zkopírováním ld-2.15.so odjinud.
POZNÁMKA:NE přepište svůj systém ld*.so nebo ld-linux.;-/
Je možné, že váš glibc byl vytvořen pomocí --enable-multiarch
příznak, který vynutil použití ifunc a nového LINUX ABI