PDA

Visualizza la versione completa : Problemi di (cross)compilazione col Perl


ggp81
23-05-2007, 13:23
Salve a tutti,
sto provando a esportare il Perl su una piattaforma embedded (access point) con firmware OpenWrt (basato su Linux).
L'operazione in realtà è riuscita, ma ho avuto un problema a tempo di compilazione (ho usato una Slackware 11.0 per crosscompilare):

Making Time::HiRes (dynamic)
Configuring Time::HiRes...
Have syscall()... looking for syscall.h... found
<syscall.h>.
Looking for gettimeofday()... found.
Looking for setitimer()... found.
Looking for getitimer()... found.
You have interval timers (both setitimer and getitimer).
Looking for ualarm()... found.
Looking for usleep()... found.
Looking for nanosleep()... testing... ./tmp25328:
/tmp25328: cannot execute binary file

*** The test run of './tmp25328' failed: status 32256
*** (the status means: errno = 126 or 'Unknown error 126')
*** DO NOT PANIC: this just means that *some* functionality
will be missing.
NOT found.
You cannot mix subsecond sleeps with signals.
(It would not be portable anyway.)

In effetti sull'access point la HiRes non funziona correttamente, e ho l'impressione che questa sia la causa del problema. Esiste un modo per ovviare a questo problema? Sto ammattendo in mezzo a un sacco di makefile in perl e di file in C, ma non sono venuto ancora a capo della situazione :dhò:

Grazie a tutti in anticipo
Gabriele

shishii
26-05-2007, 02:20
Sembrerebbe che il problema e' dovuto all'impossibilita' di eseguire files nella directory indicata. Non puoi intervenire su questo? In genere e' dovuto ai flag di montaggio della partizione o ai chmod.

ggp81
28-05-2007, 10:35
Credo che invece il problema sia un altro. Credo che l'eseguibile costruito non possa essere mandato in esecuzione non essendo un eseguibile tradizionale, ma nato per funzionare su una piattaforma embedded.
Il discorso filerebbe anche. Quello che non ho ancora capito invece è perché in un altro analogo processo di cross-compilazione, sempre per un dispositivo embedded, questo problema non si pone, e anzi, la Time::HiRes funziona correttamente sul dispositivo.
Mi metto sotto a risolvere il problema.
Grazie per ora :)

Gabriele

P.S. Odio la cross-compilazione :dottò:

Loading