Pagina 1 di 1

[SOLVED] compilaz dipendenze kmid2 a64b:recompile with -fPIC

Inviato: mer 7 apr 2010, 10:08
da ZeroUno
sto compilando timidy++ per 64bit
ma trovo un errore di compilazione sulle dipendenze.
Per ora drumstick:

Codice: Seleziona tutto

Linking CXX shared library libdrumstick-file.so
cd /tmp/txz/drumstick/drumstick-0.3.0/build/library && /usr/bin/cmake -E cmake_link_script CMakeFiles/drumstick-file.dir/link.txt --verbose=1
/usr/bin/c++  -fPIC -O2 -fPIC -O3 -DNDEBUG  -shared -Wl,-soname,libdrumstick-file.so.0 -o libdrumstick-file.so.0.3.0 CMakeFiles/drumstick-file.dir/include/moc_qsmf.cxx.o CMakeFiles/drumstick-file.dir/include/moc_qwrk.cxx.o CMakeFiles/drumstick-file.dir/src/qsmf.cpp.o CMakeFiles/drumstick-file.dir/src/qwrk.cpp.o -L/usr/lib64/qt/lib -L/tmp/txz/drumstick/drumstick-0.3.0/build /usr/lib64/qt/lib/libQtSvg.so /usr/lib64/qt/lib/libQtGui.so -lpng -lSM -lICE -lXrender -lfreetype -lfontconfig -lXext -lX11 -Wl,-Bstatic -lm -Wl,-Bdynamic /usr/lib64/qt/lib/libQtXml.so /usr/lib64/qt/lib/libQtCore.so -lz -lgthread-2.0 -lglib-2.0 -lgobject-2.0 -Wl,-Bstatic -lrt -Wl,-Bdynamic -lpthread -ldl /usr/lib64/qt/lib/libQtSvg.so /usr/lib64/qt/lib/libQtGui.so -lpng -lSM -lICE -lXrender -lfreetype -lfontconfig -lXext -lX11 -Wl,-Bstatic -lm -Wl,-Bdynamic /usr/lib64/qt/lib/libQtXml.so /usr/lib64/qt/lib/libQtCore.so -lz -lgthread-2.0 -lglib-2.0 -lgobject-2.0 -Wl,-Bstatic -lrt -Wl,-Bdynamic -lpthread -ldl 
/usr/lib64/gcc/x86_64-slackware-linux/4.4.3/../../../../x86_64-slackware-linux/bin/ld: /usr/lib64/gcc/x86_64-slackware-linux/4.4.3/../../../../lib64/libm.a(e_powl.o): relocation R_X86_64_32S against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/lib64/gcc/x86_64-slackware-linux/4.4.3/../../../../lib64/libm.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[2]: *** [library/libdrumstick-file.so.0.3.0] Error 1
make[2]: Leaving directory `/tmp/txz/drumstick/drumstick-0.3.0/build'
make[1]: *** [library/CMakeFiles/drumstick-file.dir/all] Error 2
make[1]: Leaving directory `/tmp/txz/drumstick/drumstick-0.3.0/build'
make: *** [all] Error 2
Mi dice "recompile with -fPIC", ma io già compilo con -fPIC

Come risolvo?

Ciao
01

Re: compilazione timidy++ a 64bit: recompile with -fPIC

Inviato: mer 7 apr 2010, 10:53
da 414N
L'errore si riferisce alla libm di gcc (la libreria math in soldoni), che, a quanto pare, non è stata compilata con il flag di compilazione per PIC.
Dato che tutti gli SlackBuild (ufficiali e non) lo includono (anche inutilmente) per tutte le compilazioni quando ARCH=x86_64, tutto ciò mi sembra piuttosto strano.
Hai aggiornato i pacchetti di gcc di recente?

Re: compilazione timidy++ a 64bit: recompile with -fPIC

Inviato: mer 7 apr 2010, 11:45
da ZeroUno
uso la current.

http://ftp.osuosl.org/pub/slackware/sla ... SlackBuild :
x86_64)
OPTIMIZ="-O3 -fPIC"
LIBDIRSUFFIX="64"
;;

libm è compilata con -fPIC

Re: compilazione timidy++ a 64bit: recompile with -fPIC

Inviato: mer 7 apr 2010, 11:50
da d4z_c0nf
Quale versione di timidity?

rock

Re: compilazione timidy++ a 64bit: recompile with -fPIC

