Newsgroup: it.comp.os.linux.development
Titolo: [gcc && glibc] problemi compilazione

Recentemente ho fatto l'upgrade delle glibc alla versione glibc-2.2-21mdk
(ho una Mandrake) e delle glibc-devel alla versione
glibc-devel-2.2-21mdk. Da allora ho dei problemi nella compilazione di
alcuni programmi; ad esempio, se cerco di compilare l'esempio su corba
presente presso
"
http://www-105.ibm.com/developerworks/papers.nsf/
dw/linux-papers-bynewest?OpenDocument&Count=10",
ottengo il seguente errore:
<< gcc `glib-config --libs` `orbit-config --libs client server`  
hello-server.o corba-hello-common.o corba-hello-stubs.o 
corba-hello-skels.o   -o hello-server
/usr/lib/libglib.so: undefined reference to `getpwuid_r@@GLIBC_2.0'
collect2: ld returned 1 exit status
make: *** [hello-server] Error 1 >>.
Errori analoghi li ottengo nella compilazione di altri programmi:
<< /usr/X11R6/lib/libXt.so.6: undefined reference to `getpwnam_r@@GLIBC_2.0'
/usr/X11R6/lib/libGL.so.1: undefined reference to `shmctl@@GLIBC_2.0'
/usr/X11R6/lib/libXt.so.6: undefined reference to
`getpwuid_r@@GLIBC_2.0'>>
Io non so che pesci pigliare... C'è qualche rimedio???
Grazie!
piercarlo

 glibc-2.2-21mdk
[...]
L'unico rimedio è tornare alle vecchie glibc. E' una follia fare
un'aggiornamento così delle librerie C GNU! Come hai fatto con un rpm
-Uvh? Inoltre alcuni pacchetti saranno incompatibili perchè richiederanno
le
2.1 (anche se alla fine andranno lo stesso ma rpm da dei warning).
Io non ho mai fatto un update delle glibc, prefereisco usare una distro
già fatta piuttosto che andare a fare casini :-)
-- 
Pier Luigi Fiorini
==============================================
www.linuxlab.it
 - Il portale dei programmatori

 L'unico rimedio č tornare alle vecchie glibc. 
Cercherň di rassegnarmi...
grazie e ciao ;)
Piercarlo

 presente presso
Ma che necessita` ne avevi? L'upgrade delle librerie del C e' sempre una cosa
molto complessa e delicata, se non ne hai assoluta necessita` evitalo.
Ciao
-- 
Simone Piccardi
Microsoft is NOT the answer. Microsoft is the Question.
The answer is: "NO!"

`getpwuid_r@@GLIBC_2.0'>>
Come ti e' gia' stato detto, non c'e' altro rimedio che tornare
indietro. Se tutta la tua distribuzione si basa su glibc-2.0 o 2.1 non
puoi semplicemente sostituirla con le 2.2 dovresti fare qualcosa alla
Linux From Scratch (
http://www.linuxfromscratch.org
) oppure trovarti
una distribuzione ridotta all'osso che ha gia' adottato le 2.2 e
ricompilare la maggior parte delle librerie "piu' alte". Intendo
quelle librerie come glib (GTK) e libXt (XFree) che non sono
strettamente vitali per il sistema "bare", ma che sono necessarie
nella vita di tutti i giorni. Non ti sara' utile ora, ma per sfizio
dai un'occhiata alle mie pagine
(
http://village.flashnet.it/users/fn048069/
) per avere un'idea di cosa
intendo per "sistema minimo", un nocciolo difficile da aggiornare se
non creando di fatto una nuova distribuzione.

Vi espongo rapidamente il mio problema:
lavoro sotto RH 6.2
ho scaricato l' SDK 1.1.3 e, per mie esigenze di spazio, ho la necessità di installarlo sotto una
partizione formattata DOS, ma .. spero non sia questo il problema,o almeno, spero sia risolubile.
Ebbene, ho decompresso il SDK e l'ho posto sotto la directory /dos; poi, ho aggiunto il PATH di quelli
che mi sembravano gli eseguibili in /etc/profile il risultato è il seguente, chiamando da shell:
<shell>
$javac
javac: error in loading shared libraries: libhpi.so: cannot open shared object file: No such file or
directory
</shell>
Ulteriore dubbio: tutti gli eseguibili (ivi compresa la lib sopra menzionata) sono *doppi* , ovvero,
ho, sia sotto dir 'native_threads' che 'green_threads' gli stessi files (o collegamenti simbolici, non 
so...)
Mi scoppia la testa, vi prego datemi una mano...
 
Saluti, P.

 so...)
I file hanno solo lo stesso nome, ma sono diversi. In una directory
(native_threads) ci sono gli eseguibili che sfruttano i thread del sistema
operativo (utile se la macchina in cui lavori e' multiprocessore), mentre
nell'altra (green thread) ci sono gli eseguibili che "simulano" i thread a
lato applicazione.
Per selezionare quale "tipo" di eseguibili utilizzare devi settare
correttamente una variabile di ambiente di cui non mi ricordo il nome. Se
dai una occhiata in uno di quegli script di "bin/" dovresti vederla subito.
byez
mirko.