In rarissimi casi, è necessario usare binari a.out, o perché il codice sorgente non è disponibile o perché, per una qualche ragione, non è possibile compilare nuovi binari ELF dal sorgente.
Come succede, le installazioni ELF hanno quasi sempre un completo
insieme di librerie a.out nella directory /usr/i486-linuxaout/lib
.
Lo schema di numerazione delle librerie a.out differisce da quello delle
ELF, evitando intelligentemente conflitti che potrebbero creare
confusione. I binari a.out dovrebbero perciò essere in grado di trovare
le giuste librerie in fase di esecuzione, ma ciò potrebbe non accadere
sempre.
Notate che il kernel necessita di avere il supporto per a.out, o
direttamente o come modulo caricabile. Potrebbe essere necessario
ricompilare il kernel per abilitare ciò. Inoltre, alcune distribuzioni
di Linux richiedono l'installazione di uno speciale pacchetto di
compatibilità, come xcompat
di Debian, per eseguire
applicazioni X a.out.
Jerry Smith ha scritto il comodissimo programma xrolodex alcuni anni fa. Esso usa le librerie Motif, ma fortunatamente è disponibile come binario linkato staticamente in formato a.out. Sfortunatamente, il sorgente necessita di numerosi aggiustamenti per essere ricompilato usando le librerie lesstif. Ancor più sfortunatamente, il binario a.out su di un sistema ELF va in bomba con il seguente messaggio d'errore.
xrolodex: can't load library '//lib/libX11.so.3'
No such library
(Traducendo: non è possibile caricare la libreria //lib/libX11.so.3;
non c'è nessuna libreria con quel nome)
Si dà il caso che ci sia una tale libreria, in
/usr/i486-linuxaout/lib
, ma xrolodex è incapace di trovarla in
fase di esecuzione. La soluzione semplice è di fornire un link
simbolico nella directory /lib
:
ln -s /usr/i486-linuxaout/lib/X11.so.3.1.0 libX11.so.3
Ne viene fuori che è necessario fornire link simili per le librerie libXt.so.3 e libc.so.4. Ciò deve essere fatto come root, naturalmente. Notate che dovrete essere assolutamente certi di non sovrascrivere o provocare conflitti di versione con librerie preesistenti. Fortunatamente, le nuove librerie ELF hanno numeri di versione più alti delle più vecchie a.out, per prevenire ed impedire proprio tali problemi.
Dopo aver creato i tre link, xrolodex funziona bene.
Il pacchetto xrolodex era originariamente pubblicato su Spectro, ma sembra che sia sparito da lì. Attualmente può essere scaricato da Sunsite come file sorgente [512k] in formato tar.Z.