The following message is displayed and fails to compile on Gentoo/FBSD (AMD64). Making GDBM_File (all) Running Makefile.PL in ext/GDBM_File ../../miniperl Makefile.PL INSTALLDIRS=perl INSTALLMAN1DIR=none INSTALLMAN3DIR=none PERL_CORE=1 LIBPERL_A=libperl.so.5.12.3 LINKTYPE=dynamic Writing Makefile for GDBM_File gmake[1]: Entering directory `/var/tmp/portage/dev-lang/perl-5.12.3/work/perl-5.12.3/ext/GDBM_File' gmake[1]: Leaving directory `/var/tmp/portage/dev-lang/perl-5.12.3/work/perl-5.12.3/ext/GDBM_File' Making all in ext/GDBM_File gmake all PERL_CORE=1 LIBPERL_A=libperl.so.5.12.3 LINKTYPE=dynamic gmake[1]: Entering directory `/var/tmp/portage/dev-lang/perl-5.12.3/work/perl-5.12.3/ext/GDBM_File' cp GDBM_File.pm ../../lib/GDBM_File.pm ../../miniperl "-I../../lib" "-I../../lib" ../../lib/ExtUtils/xsubpp -noprototypes -typemap ../../lib/ExtUtils/typemap -typemap typemap GDBM_File.xs > GDBM_File.xsc && mv GDBM_File.xsc GDBM_File.c x86_64-gentoo-freebsd8.0-gcc -c -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -O2 -pipe -DVERSION=\"1.10\" -DXS_VERSION=\"1.1\" -DPIC -fPIC "-I../.." GDBM_File.c Running Mkbootstrap for GDBM_File () chmod 644 GDBM_File.bs rm -f ../../lib/auto/GDBM_File/GDBM_File.so LD_RUN_PATH="/usr/lib" x86_64-gentoo-freebsd8.0-gcc -shared -L/usr/local/lib GDBM_File.o -o ../../lib/auto/GDBM_File/GDBM_File.so \ -lgdbm \ /usr/lib/gcc/x86_64-gentoo-freebsd8.0/4.5.2/../../../../x86_64-gentoo-freebsd8.0/bin/ld: /usr/lib/gcc/x86_64-gentoo-freebsd8.0/4.5.2/../../../libgdbm.a(gdbmfetch.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC /usr/lib/gcc/x86_64-gentoo-freebsd8.0/4.5.2/../../../libgdbm.a: could not read symbols: Bad value collect2: ld returned 1 exit status gmake[1]: *** [../../lib/auto/GDBM_File/GDBM_File.so] Error 1 gmake[1]: Leaving directory `/var/tmp/portage/dev-lang/perl-5.12.3/work/perl-5.12.3/ext/GDBM_File' Unsuccessful make(ext/GDBM_File): code=512 at make_ext.pl line 449. gmake: *** [lib/auto/GDBM_File/GDBM_File.so] Error 25 emake failed Reproducible: Always Steps to Reproduce: 1. emerge perl 2. 3.
Created attachment 269939 [details, diff] patch for gdbm-1.8.3-r4.ebuild
problem confirmed on vanilla FreeBSD 8.2 with Gentoo Prefix
Comment on attachment 269939 [details, diff] patch for gdbm-1.8.3-r4.ebuild no, this isnt the right approach: libgdbm.a should _not_ be PIC; libgdbm.so* should be and that's what gcc should find. Why dont you have libgdbm.so ?
probably because libgdbm.a is in /usr/lib here
(In reply to comment #4) > probably because libgdbm.a is in /usr/lib here and the .so isnt ?
This problem no longer occurs on amd64-fbsd (9.0/8.2 both, 20120415 snapshot). How is on prefix ?
(In reply to comment #6) > This problem no longer occurs on amd64-fbsd (9.0/8.2 both, 20120415 > snapshot). > How is on prefix ? this was probably due to a bad installation of libgdbm, either missing .so or usr ldscript.