GNU/Linux >> Znalost Linux >  >> Linux

Jak se vyhnout symbolům STT_GNU_IFUNC ve vašem binárním kódu?

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.


Linux
  1. Jak zkompilovat 32bitový binární soubor na 64bitovém linuxovém stroji s gcc/cmake

  2. Jak získat MAC adresu vašeho stroje pomocí programu C?

  3. Jak spravujete konfiguraci Linuxu iptables na počítači fungujícím jako router?

  1. Jak změnit název hostitele vašeho počítače se systémem Linux bez nutnosti restartování

  2. Jak zjistit, jaký DNS server je na vašem počítači nakonfigurován? Linux/Windows/OSX

  3. Jak vypnout nebo restartovat Linux

  1. Jak nastavit tiskárnu v systému Linux

  2. Jak zjistit svou IP adresu v Linuxu

  3. Jak spravovat historii příkazů Linuxu