Newsgroup: it.comp.os.linux.sys
Titolo: Errore di compilazione e2fsprogs

Salve, 
sto cercando disperatamente di compilare e2fsprogs (versione modificata
per funzionare con e2compr), dato che dispongo di risorse hardware
limitatissime (2 Hd di cui uno da 130 MB e uno da 240 MB), ho bisogno di
usare la compressione di ext2. Il mio problema è che il make di
e2fsprogs non va a buon fine e mi viene restituito un errore. Di seguito
ho inserito le ultime righe della compilazione e il punto in cui mi si
ferma. Qualcuno sa dirmi perchè? mi potete aiutare? grazie mille.
        CC unix.c
        CC e2fsck.c
        CC super.c
        CC pass1.c
        CC pass1b.c
        CC pass2.c
        CC pass3.c
        CC pass4.c
        CC pass5.c
        CC journal.c
        CC swapfs.c
        CC badblocks.c
        CC util.c
        CC dirinfo.c
        CC dx_dirinfo.c
        CC ehandler.c
        CC problem.c
        CC message.c
        CC recovery.c
        CC region.c
        CC revoke.c
        CC ea_refcount.c
        CC rehash.c
        CC profile.c
        CC prof_err.c
        LD e2fsck.static
/usr/lib/gcc-lib/i386-linux-uclibc/3.3.6/../../../libintl.a(loadmsgcat.
o): In function `_nl_init_domain_conv': : undefined reference to
`libiconv_open'
/usr/lib/gcc-lib/i386-linux-uclibc/3.3.6/../../../libintl.a(loadmsgcat.
o): In function `_nl_free_domain_conv': : undefined reference to
`libiconv_close'
/usr/lib/gcc-lib/i386-linux-uclibc/3.3.6/../../../libintl.a(dcigettext.
o): In function `_nl_find_msg': : undefined reference to `libiconv'
/usr/lib/gcc-lib/i386-linux-uclibc/3.3.6/../../../libintl.a(relocatable
.o): In function `libintl_set_relocation_prefix': : undefined reference
to `libiconv_set_relocation_prefix' collect2: ld returned 1 exit status
make[2]: *** [e2fsck.static] Error 1
make[2]: Leaving directory `/e2fsprogs/e2fsck'
make[1]: *** [all-progs-recursive] Error 1
make[1]: Leaving directory `/e2fsprogs'
make: *** [all] Error 2
[root@linuxbox e2fsprogs]#

shadow ha scritto:

Me lo fa su alcuni programmi gnome perché non trova le libiconv GNU.
Io inserisco nel makefile (dove vengono definite le librerie aggiuntive) un  bel
-L/usr/local/lib -liconv e tutto funziona
-- 
Roberto Tagliaferri-Linux user #30785 <-> r.tagliaferri@(forse)
tosnet.it
A successful [software] tool is one that was used to do something
undreamed of by its author.
		-- S. C. Johnson

 ha scritto nel messaggio 
news:flfd22$1k1m$1...@newsreader1.mclink.it...

Scusa, potresti dirmi esattamente cosa inserire (ossia che riga aggiungere), 
Da quello che scrivi ho capito che devo inserire una riga nella sezione 
Library Definitions.
Però se potresti indicarmi meglio la riga completa da scrivere e dove 
scriverla esattamente, dato che non sono un guru di linux, ma ho iniziato da 
poco.
Grazie mille.

 
innanzitutto devi vedere dov'è che hai la libiconv, se in /usr/lib o in 
/usr/local/lib e sopratutto se c'è..
se manca la installi (se ce l'hai come distribuzione bene, altrimenti ti 
scarichi la gnu libiconv)
Poi nel Makefile dovresti avere una sezione dove definisci le librerie da 
linkare al programma
per esempio, in ghostscript nella riga che definisce le librerie aggiuntive 
ho dovuto aggiungere quello che ti dicevo proma e la riga è diventata
EXTRALIBS=-ldl -lm  -lstdc++  -lfontconfig  -L/usr/local/lib -liconv
-- 
Roberto Tagliaferri-Linux user #30785 <-> r.tagliaferri@(forse)
tosnet.it
"Give me enough medals, and I'll win any war."
		-- Napoleon

 
Ok, grazie delle indicazioni, ma nel makefile che ho io le librerie si trovano in una sezione apposita, e la riga che indichi tu non esiste prorpio, allego uno stralcio del mio makefile, che penso possa essere d'aiuto.
Cosa dovrei fare inserire alla fine di questo pezzo la riga che hai indicato tu oppure devo fare diversamente? se puoi ancora illuminarmi te ne sarei grato.
#
# Library definitions
#
DEVMAPPER_LIBS = 
STATIC_DEVMAPPER_LIBS = 
LIB = $(top_builddir)/lib
LIBSS = $(LIB)/libss.a
LIBCOM_ERR = $(LIB)/libcom_err.a
LIBE2P = $(LIB)/libe2p.a
LIBEXT2FS = $(LIB)/libext2fs.a
LIBUUID = $(LIB)/libuuid.a  
LIBBLKID = $(LIB)/libblkid.a
LIBINTL = -lintl
DEPLIBUUID = $(LIB)/libuuid.a
DEPLIBBLKID = $(LIB)/libblkid.a
STATIC_LIBSS = $(LIB)/libss.a
STATIC_LIBCOM_ERR = $(LIB)/libcom_err.a
STATIC_LIBE2P = $(LIB)/libe2p.a
STATIC_LIBEXT2FS = $(LIB)/libext2fs.a
STATIC_LIBUUID = $(LIB)/libuuid.a  
STATIC_LIBBLKID = $(LIB)/libblkid.a $(STATIC_DEVMAPPER_LIBS)
DEPSTATIC_LIBUUID = $(LIB)/libuuid.a
DEPSTATIC_LIBBLKID = $(LIB)/libblkid.a
PROFILED_LIBSS = $(LIB)/libss
PROFILED_LIBCOM_ERR = $(LIB)/libcom_err
PROFILED_LIBE2P = $(LIB)/libe2p
PROFILED_LIBEXT2FS = $(LIB)/libext2fs
PROFILED_LIBUUID = $(LIB)/libuuid  
PROFILED_LIBBLKID = $(LIB)/libblkid
DEPPROFILED_LIBUUID = $(LIB)/libuuid
DEPPROFILED_LIBBLKID = $(LIB)/libblkid

 #
Non hai da nessuna parte nel makefile un
-L /usr/lib -lstdc++ o altro?
-- 
Roberto Tagliaferri-Linux user #30785 <-> r.tagliaferri@(forse)
tosnet.it
Command, n.:
	Statement presented by a human and accepted by a computer in
such a manner as to make the human feel as if he is in control.


Facendo una ricerca, non ho trovato nulla di simile.
Cosa potrebbe essere?
Mi sai dare altre idee?
Grazie ancora dell'aiuto.