budowanie kde-base wywala sie

Paweł Sikora pluto w ds14.agh.edu.pl
Wto, 3 Lut 2004, 16:00:03 CET


On Tuesday 03 of February 2004 10:52, Jakub Bogusz wrote:
> On Tue, Feb 03, 2004 at 10:41:02AM +0100, Tomasz Kowalczyk wrote:
> > Dnia nie 1. lutego 2004 22:44, Paweł Sikora napisał:
> > > [~/rpm/BUILD/db-4.2.52] # objdump -t build_unix/.libs/mut_pthread.o
> > >
> > > (...)
> > > 00000000         *UND*  00000000 pthread_mutex_init
> > > 00000000         *UND*  00000000 pthread_mutexattr_destroy
> > > 00000000         *UND*  00000000 pthread_condattr_destroy
> > > 00000000         *UND*  00000000 pthread_cond_init
> > > 00000000         *UND*  00000000 pthread_condattr_init
> > > 00000000         *UND*  00000000 pthread_condattr_setpshared
> > > 00000000         *UND*  00000000 pthread_mutexattr_init
> > > 00000000         *UND*  00000000 pthread_mutexattr_setpshared
> > > 000001a0 g     F .text  0000030f __db_pthread_mutex_lock
> > > 00000000         *UND*  00000000 pthread_mutex_trylock
> > > 00000000         *UND*  00000000 pthread_mutex_lock
> > > 00000000         *UND*  00000000 pthread_cond_wait
> > > 00000000         *UND*  00000000 pthread_mutex_unlock
> > > 000004b0 g     F .text  000000fd __db_pthread_mutex_unlock
> > > 00000000         *UND*  00000000 pthread_cond_signal
> > > 000005b0 g     F .text  00000066 __db_pthread_mutex_destroy
> > > 00000000         *UND*  00000000 pthread_mutex_destroy
> > >
> > > u mnie w systemie z glibc+nptl w 2.6.2 db nie jest zlinkowane
> > > z -lpthread i jakos dziala bezproblemowo, bo relokacje
> > > symboli pthread_... bierze z glibca (objdump to potwierdza).
> > >
> > > [pluto]-[~/rpm/SPECS] # ldd /usr/lib/libdb-4.2.so
> > >         linux-gate.so.1 =>  (0xffffe000)
> > >         libc.so.6 => /lib/libc.so.6 (0x400fb000)
> > >         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
>
> To nie znaczy, że bierze wszystkie potrzebne symbole z glibca - część
> może być nierozwiązanych.
> Spróbuj (brzydko, ale skutecznie) "gcc /usr/lib/libdb-4.2.so" - przy
> poprawnie zlinkowanej bibliotece powinno brakować tylko "main".

dobrze prawi, dac mu vodki :)

[pluto]-[~] # gcc /usr/lib/libdb-4.2.so
/usr/lib/gcc-lib/i686-pld-linux/3.3.2/../../../crt1.o(.text+0x18): In function 
`_start':
: undefined reference to `main'
/usr/lib/libdb-4.2.so: undefined reference to `pthread_condattr_setpshared'
/usr/lib/libdb-4.2.so: undefined reference to `pthread_mutexattr_destroy'
/usr/lib/libdb-4.2.so: undefined reference to `pthread_mutexattr_setpshared'
/usr/lib/libdb-4.2.so: undefined reference to `pthread_mutexattr_init'
/usr/lib/libdb-4.2.so: undefined reference to `pthread_mutex_trylock'
collect2: ld returned 1 exit status

[pluto]-[~] # gcc /usr/lib/libdb-4.2.so -lpthread
/usr/lib/gcc-lib/i686-pld-linux/3.3.2/../../../crt1.o(.text+0x18): In function 
`_start':
: undefined reference to `main'
collect2: ld returned 1 exit status

spec wedruje do poprawy. zajme sie tym chyba jutro po poludniu,
bo jutro z rana mam egzam ze sztucznej intelignecji, a dzis jeszcze
oblewanie swiezego magistra :)

> > > coprawda ./configure ma taka mila opcje:
> > >
> > > --enable-posixmutexes   Force use of POSIX standard mutexes.
> > >
> > > ale ona nie jest domyslnie wlaczana.
>
> To jest _wymuszenie_ - bez tej opcji configure decyduje na podstawie
> innych przesłanek (wg opisu (nie zaglądałem do configure) np. obsługi
> dzielenia semaforów między procesami - która jest w NPTL, a nie ma
> w linuxthreads).

u mnie ./configure nie wlaczalo tej opcji na podstawie przeslanek (nptl).
trzeba recznie wymusic ta opcje (po przeczytaniu dokumentacji oczywiscie).

-- 
The only thing necessary for the triumph of evil
  is for good men to do nothing.
                                           - Edmund Burke



Więcej informacji o liście dyskusyjnej pld-devel-pl