undefined reference to `__dlclose'

Se avete problemi con l'installazione e la configurazione di Slackware postate qui. Non usate questo forum per argomenti generali... per quelli usate Gnu/Linux in genere.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

undefined reference to `__dlclose'

Messaggio da ZeroUno »

Sto compilando libproxy 0.4.0 (dipendenza di amsn) per slackware-current con kde 4.4.1
Al momento non ho una current pulita (cioè con kde 4.3.5), mentre la 13.0 non compila perchè libproxy vuole cmake 2.8 mentre la 13.0 ha la 2.6

Lancio "cmake ." e poi "make"
Ad un certo punto però si blocca con il messaggio:

Codice: Seleziona tutto

libmodman.so.0: undefined reference to `__dlclose'
libmodman.so.0: undefined reference to `__dlsym'
libmodman.so.0: undefined reference to `__dlerror'
libmodman.so.0: undefined reference to `__dlopen'
collect2: ld returned 1 exit status
Ho visto che il comando che fallisce è:

Codice: Seleziona tutto

cd libmodman && /usr/bin/c++   -g -Wall -Werror -fvisibility=hidden    CMakeFiles/builtin.dir/test/builtin.cpp.o CMakeFiles/builtin.dir/libmodman/test/builtin_one.cpp.o  -o builtin -rdynamic libmodman.so.0 -ldl -Wl,-rpath,/root/libproxy-0.4.0/libmodman

Da un "strace -f" scopro che cerca, invano, libdl.so
effettivamente non so perchè in /lib non è stato creato il link "libdl.so -> libdl.so.2"
Poco male.. lo creo e aggiungo -L/lib alla riga, ma non cambia niente. Il messaggio è lo stesso, nonostante strace -f mi dice che libdl.so ora l'ha trovato.
libdl è 2.11.1 dalle glibc-solibs della current

Che cosa manca?


Ciao
01
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
masalapianta
Iper Master
Iper Master
Messaggi: 2775
Iscritto il: lun 25 lug 2005, 0:00
Nome Cognome: famoso porco
Kernel: uname -r
Desktop: awesome
Distribuzione: Debian
Località: Roma
Contatta:

Re: undefined reference to `__dlclose'

Messaggio da masalapianta »

-ldl

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: undefined reference to `__dlclose'

Messaggio da ZeroUno »

masalapianta ha scritto:-ldl
guarda bene che già c'è.

piuttosto mi chiedo che versione di libdl vuole, per nei makevile, cmakefile ecc non sono riuscito a vederlo.

Ciao
01
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: undefined reference to `__dlclose'

Messaggio da conraid »

in una current pulita mi si blocca per -lmozjs
ho solo seamonkey, e sembrerebbe tutto ok, solo che vedo che dice che il comando seamonkey-js non c'è, in effetti c'è solo il file per pkgconfig, ma vedo che anche per debian è così per esempio, anche se in debian c'è libmozjs presa da xulrunner

per glibc non da errori

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: undefined reference to `__dlclose'

Messaggio da conraid »

ZeroUno ha scritto:
masalapianta ha scritto:-ldl
guarda bene che già c'è.

piuttosto mi chiedo che versione di libdl vuole, per nei makevile, cmakefile ecc non sono riuscito a vederlo.

Ciao
01

comunque libproxy.so la crea

Codice: Seleziona tutto

# ldd libproxy.so.1.0.0
        linux-gate.so.1 =>  (0xffffe000)
        libmodman.so.0.0.0 => /tmp/pkg/libproxy-0.4.0/libmodman/libmodman.so.0.0.0 (0xb772e000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb76e9000)
        libdl.so.2 => /lib/libdl.so.2 (0xb76e5000)
        libmozjs.so => /usr/lib/seamonkey-2.0.3/libmozjs.so (0xb75ee000)
        libplds4.so => /usr/lib/seamonkey-2.0.3/libplds4.so (0xb75ea000)
        libplc4.so => /usr/lib/seamonkey-2.0.3/libplc4.so (0xb75e6000)
        libnspr4.so => /usr/lib/seamonkey-2.0.3/libnspr4.so (0xb75b3000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb74c6000)
        libm.so.6 => /lib/libm.so.6 (0xb74a0000)
        libc.so.6 => /lib/libc.so.6 (0xb7341000)
        libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0xb7323000)
        /lib/ld-linux.so.2 (0xb7763000)

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: undefined reference to `__dlclose'

Messaggio da ZeroUno »

ok. metto in piedi una current e vedo.
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: undefined reference to `__dlclose'

