On Sun, May 16, 2004 at 06:43:41AM -0000, [EMAIL PROTECTED] (via RT) wrote: > Following the INSTALL instructions doesn't yield flawless perl compilation > on all systems. > > On my system, make test fails on 5 tests all with problems with ndbm. > > /home/clock/perl-5.8.4-bad/perl: relocation error: > ../lib/auto/NDBM_File/NDBM_File.so: undefined symbol: dbm_open > # STATUS: 32512 > # Failed at run/fresh_perl.t line 53 > > ndbm is present on my system: > [EMAIL PROTECTED]:~$ locate ndbm > /usr/include/db1/ndbm.h > /usr/include/gdbm/ndbm.h > /usr/include/ndbm.h > /usr/lib/libndbm.a > /usr/lib/libndbm.so > /usr/lib/perl5/site_perl/5.8.0/i686-linux/ndbm.ph > > It is provided by gdbm. I ensured up-to-date version of gdbm is installed > by freshly reinstalling gdbm (gdbm-1.8.3), removing perl source and trying > everything again. I also did ldconfig after reinstalling gdbm. I also don't > have full disk.
Thanks for your report. I was hoping someone else would answer since I'm not a linux user myself, but rather than let the silence continue, I will stick my neck out and hope someone else will correct me. Looking at the hints in ext/NDBM_File/hints/linux.pl, it seems that perl is of the opinion that the libndbm.a library is to be avoided and the compatibility routines in libgdbm.a used instead. However, I thought that as of gdbm-1.8.1, the compatibility routines were moved to a separate library libgdbm_compat.a. I see no sign of perl's configuration process checking for or using this library (except with cygwin), but I do see several linux bug reports where the library is being linked; this implies to me that some linux distributions are getting Configure to do so. So, are you sure the libndbm* files are from your fresh gdbm installation? If so, commenting out the $self->{LIBS} = line in the linux hints file may help; if not, and there are the libgdbm_compat* files, changing it to say -lgdbm_compat may help. Please let us know the results. Also, please send output from the ./myconfig script in your build directory. The info attached to your report was from a 5.8.0 installation. For future reference, you can run "make nok" to generate a bug report using the failed build's information (or just email your report to [EMAIL PROTECTED] with the ./myconfig output attached, assuming at least the Configure stage was successful).