Portage is overriding my preference of -Os and implicitly declaring that glibc should be compiled with -O3. I see that my parameter is being passed to the compiler, but after my custom CFLAGS the build process is passing -O99, overriding my flag. Where's the feet? Portage 2.1.3_rc8 (default-linux/amd64/2007.0/no-multilib, gcc-4.1.2, glibc-2.5-r4, 2.6.21-gentoo-r3-capernaum x86_64) ================================================================= System uname: 2.6.21-gentoo-r3-capernaum x86_64 Intel(R) Pentium(R) 4 CPU 3.20GHz Gentoo Base System release 1.12.10 Timestamp of tree: Fri, 13 Jul 2007 08: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] dev-lang/python: 2.4.4-r4 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: 2.4-r7 sys-apps/sandbox: 1.2.18.1 sys-devel/autoconf: 2.13, 2.61-r1 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.24 virtual/os-headers: 2.6.22 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="yes" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=nocona -Os -pipe -fomit-frame-pointer -mmmx -msse -msse2 -msse3" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/env.d /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" CXXFLAGS="-march=nocona -Os -pipe -fomit-frame-pointer -mmmx -msse -msse2 -msse3" DISTDIR="/usr/portage/distfiles" FEATURES="ccache distlocks metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans" GENTOO_MIRRORS="http://gentoo.arcticnetwork.ca/ ftp://mirrors.tera-byte.com/pub/gentoo http://gentoo.chem.wisc.edu/gentoo/ " MAKEOPTS="-j5" 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.namerica.gentoo.org/gentoo-portage" USE="alsa amd64 aotuv apache2 bzip2 cli curl flac ftp gd glibc-omitfp ldap mailwrapper mmx mysql ncurses no-old-linux nptl nptlonly ogg pcre php session sockets speex sse sse2 sse3 ssl truetype urandom vorbis" 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" USERLAND="GNU" VIDEO_CARDS="apm ark chips cirrus cyrix dummy fbdev glint i128 i810 mach64 mga neomagic nv r128 radeon rendition s3 s3virge savage siliconmotion sis sisusb tdfx tga trident tseng v4l vesa vga via vmware voodoo" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Please leave the toolchain CFLAGS alone, if you dislike -O99, then remove glibc-omitfp from your use. The ebuild/eclass overrides/strips glibc flags as needed to ensure a sane toolchain.
I haven't messed with the "toolchain CFLAGS". I set the global CFLAGS in make.conf. Why is "-O99" more sane than "-Os" or even "-O2"? This is still a bug, as -O99 isn't even a valid parameter.
Sure it is valid. glibc/gcc won't honor your CFLAGS, live with it.