"make: *** No rule to make target `libperl.so.1.5.8'. Stop." make depends succeeds, but then the ebuild tries to execute 'make libperl.so.1.5.8' and the Makefile there doesn't contain such a target. Portage 2.0.50-r9 (default-x86-2004.2, gcc-3.3.3, glibc-2.3.3.20040420-r0, 2.6.7-gentoo-r8) ================================================================= System uname: 2.6.7-gentoo-r8 i686 AMD Athlon(tm) XP 2100+ Gentoo Base System version 1.4.16 ccache version 2.3 [enabled] Autoconf: sys-devel/autoconf-2.59-r3 Automake: sys-devel/automake-1.8.3 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-march=athlon-xp -O3 -pipe" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=athlon-xp -O3 -pipe" DISTDIR="/mnt/everything/portage/distfiles" FEATURES="autoaddcvs ccache nostrip sandbox" GENTOO_MIRRORS="http://gentoo.mirrors.pair.com/ http://lug.mtu.edu/gentoo/" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/mnt/everything/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="3dnow X aalib alsa arts avi berkdb bonobo canna cdr cjk composite crypt cups dvd encode esd faad foomaticdb freewnn gdbm gif gnome gnome2 gpm gtk gtk2 gtkhtml guile imap imlib java jpeg kde libg++ libwww mad mikmod motif mozilla mpeg mysql nas ncurses nls oggvorbis opengl oss pam pdflib perl png ppds python qt quicktime readline samba scanner sdl slang spell sse ssl tcltk tcpd tetex tiff truetype x86 xml2 xmms xv zlib" Reproducible: Always Steps to Reproduce:
My system does this too. I even switched my make.profile to use 2004.2 and everything but nothing seems to be helping. I get the exact same error. The output of my emerge info is: Portage 2.0.50-r9 (default-x86-2004.2, gcc-3.3.3, glibc-2.2.5-r2,2.3.3.20040420-r1, 2.6.0-test8) ================================================================= System uname: 2.6.0-test8 i686 Pentium II (Deschutes) Gentoo Base System version 1.4.16 Autoconf: sys-devel/autoconf-2.59-r3 Automake: sys-devel/automake-1.8.3 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-march=pentium2 -O3 -pipe" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/bind /var/qmail/alias /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=pentium2 -O3 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://gentoo.oregonstate.edu http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="apache2 apm arts avi berkdb crypt cups encode esd foomaticdb gdbm gif gpm gtk2 imlib java jpeg kde libg++ libwww mad mikmod motif mpeg mysql ncurses nls oggvorbis opengl oss pam pdflib perl png python quicktime readline sasl sdl slang spell ssl svga tcpd truetype x86 xml xml2 xmms xv zlib"
I compared the generated Makefile to one on a system where libperl compiles fine, and it seems that the Configure script determines that the system does not support shared libs and hence the make fails. Now I'm gonna try to figure out why Configure does that...
Okay. Found the problem. I have /usr mounted on /usr/local and perl adds -L /usr/local/lib which causes the linker to use the libdl in /usr/lib. That libdl is a *RELATIVE* link to /lib/libdl.so which doesn't work when accessed through /usr/local/lib. I simply made the libdl.so link /usr/lib absolute instead of relative. That fixed it for me. I don't know if this really counts as a bug considering probably not that many people like to have /usr mounted on /usr/local. However, I don't see why the libdl.so link needs to be relative.
Aha, Undoubtably the problem for me is that I copied my /usr to another partition and symlink it now. I should be able to find the problem. I'll report back.
my symlink to libdl.so was broken.. In fact the symlink wasn't even there. ldconfig probably killed it off due to it being invalid or something. So I did ln -s /lib/libdl.so.2 /usr/lib/libdl.so and whala, libperl builds once again. So I hardly think this is a bug and is more related to individual system troubles so this might be something that can be closed. Perhaps perl's configure script could be a bit more robust in this area though since /lib seems to be the common place for libdl.so.1 (or .2). By all means, thanks for finding this. I probably never would have figure it out ;-)
Closing as "Can't Fix" - namely because it was user-derived :) (no offense intended)