Inviato: mer 7 apr 2010, 12:22
da ZeroUno
timidity++ 2.13.2
gus-patches 20090910
kmid2 2.2.2
drumstick 0.3.0

compile order:
drumstick, gus-patches, timidy++, kmid2

effettivamente drumstick (che al momento è quello che mi da problemi) non è una dipendenza di timidy++ ma di kmid2.

Ciao
01

Re: compilazione timidy++ a 64bit: recompile with -fPIC

Inviato: mer 7 apr 2010, 12:35
da d4z_c0nf
ZeroUno ha scritto:timidity++ 2.13.2
gus-patches 20090910
kmid2 2.2.2
drumstick 0.3.0

compile order:
drumstick, gus-patches, timidy++, kmid2

effettivamente drumstick (che al momento è quello che mi da problemi) non è una dipendenza di timidy++ ma di kmid2.

Ciao
01
Ma perchè kmid2 è una dipendenza di timidity?

Io ho solo le gus-patches per timidity.
Quindi il problema è kmid, mi sa che ti conviene cambiare il titolo, così magari avrai più risposte.
L'unica cosa strana che vedo nel codice postato è che vengono date due volte -fPIC, ma forse questo non è un problema, ma addirittura due diverse direttive -O2 e -O3 e questo mi sa che potrebbe esserlo.

rock

Re: compilaz dipendenze kmid2 a 64bit: recompile with -fPIC

Inviato: mer 7 apr 2010, 12:56
da ZeroUno
d4z_c0nf ha scritto:Ma perchè kmid2 è una dipendenza di timidity?
Il viceversa...
A memoria ricordavo male

Per la precisione dovevo compilare kmid2 che richiede timidy e drumstick. timidy necessita solo gus-patches.

Chi mi da fastidio è drumstick. Timidy non lo ho ancora provato.
due diverse direttive -O2 e -O3 e questo mi sa che potrebbe esserlo.
no, non è un problema, innanzitutto perchè gcc prende solo la seconda, poi perchè ho provato anche senza e da lo stesso errore

Ciao
01

Re: Re: compilaz dipendenze kmid2 a 64bit: recompile with -f

Inviato: mer 7 apr 2010, 13:02
da ZeroUno
Sono andato a vedere la libreria libm.a e in particolare la libreria e_powl.o contenuta.

Codice: Seleziona tutto

# ldd e_powl.o
ldd: warning: you do not have execution permission for `./e_powl.o'
        not a dynamic executable

# file ./e_powl.o
./e_powl.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped

# strings ./e_powl.o
.symtab
.strtab
.shstrtab
.rela.text
.data
.bss
.rodata
.note.GNU-stack
.rela.eh_frame
infinity
inf_zero
zero
minf_mzero
minfinity
mzero
limit
__ieee754_powl

Re: compilaz dipendenze kmid2 a 64bit: recompile with -fPIC

Inviato: mer 7 apr 2010, 13:33
da ZeroUno
Compilato su una 13.0-stable compila perfettamente.

Re: compilaz dipendenze kmid2 a 64bit: recompile with -fPIC

Inviato: mer 7 apr 2010, 14:00
da conraid
compilano anche su una current 32 bit

comunque kmid2 ha di suo drumstick, e se guardi i sorgenti vedi che sono proprio l'ultima versione
prova a compilare kmid2 direttamente senza drumstick separato e vedi cosa ti dice

Re: compilaz dipendenze kmid2 a 64bit: recompile with -fPIC

Inviato: mer 7 apr 2010, 14:35
da ZeroUno
ZeroUno ha scritto:Compilato su una 13.0-stable compila perfettamente.
mmm. no, non è una stable ma una current al primo marzo. In quanto tale ha le stesse glibc e gcc della mia

a questo punto devo avere qualcosa di corrotto.

che kmid2 abbia già drumstik non so... io ho semplicemente visto lo slack-required dai sorgenti su slacky-13.0 e lì c'è scritto che gli serve quel pacchetto.
Controllerò, ma ora indipendentemente da questo devo capire perchè con la mia non compila.

Ciao
01

[SOLVED] Re: compilaz dipendenze kmid2 a 64bit: recompile

Inviato: mer 7 apr 2010, 14:47
da ZeroUno
upgradepkg --reinstall glibc*
e funziona tutto :-)
devo aver pasticciato con le librerie

Ciao
01