Wykrywanie rpm-devel-4.2 pod Owlem

Paweł A. Gajda mis at k2.net.pl
Mon Nov 8 21:35:25 CET 2004


Monday 08/11/2004 21:17:38, Maciek Pasternacki:
> configure:11238: gcc -o conftest -g -O2 -fno-builtin-log -D_REENTRANT -I/usr/include/db4 -I/usr/incl
> ude/rpm -I/usr/include/ncurses   -L$(top_builddir)/trurlib conftest.c -lrpm -lrpmdb -lelf -ldb-4.0 -
> lrpmio -lpopt -lz -lbz2 -lpcre -lreadline -ltinfo  >&5
> /usr/bin/ld: cannot find -lelf
> collect2: ld returned 1 exit status
> configure:11244: $? = 1
> 
> Libelf występuje w configure.in tylko w jednym miejscu:
> 
> AC_CHECK_LIB(rpm, rpmReadPackageInfo,[LIBS="-lrpm $DBLIB $LIBS"],
>         AC_CHECK_LIB(rpm, rpmReadPackageHeader,
>                 [LIBS="-lrpm -lrpmdb $DBLIB $LIBS"],
>                 AC_CHECK_LIB(rpm, rpmReadPackageFile,
>                         [LIBS="-lrpm -lrpmdb -lelf $DBLIB $LIBS"
>                          AC_DEFINE([HAVE_RPM_4_1],1,[])],
>                         AC_MSG_ERROR(["rpmlib not found"]),
>                         [$DBLIB -lrpmdb]),
>                 [$DBLIB -lrpmdb]),
>             [$DBLIB])
> 
> W PLD /usr/lib/libelf* należą do pakietu elfutils-libelf; czy to jest
> wymagane do działania poldka?  (na librpm3 poldek (trochę starszy --
> 0.18.3) się bez libelf budował na czysto; teraz z rpm-4.2 ./configure
> wykłada się w dokładnie tym samym miejscu).

Wygląda na to, że Owl ma inaczej zbudowanego rpma, albo też libelf był
wymagany od którejś "wersji" rpm 4.2. Sprawdziłem właśnie RH9, Fedorę C1 
oraz PLD i wszędzie librpm.so jest zlinkowane z libelf:

RH9: 
$ rpm -q rpm; ldd /usr/lib/librpm.so | grep libelf
rpm-4.2-0.69
        libelf.so.1 => /usr/lib/libelf.so.1 (0x402c4000)

FC1
$ rpm -q rpm; ldd /usr/lib/librpm.so | grep libelf
rpm-4.2.1-0.30
        libelf.so.1 => /usr/lib/libelf.so.1 (0x402a6000)

Poprawię to by skrypt sprawdzał najpierw czy libelf jest obecna, 
a póki co wyrzuć to ręcznie, co pewnie już zrobiłeś (buduje się?) 






More information about the poldek mailing list