Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 150357 - app-portage/eix-0.7.6 - generating eixrc fails
Summary: app-portage/eix-0.7.6 - generating eixrc fails
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Martin Väth
URL:
Whiteboard:
Keywords:
: 150986 (view as bug list)
Depends on:
Blocks:
 
Reported: 2006-10-07 01:37 UTC by Christopher Covington
Modified: 2006-10-12 03:15 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Christopher Covington 2006-10-07 01:37:38 UTC
# emerge eix

[... snip ...]

Making all in manpage
make[2]: Entering directory `/var/tmp/portage/eix-0.7.6/work/eix-0.7.6/manpage'
sed -e 's/$Date:[^,]*, *\([^)]*\)[^\$]*\$/\1/' \
            -e "s,\@PACKAGE_STRING\@,eix 0.7.6," \
            -e "s,\@EIX_CACHEFILE\@,/var/cache/eix," \
            -e "s,\@EIX_WIKI\@,http://dev.croup.de/proj/eix," \
            -e "s,\@LEVENSHTEIN_DISTANCE\@,2," \
            -e "s,\@PORTDIR_CACHE_METHOD\@,metadata," \
            -e 's,\([BI]\)<\([^>]\+\)>,\\f\1\2\\fR,g' ./eix.1.in > eix.1
make[2]: Leaving directory `/var/tmp/portage/eix-0.7.6/work/eix-0.7.6/manpage'
Making all in contrib
make[2]: Entering directory `/var/tmp/portage/eix-0.7.6/work/eix-0.7.6/contrib'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/var/tmp/portage/eix-0.7.6/work/eix-0.7.6/contrib'
make[2]: Entering directory `/var/tmp/portage/eix-0.7.6/work/eix-0.7.6'
make[2]: Leaving directory `/var/tmp/portage/eix-0.7.6/work/eix-0.7.6'
make[1]: Leaving directory `/var/tmp/portage/eix-0.7.6/work/eix-0.7.6'
src/eix: /usr/lib/gcc/i686-pc-linux-gnu/3.4.4/libstdc++.so.6: version `CXXABI_1.3.1' not found (required by src/eix)

!!! ERROR: app-portage/eix-0.7.6 failed.
Call stack:
  ebuild.sh, line 1546:   Called dyn_compile
  ebuild.sh, line 937:   Called src_compile
  eix-0.7.6.ebuild, line 20:   Called die

!!! generating eixrc failed
!!! If you need support, post the topmost build error, and the call stack if relevant.

# emerge --info
Portage 2.1.2_pre1-r1 (default-linux/x86/2006.0, gcc-4.1.1, glibc-2.4-r3, 2.6.16-beyond4 i686)
=================================================================
System uname: 2.6.16-beyond4 i686 Genuine Intel(R) CPU           T2400  @ 1.83GHz
Gentoo Base System version 1.12.5
Last Sync: Fri, 06 Oct 2006 10:50:01 +0000
app-admin/eselect-compiler: [Not Present]
dev-java/java-config: 1.3.3, 2.0.30
dev-lang/python:     2.4.3-r3
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     [Not Present]
dev-util/confcache:  [Not Present]
sys-apps/sandbox:    1.2.18.1
sys-devel/autoconf:  2.13, 2.60
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2
sys-devel/binutils:  2.17
sys-devel/gcc-config: 1.3.13-r4
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.17-r1
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=prescott -O3 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/eselect/compiler /etc/gconf /etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo"
CXXFLAGS="-march=prescott -O3 -pipe -fomit-frame-pointer -fvisibility-inlines-hidden"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks metadata-transfer parallel-fetch sandbox sfperms strict userpriv usersandbox"
GENTOO_MIRRORS="http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/ http://pandemonium.tiscali.de/pub/gentoo/ http://gentoo.inode.at/"
LANG="en_US.utf8"
LC_ALL="en_US.utf8"
LDFLAGS="-Wl,-O1"
LINGUAS="en de"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
USE="x86 X a52 aac acpi alsa apache2 apm berkdb bitmap-fonts bzip2 cairo cddb cdparanoia cli crypt cups directfb dlloader dri dts dvd elibc_glibc emboss encode esd fbcon firefox flac foomaticdb fortran fritzcapi_cards_fcusb fritzcapi_cards_fcusb2 fritzcapi_cards_fxusb gcj gdbm gif gnutls gpm gstreamer gtk gtk2 ieee1394 ilbc imlib input_devices_keyboard input_devices_mouse input_devices_synaptics ipv6 isdnlog java jpeg kernel_linux libcaca libg++ libwww linguas_de linguas_en mad mikmod mmx mng motif mp3 mpeg ncurses nls nptl nsplugin offensive ofx ogg opengl pam pcre pdf perl png postgres pppd profile python qt3 qt4 quicktime readline reflection ruby samba sdl session speex spell spl sse sse2 ssl svg tcpd theora threads tiff truetype truetype-fonts type1-fonts udev unicode userland_GNU vcd video_cards_i810 video_cards_vesa vorbis wmf x264 xinerama xml xmms xorg xpm xv xvid zlib"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Martin Väth 2006-10-07 08:15:21 UTC
This is not a bug of eix but an indication that something went wrong with the compiler upgrade on your system. Something in your system still points to the obsolete compiler library /usr/lib/gcc/i686-pc-linux-gnu/3.4.4/libstdc++.so.6 which shouldn't be the case after the upgrade to gcc-4.1. See e.g.
http://forums.gentoo.org/viewtopic-t-502550-highlight-.html
Comment 2 Christopher Covington 2006-10-07 10:30:49 UTC
I read through the forum thread but I don't think many of the possible diagnoses apply in my case.

# find / -wholename "*i386-pc-linux-gnu/3.4.6*"
[nothing]

# gcc-config -l
 [1] i686-pc-linux-gnu-3.4.4
 [2] i686-pc-linux-gnu-3.4.4-hardened
 [3] i686-pc-linux-gnu-3.4.4-hardenednopie
 [4] i686-pc-linux-gnu-3.4.4-hardenednopiessp
 [5] i686-pc-linux-gnu-3.4.4-hardenednossp
 [6] i686-pc-linux-gnu-4.1.1 *

I recently got rid of eselect-compiler as it was blocking an update. Should I run revdep-rebuild?

I'm not certain if this is a dupe of #120469. I switched compilers like a month ago.
Comment 3 Martin Väth 2006-10-07 12:18:54 UTC
(In reply to comment #2)
> 
> # find / -wholename "*i386-pc-linux-gnu/3.4.6*"

You switched from a different compiler version, of course, so you won't find that version, but I think you will be able to put your correct 3.4.4 instead in the thread. Did you try e.g. fix_libtool_files.sh 3.4.4?

Roughly speaking: You will have to find out which files on your system still contain the obsolete references, and you have to reemerge the corresponding packages; for config-files it may be enough to remove resp. edit them (fix_libtool_files.sh does this for the *.la-files - maybe this is enough). You may want to use something like
  grep -Rl "686-pc-linux-gnu/3.4.4" /etc /usr /lib*
to find further files. Of course, this will probably show you many files from gcc-3.4.4, so you might want to uninstall gcc-3.4.4 first (you can quickpkg it if you want it later again).
Comment 4 DrChandra the Gentoo Person 2006-10-08 16:29:17 UTC
I have the same problem with old files from gcc-3.4.6 hanging around. "fix_libtools_files.sh 3.4.6" did not fix the problem. Emerging libstdc++-v3-3.3.6 did not help either. The key is "CXXABI_1.3.1". Whatever supplies that is what need to be in place when eix-0.7.6 is emerged. Seems like a missing dependency.
Comment 5 DrChandra the Gentoo Person 2006-10-08 16:38:10 UTC
I was able to emerge eix-0.7.6 after an "emerge -C libstdc++-v3", which removes the old stdc++ compatibility support. Perhaps new versions of eix should block against that package.
Comment 6 DrChandra the Gentoo Person 2006-10-08 16:46:14 UTC
FWIW: According to 'objdump /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/libstdc++.so.6.0.8' showed "CXXABI_1.3.1" is in the gcc-4.1.1 libraries. The bug appears to be that the old libstdc++ support is able to distract the eix config script from checking that far into the C++ support. I had gcc-4.1.1 selected during previous failures, but it wasn't visible to the eix compile.
Comment 7 Martin Väth 2006-10-08 17:40:50 UTC
(In reply to comment #4)
> The key is "CXXABI_1.3.1".
No, it is not. The key is that the wrong library version is used (namely in this case that of gcc-3.4.4). If the compiler and libraries were configured correctly, it should not be possible that a reference to that version is produced (certainly, no such reference is hard-coded into the eix autotools/make - which BTW is rather standard).
All people with this problem seem to have used eselect-compiler - probably this has created some wrong references and did not delete them (and gcc-config either modifies other references than eselect-compiler or is even caused to malfunction by the references of eselect-compiler). Of course, unmerging eselect-compiler does not fix this bug, since unmerging does not modify the files/links which eselect-compiler has modified. Moreover, files in /etc/... are not removed by unmerging anyway.
A first step might consist in eliminating the references to 3.4.4 in /etc/eselect/*, /etc/env.d/*, and in /etc/ld.so.conf (and to call env-update and source /etc/profile afterwards - re-select your compiler with gcc-config to check that the reference is *not* created again in these files). However, if this does not help or if there is no such reference then you really have to unmerge the old gcc and check the whole remaining system where there are still references - there will not be many, and one of them must be the cause.
Comment 8 Martin Väth 2006-10-08 18:04:19 UTC
(In reply to comment #5)
> I was able to emerge eix-0.7.6 after an "emerge -C libstdc++-v3",
Don't get fooled by this. Perhaps this is a cure for the symptom but not of the cause: The problem is not the old libstdc++.so.5 but that the wrong 3.4.4/libstdc++.so.6 library is referenced instead of 4.1.1/libstdc++.so.6. BTW, on my system, everything works very well with libstdc++-v3 installed.
Comment 9 Christopher Covington 2006-10-09 07:52:43 UTC
(In reply to comment #5)
> I was able to emerge eix-0.7.6 after an "emerge -C libstdc++-v3", which removes
> the old stdc++ compatibility support. Perhaps new versions of eix should block
> against that package.
> 

Works for me.OT: I find it weird that "emerge -uDN world" wants to reemerge libstdc++-v3 but "equery depends libstdc++-v3" returns no results.
Comment 10 Martin Väth 2006-10-09 16:58:09 UTC
(In reply to comment #9)
> Works for me.

As I told you, this probably only cures the symptom. Anyway, should I closed the bug now?

> OT: I find it weird that "emerge -uDN world" wants to reemerge
> libstdc++-v3 but "equery depends libstdc++-v3" returns no results.

IIRC, equery does not consider dependencies triggered by useflags.

Comment 11 Christopher Covington 2006-10-11 11:30:58 UTC
(In reply to comment #10)
> As I told you, this probably only cures the symptom. Anyway, should I closed
> the bug now?
I suppose so, although I still don't understand the "right way" to fix this issue.
Comment 12 DrChandra the Gentoo Person 2006-10-11 16:37:39 UTC
The problem came back after some emerge updates. gcc-3.4.6 support got pulled back in, and the successfully compiled eix stopped working, again complaining about missing "CXXABI_1.3.1". I was again able to fix the problem by making /usr/lib/gcc/$(CHOST)/3.4.6 unfindable.

I found the root cause of the problem. The folowing lines appeared in my /etc/ld.so.conf:

/usr/lib/gcc/i686-pc-linux-gnu/3.4.6
/usr/lib/gcc/i686-pc-linux-gnu/4.1.1
/usr/lib/gcc/i686-pc-linux-gnu/3.4.6

When I removed the first reference to 3.4.6, and did a "ldconfig", eix started working again, even with the compiler directory in its proper place.

I don't know how that series of lines got arranged like that. I didn't do it.

So perhaps this bug should become a report of some inconsistencies after a gcc upgrade, preventing CXXABI_1.3.1 from being visible to apps that need it.
Comment 13 DrChandra the Gentoo Person 2006-10-11 16:55:50 UTC
Further investigation shows that the presence of a stale /etc/env.d/05compiler file is what provided the old compiler reference in /etc/ld.so.conf prior to the one in /etc/env.d/05gcc. The erroneous file belongs to "eselect-compiler", and is easily corrected. Since I no longer have eselect-compiler emerged, I removed it.
Comment 14 Jakub Moc (RETIRED) gentoo-dev 2006-10-12 03:15:01 UTC
*** Bug 150986 has been marked as a duplicate of this bug. ***