/usr/bin/gcov says, "gcc-config error: gcov wrapper: Could not determine which compiler to use. Invalid CTARGET or CTARGET has no selected profile." $(gcc-config -B)/gcov works fine. Reproducible: Always Steps to Reproduce: 1. /usr/bin/gcov Actual Results: $ gcov gcc-config error: gcov wrapper: Could not determine which compiler to use. Invalid CTARGET or CTARGET has no selected profile. $ Expected Results: $ $(gcc-config -B)/gcov Usage: gcov [OPTION]... SOURCEFILE Print code coverage information. -h, --help Print this help, then exit -v, --version Print version number, then exit -a, --all-blocks Show information for every basic block -b, --branch-probabilities Include branch probabilities in output -c, --branch-counts Given counts of branches taken rather than percentages -n, --no-output Do not create an output file -l, --long-file-names Use long output file names for included source files -f, --function-summaries Output summaries for each function -o, --object-directory DIR|FILE Search for object files in DIR or called FILE -p, --preserve-paths Preserve all pathname components -u, --unconditional-branches Show unconditional branch counts too For bug reporting instructions, please see: <URL:http://bugs.gentoo.org/>. $ $ emerge --info Portage 2.1.2.4 (default-linux/amd64/2006.1/desktop, gcc-4.1.2, glibc-2.5-r1, 2.6.20-gentoo-r3 x86_64) ================================================================= System uname: 2.6.20-gentoo-r3 x86_64 AMD Athlon(tm) 64 Processor 3500+ Gentoo Base System release 1.12.10 Timestamp of tree: Fri, 20 Apr 2007 03:01:02 +0000 ccache version 2.4 [disabled] dev-java/java-config: 1.3.7, 2.0.31-r7 dev-lang/python: 2.3.6, 2.4.4 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: 2.4-r6 sys-apps/sandbox: 1.2.18.1 sys-devel/autoconf: 2.13, 2.61 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10 sys-devel/binutils: 2.17 sys-devel/gcc-config: 1.3.16 sys-devel/libtool: 1.5.23b virtual/os-headers: 2.6.20-r2 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="yes" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -pipe" CHOST="x86_64-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 /var/bind" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/java-config/vms/ /etc/php/apache1-php5/ext-active/ /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c" CXXFLAGS="-O2 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="distlocks metadata-transfer sandbox sfperms strict" GENTOO_MIRRORS="http://gentoo.gg3.net http://mirror.gentoo.gr.jp http://gentoo.mirroed.ca" LANG="ja_JP.eucJP" LINGUAS="ja en" 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 --filter=H_**/files/digest-*" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X acl alsa amd64 apache2 arts audiofile avi berkdb bitmap-fonts bonobo bzlib cairo canna cdparanoia cdr chardet chasen cjk cli cracklib crypt cscope cups dbus doc dri dv dvd dvdr eds emboss emul-linux-x86 encode esd examples fam firefox flash font-server fortran gcj gdbm gif gnome gpm gstreamer gtk gtk2 guile hal iconv ipv6 isdnlog java java5 javamail javascript jpeg jpeg2k kde ldap libg++ libwww m17n-lib mad mbox midi mikmod milter mime mng modplug motif mp3 mpeg mplayer mule ncurses nls nptl nptlonly oav objc ogg oggvorbis opengl oss pam pcre pdf perl php png postgres ppds pppd python qt qt3 qt4 quicktime readline reflection samba sdk sdl session sid slang spell spl ssl svg symlink tcltk tcpd threads tiff timidity truetype truetype-fonts type1-fonts unicode usb vorbis wma wmf xml xml2 xorg xpm xv zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="ja en" USERLAND="GNU" VIDEO_CARDS="apm ark ati chips cirrus cyrix dummy fbdev glint i128 i810 mga neomagic nv rendition s3 s3virge savage siliconmotion sis sisusb tdfx tga trident tseng v4l vesa vga via vmware voodoo" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, LDFLAGS, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS $ gcc-config -l [1] x86_64-pc-linux-gnu-3.3.6 [2] x86_64-pc-linux-gnu-3.3.6-hardened [3] x86_64-pc-linux-gnu-3.3.6-hardenednopie [4] x86_64-pc-linux-gnu-3.3.6-hardenednopiessp [5] x86_64-pc-linux-gnu-3.3.6-hardenednossp [6] x86_64-pc-linux-gnu-3.4.6 [7] x86_64-pc-linux-gnu-3.4.6-hardened [8] x86_64-pc-linux-gnu-3.4.6-hardenednopie [9] x86_64-pc-linux-gnu-3.4.6-hardenednopiessp [10] x86_64-pc-linux-gnu-3.4.6-hardenednossp [11] x86_64-pc-linux-gnu-4.0.4 [12] x86_64-pc-linux-gnu-4.1.2 * $ gcc-config -B /usr/x86_64-pc-linux-gnu/gcc-bin/4.1.2 $
Did you have eselect-compiler installed at some point in the past?
(In reply to comment #1) > Did you have eselect-compiler installed at some point in the past? > Probably, yes. I had installed (and removed) eselect-compiler, as far as I remember. Does it affect? ... O.K, now I found /etc/eselect/compiler/select.conf, which says; ----------- [i686-pc-linux-gnu] profile=x86_64-pc-linux-gnu-4.1.1/x86-vanilla [x86_64-pc-linux-gnu] profile=x86_64-pc-linux-gnu-4.1.1/amd64-vanilla ----------- Modified as s/4.1.1/4.1.2/, then the problem seems be solved. Which is it a bug or not? Can I close this issue?
If you removed eselect-compiler, and put back gcc-config, then you probably have some stale wrapper binaries lying around from eselect-compiler. You need to get rid of these; I posted some instructions somewhere but can't find them now :/ Anyway; try something like: $ find /usr/bin | \ xargs grep -l "Could not determine which compiler to use" 2> /dev/null to find the stale wrappers, and just remove them. The list should include 'gcov' but should _not_ include 'gcc' itself - if it does include 'gcc', _don't_ delete anything but report back here first (otherwise you may end up with no compiler!).
(In reply to comment #3) > to find the stale wrappers, and just remove them. The list should include > 'gcov' but should _not_ include 'gcc' itself - if it does include 'gcc', > _don't_ delete anything but report back here first (otherwise you may end up > with no compiler!). > Thank you for your information. I did as follows; ---------- $ find /usr/bin -type f -print0 | xargs -0 fgrep -la 'Could not determine which compiler to use' 2>/dev/null /usr/bin/x86_64-pc-linux-gnu-addr2name.awk /usr/bin/addr2name.awk /usr/bin/x86_64-pc-linux-gnu-fastjar /usr/bin/fastjar /usr/bin/x86_64-pc-linux-gnu-gccbug /usr/bin/gccbug /usr/bin/gcov /usr/bin/gcj-dbtool /usr/bin/gij /usr/bin/x86_64-pc-linux-gnu-gcov /usr/bin/gjnih /usr/bin/x86_64-pc-linux-gnu-gcj-dbtool /usr/bin/grepjar /usr/bin/x86_64-pc-linux-gnu-gij /usr/bin/i686-pc-linux-gnu-addr2name.awk /usr/bin/grmic /usr/bin/i686-pc-linux-gnu-gccbug /usr/bin/grmiregistry /usr/bin/i686-pc-linux-gnu-fastjar /usr/bin/jcf-dump /usr/bin/jv-scan /usr/bin/jv-convert /usr/bin/i686-pc-linux-gnu-gcov /usr/bin/protoize /usr/bin/i686-pc-linux-gnu-gcj-dbtool /usr/bin/i686-pc-linux-gnu-gij /usr/bin/i686-pc-linux-gnu-gjnih /usr/bin/i686-pc-linux-gnu-grepjar /usr/bin/i686-pc-linux-gnu-grmic /usr/bin/i686-pc-linux-gnu-grmiregistry /usr/bin/i686-pc-linux-gnu-jcf-dump /usr/bin/i686-pc-linux-gnu-c++ /usr/bin/unprotoize /usr/bin/i686-pc-linux-gnu-rmic /usr/bin/i686-pc-linux-gnu-rmiregistry /usr/bin/i686-pc-linux-gnu-jv-convert /usr/bin/i686-pc-linux-gnu-jv-scan /usr/bin/i686-pc-linux-gnu-protoize /usr/bin/i686-pc-linux-gnu-unprotoize /usr/bin/i686-pc-linux-gnu-cpp /usr/bin/i686-pc-linux-gnu-g++ /usr/bin/x86_64-pc-linux-gnu-gjnih /usr/bin/x86_64-pc-linux-gnu-grepjar /usr/bin/x86_64-pc-linux-gnu-grmic /usr/bin/x86_64-pc-linux-gnu-grmiregistry /usr/bin/x86_64-pc-linux-gnu-jcf-dump /usr/bin/x86_64-pc-linux-gnu-jv-convert /usr/bin/x86_64-pc-linux-gnu-jv-scan /usr/bin/x86_64-pc-linux-gnu-rmic /usr/bin/x86_64-pc-linux-gnu-rmiregistry /usr/bin/x86_64-pc-linux-gnu-protoize /usr/bin/x86_64-pc-linux-gnu-unprotoize /usr/bin/i686-pc-linux-gnu-gcc /usr/bin/i686-pc-linux-gnu-gcj /usr/bin/i686-pc-linux-gnu-cc /usr/bin/i686-pc-linux-gnu-gcjh /usr/bin/i686-pc-linux-gnu-gfortran $ ---------- Well... I cannot believe that deleting all of them is really safe. I will try re-emerge sys-devel/gcc and sys-devel/gcc-config, rather than deletion.
Re-emerging those two won't get rid of the extraneous wrappers, although if any of those files should come from gcc and gcc-config, they'll be replaced by emerging - it certainly won't hurt if you have the time and resource to do that. However gcc-config installs wrappers for: {,${CTARGET}-}{cpp,cc,gcc,c++,g++,f77,g77,gcj,gcjh,gfortran,gdc,gdmd} and none of the files you list match that (note that with gcc-config, on amd64 you just get wrappers for x86_64-pc-linux-gnu and none for i686-pc-linux-gnu), so all the ones you listed are redundant and can be safely removed. Note that they're just eselect-compiler wrappers, the actual binaries are still present elsewhere and should be set in your path by the gcc-config setup.
(In reply to comment #5) You are right. After re-emerge, I did; ---------- find /usr/bin -type f -ctime +3 -print0 | xargs -0 fgrep -al 'Could not determine which compiler to use' | xargs rm; gcc-config x86_64-pc-linux-gnu-4.1.2 ---------- Any problem has not seen currently. I am changing the status as "INVALID" for the moment. If anyone thought that stale binaries should be deleted when uninstall, then please change the status (and severity, probably).
*** Bug 176524 has been marked as a duplicate of this bug. ***
gcc-config also installs a gcov wrapper so as to clobber any eselect stuff left over