Obecně platí, že systémy UNIX podporují zpětnou binární kompatibilitu (binární program postavený na starém počítači nadále běží na novějším), ale ne naopak. Nemůžete čekat, že binárka postavená na novém systému poběží na starším. STT_GNU_IFUNC
je pouze první z mnoha problémů, se kterými se setkáte.
Pokud potřebujete sestavit binární soubor na novějším počítači, který poběží na starším, přečtěte si tento dokument.
Kdysi existoval „apgcc:obal GCC pro vytváření přenosných binárních souborů“, který to usnadňoval (odkazuje se na něj shora), ale zdá se, že je pryč;-(
Nejjednodušší možností je postavit na starém stroji (kdysi jsem stavěl na RedHat 6.2 a výsledný binární soubor běžel všude ). Ve skutečnosti nemusíte RH-6.2 spouštět na fyzickém počítači, stačí jej spustit na virtuálním počítači.
Další relativně snadnou možností je zabudovat chroot
, opět pomocí nástrojů a knihoven ze staré distribuce (např. RH-6.2).
Protože se zdá, že APGCC již není k dispozici (snad kromě zde a zde). Tyto hlavičky glibc se v současnosti zdají být nejpohodlnějším způsobem, jak generovat přenosné linuxové binární soubory z kódu C, a to zahrnutím jednoho ze starších souborů hlaviček.