Messaggio da ZeroUno »

chissà perchè non veniva creato il link /usr/lib/libdl.so -> /lib/libdl.so.2
e quello che avevo creato io era in /lib mentre veniva cercato in /usr/lib

Ora devo risolvere il problema di mozjs (odio cmake).

lanciando "make VERBOSE=1" noto che fallisce

Codice: Seleziona tutto

cd utils && /usr/bin/gcc     CMakeFiles/proxy.dir/proxy.c.o  -o proxy -rdynamic ../lib/libproxy.so.1.0.0 ../libmodman/libmodman.so.0 -lm -lpthread -lmozjs -lplds4 -lplc4 -lnspr4 -lpthread -lmozjs -lplds4 -lplc4 -lnspr4 -ldl -Wl,-rpath,/root/Downloads/amsnbuild/libproxy/libproxy-0.4.0/lib:/root/Downloads/amsnbuild/libproxy/libproxy-0.4.0/libmodman:
aggiungendo a mano "-L/usr/lib/seamonkey" invece va a buon fine.

Ciao
01
Ultima modifica di ZeroUno il lun 15 mar 2010, 21:35, modificato 1 volta in totale.
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: undefined reference to `__dlclose'

Messaggio da ZeroUno »

la cosa curiosa è che il -L/usr/lib/seamonkey lo mette in automatico su tanti gcc (find -name link.txt) mentre non lo mette lì dove serve.

Ciao
01
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: undefined reference to `__dlclose'

Messaggio da conraid »

ZeroUno ha scritto:la cosa curiosa è che il -L/usr/lib/seamonkey lo mette in automatico su tanti gcc (find -name link.txt) mentre non lo mette lì dove serve.
infatti alcune librerie le crea con i vari flag corretti, tranne quella interessata
vedo che le altre distribuzioni però hanno ancora libproxy 2.3, chissà se il motivo è solamente cmake
tra l'altro alcune compilano con --without-mozjs

ma a cosa serve a amsn? io lo compilo tranquillamente senza
ad usare il proxy?

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: undefined reference to `__dlclose'

Messaggio da ZeroUno »

conraid ha scritto:tra l'altro alcune compilano con --without-mozjs
beh, con cmake non saprei come fare.

comunque ho scaricato la versione current di libproxy, ma le cose non cambiano.
mi sa che mi devo vedere bene cmake.

ma a cosa serve a amsn? io lo compilo tranquillamente senza
ad usare il proxy?
a detta degli slack-required di slacky è una dipendenza di libsoup.

ecco i dettagli delle dipendenze e l'ordine di compilazione:
tls => none.
gst-python => none
libproxy => none
orbit2 => none
gconf => orbit2
libsoup => gconf,libproxy
gssdp => libsoup
gupnp => gssdp
gupnp-igd => gupnp
libnice => gupnp-igd
farsight2 => libnice,gst-python
amsn => suggested before compile: FARSIGHT2 and GSTREAMER (per l'audio),GUPNP-IGD; suggested after compile: TLS

Ciao
01
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: undefined reference to `__dlclose'

Messaggio da conraid »

capito, io compilo senza upnp, mi sta sulle palle quella tecnologia :-)

Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5441
Iscritto il: ven 2 giu 2006, 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Re: undefined reference to `__dlclose'

Messaggio da ZeroUno »

conraid ha scritto:capito, io compilo senza upnp, mi sta sulle palle quella tecnologia :-)
io semplicemente (di solito) compilo con gli slackbuild di slacky



comunque vedendomi un po' di struttura del cmake, se cambio dentro CMakeLists.txt la variabile ${CMAKE_CXX_FLAGS}, questa viene riportata su tutti i link.txt, ma non su quello incriminato. Il che significa che oltre alle librerie mozjs non ci va nemmeno:
-g -Wall -Werror -fvisibility=hidden -Os

Ciao
01
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

Rispondi