3

I am trying to do a build of rpm from source. I got through the ./configure and ran through a good chunk of make. Unfortunately, I keeping getting stopped up on undefined references to bzerror, bzwrite, bzflush and others. Looking around online, I see these functions are part of the bzip2 package. I've installed the development libraries, but I am still getting this message. Can anyone assist me in resolving these dependencies?

make[2]: Entering directory `/mnt/fedRoot/rpm-4.6.1/lib'
make  all-am
make[3]: Entering directory `/mnt/fedRoot/rpm-4.6.1/lib'
/bin/sh ../libtool --tag=CC   --mode=link gcc -std=gnu99  -g -O2 -fPIC -DPIC -D_REENTRANT -Wall -Wpointer-arith -Wmissing-prototypes -Wno-char-subscripts  -fno-strict-aliasing -fstack-protector   -o rpmdb_archive  ../db3/db_archive.o ../db3/util_sig.o librpm.la -lrt -lpthread 
gcc -std=gnu99 -g -O2 -fPIC -DPIC -D_REENTRANT -Wall -Wpointer-arith -Wmissing-prototypes -Wno-char-subscripts -fno-strict-aliasing -fstack-protector -o .libs/rpmdb_archive ../db3/db_archive.o ../db3/util_sig.o  ./.libs/librpm.so /mnt/fedRoot/rpm-4.6.1/rpmio/.libs/librpmio.so -lmagic -lelf -llua -lm -lnss3 -lpopt -lrt -lpthread  -Wl,--rpath -Wl,/usr/local/lib

/mnt/fedRoot/rpm-4.6.1/rpmio/.libs/librpmio.so: undefined reference to `bzerror'
/mnt/fedRoot/rpm-4.6.1/rpmio/.libs/librpmio.so: undefined reference to `bzwrite'
/mnt/fedRoot/rpm-4.6.1/rpmio/.libs/librpmio.so: undefined reference to `bzflush'
/mnt/fedRoot/rpm-4.6.1/rpmio/.libs/librpmio.so: undefined reference to `bzdopen'
/mnt/fedRoot/rpm-4.6.1/rpmio/.libs/librpmio.so: undefined reference to `bzread'
/mnt/fedRoot/rpm-4.6.1/rpmio/.libs/librpmio.so: undefined reference to `bzclose'
/mnt/fedRoot/rpm-4.6.1/rpmio/.libs/librpmio.so: undefined reference to `bzopen'
collect2: ld returned 1 exit status
make[3]: *** [rpmdb_archive] Error 1
make[3]: Leaving directory `/mnt/fedRoot/rpm-4.6.1/lib'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/mnt/fedRoot/rpm-4.6.1/lib'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/mnt/fedRoot/rpm-4.6.1'
make: *** [all] Error 2
Jeff Schaller
  • 67,283
  • 35
  • 116
  • 255

1 Answers1

2

The libraries would have to be picked up by configure. If you ran configure, then installed the bzip2 development files, then re-ran configure, it may still have picked wrong information from its cache. Run make distclean, then ./configure again.

  • @Gilles... I definitely have not re-run configure. I will give this a go later today. Thank you for the information... I did notice that when I tried to re-run make, it seemed to pick from shortly before the area where I was getting the error. This tells me that there were some files created/compiled that it can keep track of. Do I need to get rid of those, or start over again from a fresh rpm folder when I re-run ./configure? – Hari Seldon Jun 16 '11 at 10:14
  • @Hari: Under usual conventions, make clean removes everything written by make, but leaves stuff written by configure; make distclean removes everything created by either make or configure. – Gilles 'SO- stop being evil' Jun 16 '11 at 12:11
  • @Gilles ... Thanks for the info... off to the man pages for more :) – Hari Seldon Jun 16 '11 at 12:14
  • @Hari: This is a convention, it won't be in man pages. I think either the GNU make manual or the GNU coding standards describe these conventions (together with other less-widely followed conventions; make clean is pretty much universal, make distclean and its meaning with respect to configure is fairly common even outside GNU). – Gilles 'SO- stop being evil' Jun 16 '11 at 12:30
  • @Gilles: There is so much to take in with linux in general. I will add the GNU make manual to my pile of reading. Im determined to make this work... – Hari Seldon Jun 16 '11 at 13:00
  • make distclean worked as you explained... marking as answered. – Hari Seldon Jun 17 '11 at 14:07