budowanie kde-base wywala sie

Jakub Bogusz qboosh w pld-linux.org
Wto, 3 Lut 2004, 10:52:51 CET


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".

> > 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 to wyglada tak samo, ale dalej nie moge zbodowac kdebase.
> probowalem przebudowac db z --with-posixmutex ale to nie pomoglo.

Może pomogłoby --without-...?

Przy budowaniu z libdb musi być zlinkowane z -lpthread, a najwyraźniej
w pakiecie tego brakuje.

W Ac NPTL jeśli będzie, to najwyżej opcjonalnie (jak w RH - obok
linuxthreads - o ile ktoś zrobi) - więc db musi chyba zostać budowane
bez posixmutexes.


-- 
Jakub Bogusz    http://cyber.cs.net.pl/~qboosh/



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