Dubbio su .a / .so

Franco Marchesini franco.marchesini a gmail.com
Gio 16 Apr 2009 12:54:06 CEST


Ciao a tutti,
<premessa>
dopo aver chiesto in rete se qualcuno stava facendo il port della
libreria libocilib ( http://orclib.sourceforge.net/ ) ho ricevuto
numerose email da potenziali utilizzatori. Anche l'autore mi ha
contattato chiedendomi sui progressi fatti e offrendosi di aiutarmi
nella realizzazione del port della stessa...e quindi mi sono imbarcato
in questa avventura </premessa>

Attualmente sono riuscito a compilare senza errori la libocilib.so
Mi sono segnato tutti i passaggi per poter automatizzare la
generazione della stessa.
Una cosa mi lascia perplesso.
La libreria ha come prerequisito l'installazione del port
oracle8-client, il quale non genera un .so ma un .a
La libreria libocilib cerca un .so ed io ho semplicemente generato la
.so in questo modo:

	cd /usr/local/oracle8-client/lib
	ar -x libclntst8.a
	gcc -shared *.o -o libclntst8.so
	rm *.o
	ln -s  libclntst8.so libclntsh.so

Dopo questa operazione sono riuscito a compilare senza errori la libocilib.so,
pero' mi sono accorto che forse esiste un problema perche' le
dimensioni tra la libclntst8.a e la corrispondente libclntst8.so sono
notevolmente diverse:

10.0.1.26/usr/local/oracle8-client/lib# ll
total 15282
-rw-r--r--  1 root  wheel        0 Jun  9  2005 ldflags
lrwxrwxrwx  1 root  wheel       12 Mar 23 14:57 libclntsh.a -> libclntst8.a
lrwxr-xr-x  1 root  wheel       13 Apr 14 19:26 libclntsh.so -> libclntst8.so
-rw-r--r--  1 root  wheel  9195812 Mar 23 14:57 libclntst8.a
-rwxr-xr-x  1 root  wheel  6399471 Apr 14 19:25 libclntst8.so
-rw-r--r--  1 root  wheel       22 Aug  8  2005 sysliblist

Praticamente la .so e' circa 1/3 piu' piccola della .a
E' possibile una tale differenza con il procedimento utilizzato?

Grazie
Franco


Maggiori informazioni sulla lista Devel