Newsgroup: it.comp.programmare
Titolo: glibc 2.3

Piccolo problema:
dopo aver sviluppato la mia applicazione sul laptop con le glibc
2.4,l'ho portata su un'altra macchina e provando a eseguirla mi dà in
output un errore di glibc 2.4 richieste.Ho provato a ricompilare il
sorgente su quella macchina e escono una valnga di errori,quasi tutti
di tipi e macro non definite.
Per esempio la open con le macro O_RDONLY,la readdir e addirittura
sembra non sia definito il tipo NULL.Cosa devo includere nel sorgente
per farle andare?
Ciao
Matteo

 per farle andare?
Per O_RDONLY mi pare tu debba includere fcntl.h
mentre per il NULL va benissimo lo stdio.h
Ma se non li hai gia' inclusi mi chiedo come tu abbia fatto a compilare 
quel codice sulla prima macchina senza errori.


Infatti sono inclusi.Cos'altro può essere allora?L'altra macchina la
emulo via qemu 0.9 con un kernel 2.6.11.11
Può essere il compilatore marcio?
Ciao

BeBox ha scritto:

Hai controllato le variabili di environment sulla seconda macchina?
Magari qualche path non e' definito.


Quale esattamente?Cmq mi sa che ho smanettato male quando ho
ricompilato il kernel e adesso non sa proprio dove andare a prendersi
i file da includere
:).Meno male che è su qemu

BeBox ha scritto:

Visto che sono proprio i files di include che non trova, mi viene da 
pensare che sia definita malamente la variabile di environment che punta 
alla directory degli includes.
Dovresti avere una INCLUDE=/usr/include o qualcosa del genere.
Confronta sulla macchina dove funziona tutto.


Non ho trovato nessuna variabile INCLUDE con la printenv (nè sulla
macchina dove va nè su quella emulata).Cambia qualcosa se quando ho
installato il kernel,i vari include invece che in /usr/src/linux/
include li ho in /home/x/linux/src/include??
Ciao e Grazie

 include li ho in /home/x/linux/src/include??
No, non cambia niente. Gli includes possono stare dove ti pare.
Solo che da qualche parte bisogna indicarlo al compilatore dove stanno gli
includes.
Mi sembrava di ricordare che vi fosse una variabile di ambiente, ma magari
qualche altra distribuzione funziona diversamente.
Magari c'e' il modo di specificarlo nel makefile.
Purtroppo non ho sottomano una macchina unix/linux per controllare.
Forse puo' farlo qualcuno che ne dispone.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Magari c'e' il modo di specificarlo nel makefile.
Per specificare include directory addizionali si puo' passare al gcc
l'opzione -I<path da includere nella ricerca degli header files>.
Da info gcc:
-Idir
Add the directory dir to the head of the list of directories to be
searched for header files. This can be used to override a system
header file, substituting your own version, since these directories
are searched before the system header file directories. However, you
should not use this option to add directories that contain vendor-
supplied system header files (use -isystem for that). If you use more
than one -I option, the directories are scanned in left-to-right
order; the standard system directories come after.
Saluti,
The Librarian

 Può essere il compilatore marcio?
Piu' che altro potrebbe essere il compilatore: in un caso 3.x e in
quell'altro 4.x
Che compilatore hai usato nelle due macchine? E soprattutto: puoi
postare gli errori?
.a.

Alla fine ho risolto reinstallando il sistema e ricompilando il
kernel.Non è stata la scelta più giusta ma di sicuro la più
immediata.Grazie a tutti e scusate se non ho risposto prima ma ho
problemi a entrare in Google Groups (e anche in Gmail).Sarà colpa del
provider??
Ciao
