Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 190260 - sys-devel/gcc-config-1.4.0: gcc wrapper is slow when no PATH is set
Summary: sys-devel/gcc-config-1.4.0: gcc wrapper is slow when no PATH is set
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-08-26 01:49 UTC by Robert Buchholz (RETIRED)
Modified: 2007-08-31 01:28 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 Robert Buchholz (RETIRED) gentoo-dev 2007-08-26 01:49:38 UTC
After the horrors of bug #190237, here's a closer analysis:

After upgrading gcc-config to 1.4.0, running "gcc" went slower than before under some circumstances. For me reproducable was:

rbu $ time gcc

real    0m0.002s
user    0m0.000s
sys     0m0.001s

root # time gcc

real    0m0.324s
user    0m0.220s
sys     0m0.042s

The difference between the two users is that the latter does not have /usr/x86_64-pc-linux-gnu/gcc-bin/4.2.0 in its PATH. Removing the PATH from the other user made gcc slow again.

This should not affect many situations (baiscally only when you are not sourcing /etc/profile in your bashrc and use su without a dash). Still this does not happen on an older system of mine running sys-devel/gcc-config-1.3.16.

old # echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin
old # time gcc

real    0m0.009s
user    0m0.000s
sys     0m0.004s



$ emerge --info
Portage 2.1.3.7 (default-linux/amd64/2007.0/desktop, gcc-4.2.0, glibc-2.5-r4, 2.6.22-gentoo-r2 x86_64)
=================================================================
System uname: 2.6.22-gentoo-r2 x86_64 Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz
Gentoo Base System release 1.12.9
Timestamp of tree: Sun, 26 Aug 2007 00:50:01 +0000
distcc 2.18.3 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
ccache version 2.4 [enabled]
app-shells/bash:     3.2_p17
dev-java/java-config: 1.3.7, 2.0.33-r1
dev-lang/python:     2.4.4-r4
dev-python/pycrypto: 2.0.1-r6
dev-util/ccache:     2.4-r7
sys-apps/baselayout: 1.12.9-r2
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.61
sys-devel/automake:  1.4_p6, 1.9.6-r2, 1.10
sys-devel/binutils:  2.17
sys-devel/gcc-config: 1.4.0
sys-devel/libtool:   1.5.24
virtual/os-headers:  2.6.21
ACCEPT_KEYWORDS="amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=nocona -mtune=nocona -O2 -pipe -mmmx -msse -msse2 -msse3 -mfpmath=sse -fweb -frename-registers -fomit-frame-pointer -fno-ident"
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"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /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="-march=nocona -mtune=nocona -O2 -pipe -mmmx -msse -msse2 -msse3 -mfpmath=sse -fweb -frename-registers -fomit-frame-pointer -fno-ident"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digest autoaddcvs ccache collision-protect cvs digest distlocks metadata-transfer multilib-strict noinfo parallel-fetch sandbox sfperms sign strict test unmerge-orphans userfetch userpriv"
GENTOO_MIRRORS=" http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo http://pandemonium.tiscali.de/pub/gentoo ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo http://mirrors.sec.informatik.tu-darmstadt.de/gentoo http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror http://www.ibiblio.org/pub/Linux/distributions/gentoo http://distfiles.gentoo.org"
LANG="de_DE.utf8"
LC_ALL="de_DE.utf8"
LDFLAGS=" -Wl,--as-needed -Wl,-O1"
LINGUAS="de en"
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 --filter=H_**/files/digest-*"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/layman/java-overlay /usr/local/layman/kolab2 /usr/local/layman/gentopia /usr/local/layman/sunrise /usr/local/layman/marineam-xen /usr/local/layman/xen /usr/local/layman/xeffects /home/rbu/devel/gentoo/gentoo-x86"
SYNC="rsync://rsync.de.gentoo.org/gentoo-portage"
USE="3dnow 3dnowex X X509 a52 aac aalib acl acpi alsa amd64 apache2 arts asf audiofile avahi bash-completion berkdb bitmap-fonts bl bluetooth bzip2 bzlib cairo cdr cli cracklib crypt cups curl dbus dga divx dri dts dv dvd dvdr dvdread eds emboss encode esd evo exif fam ffmpeg firefox flac foomaticdb fortran ftp gcj gdbm ggi gif gimpprint glibc-omitfp glitz gmedia gpm gstreamer gtk gtk2 hal http iconv idn ieee1394 imagemagick ipv6 isdnlog jack java jpeg kde kerberos kqemu ldap libcaca libnotify live logitech-mouse lzo mad midi mikmod mmx mmx2 mmxext mozilla mp3 mpeg mudflap musepack nas ncurses network networkmanager nls nptl nptlonly nsplugin nvidia ogg oggvorbis openal opengl openmp oss pam pcre pdf perl php pic png ppds pppd pulseaudio python qemu qt3 qt3support qt4 quicktime readline realmedia reflection rss samba sasl sdl session slang sndfile speex spell spl sse sse2 ssl subversion svg tcltk tcpd test tetex theora threads tiff truetype truetype-fonts type1 type1-fonts unicode urandom usb v4l v4l2 vcd vorbis wma wmf wmp x264 xanim xen xine xml xorg xspf xv xvid xvmc 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="picolcd luise ncurses" LINGUAS="de en" USERLAND="GNU" VIDEO_CARDS="nvidia dri vesa nv"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 SpanKY gentoo-dev 2007-08-26 02:56:44 UTC
this is because i changed it all to use full CHOST's where as the older version would default to the same exact file ...

for the sake of speed, it should be easy to drop in a symlink to the host compiler config so it doesnt need to be looked up every time

you can see the same exact behavior with the old version if you execute a cross-compiler without PATH set properly ... the gcc wrapper needs to query portage to figure out the proper CHOST
Comment 2 SpanKY gentoo-dev 2007-08-26 03:20:45 UTC
should be fixed with gcc-config-1.4.0-r1
Comment 3 emerald 2007-08-30 23:26:56 UTC
... the NATIVE entry appearing in gcc-config -l is somewhat confusing and disturbing and, btw., did you check for correct behavior when selecting NATIVE in gcc-config ?
it is possible to select but selects the current selected compiler (by creating a file NATIVE as a copy of the current compiler config file).
first, in this situation it's not really obvious which compiler is used.
second, i don't actually know what happens when you upgrade the compiler and the current compiler gets unmerged ? even upgrade e.g. from 4.1.2 to 4.1.3 would render this NATIVE file incorrect and leave the system without a correct working compiler ?!?
Comment 4 SpanKY gentoo-dev 2007-08-31 01:28:36 UTC
so dont select NATIVE and it isnt a problem