I have ghc-6.0 and ghc-bin-6.0 and trying to emerge 6.0.1 and get the error below. Further investigation shows that the name of the offending library is encoded into the ghc-6.0 binary which is the compiler used for the compilation. Somehow it seems as if ghc require the minor version of libraries to be the same because the readline i have installed is libreadline.so.4.3. If 4.1 is required the ebuild should depend on readline-4.1 as well. --- # ghc-6.0 -strings ghc-6.0 | grep lib /lib/ld-linux.so.2 libreadline.so.4.1 libncurses.so.5 libdl.so.2 libm.so.6 libgmp.so.3 libpthread.so.0 libc.so.6 --- error /usr/bin/ghc -M -optdep-f -optdep.depend -osuf o -H16m -O HaskTags.hs /usr/lib/ghc-6.0/ghc-6.0: error while loading shared libraries: libreadline.so.4.1: cannot open shared object file: No such file or directory make[3]: *** [depend] Error 127 make[2]: *** [boot] Error 1 make[1]: *** [boot] Error 1 make[1]: Leaving directory `/var/tmp/portage/ghc-6.0.1/work/ghc-6.0.1/ghc' make: *** [build] Error 1 !!! ERROR: dev-lang/ghc-6.0.1 failed. !!! Function src_compile, Line 93, Exitcode 2 !!! (no error message) Reproducible: Always Steps to Reproduce: Probable steps: 1. emerge ghc 2. upgrade readline 3. upgrade ghc Actual Results: The ebuild borked Expected Results: It should have installed ghc-6.0.1 Portage 2.0.49_pre18 (default-x86-1.4, gcc-3.2.3, glibc-2.2.5-r4,2.3.2-r1, 2.4.20-gentoo-r3-cfg1) ================================================================= System uname: 2.4.20-gentoo-r3-cfg1 i686 AMD Athlon(tm) processor GENTOO_MIRRORS="ftp://ftp.uninett.no/pub/linux/Gentoo ftp://gentoo.linux.no/pub/gentoo/ http://gentoo.linux.no/" CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config /usr/kde/3/share/config /usr/X11R6/lib/X11/xkb /usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" PORTDIR="/usr/portage" DISTDIR="/usr/portage/distfiles" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR_OVERLAY="/data/portage" USE="x86 oss 3dnow apm avi crypt cups encode foomaticdb gif jpeg gnome libg++ mad mikmod mmx mpeg ncurses nls pdflib png spell truetype xml2 xmms xv zlib gtkhtml alsa gdbm berkdb slang readline arts tetex aalib nas bonobo ggi tcltk java guile ruby X sdl gpm tcpd pam libwww ssl perl python esd imlib oggvorbis gtk qt kde motif opengl mozilla cdr scanner apache2 mozp3p mozsvg mozxmlterm -quicktime -svga" COMPILER="gcc3" CHOST="i686-pc-linux-gnu" CFLAGS="-O -march=athlon-tbird -pipe" CXXFLAGS="-O -march=athlon-tbird -pipe" ACCEPT_KEYWORDS="x86 ~x86" MAKEOPTS="-j2" AUTOCLEAN="yes" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" FEATURES="sandbox ccache emergemail"
umm if you upgraded your readline, it would have broken libraries/binaries ... try running `revdep-rebuild` from gentoolkit
revdep-rebuild doesn't work since ghc is used to build ghc. But unmerging ghc (and merging ghc-bin if you haven't got it) and then remerging ghc again works. Upgrading a libraries minor version doesn't necessarily mean application breaks this is why thought it was a but. And it maybe someone else thought this too because in 6.0.1 libreadline only specifies major version. Ahh well, I'm happy now anyway since both the problem and the symptom is gone :) # ldd /usr/lib/ghc-6.0.1/ghc-6.0.1 libreadline.so.4 => /lib/libreadline.so.4 (0x4002b000) libncurses.so.5 => /lib/libncurses.so.5 (0x40057000) ... Or by same command used on 6.0: # strings /usr/lib/ghc-6.0.1/ghc-6.0.1 | grep lib /lib/ld-linux.so.2 libreadline.so.4 libncurses.so.5 libdl.so.2 libm.so.6 libgmp.so.3 libpthread.so.0 libc.so.6
hmm, i see ... quite the 'edge' case for revdep-rebuild to handle ...