If your make.conf includes: EMERGE_DEFAULT_OPTS="-k" There is no way to override it to specifically build new packages. Both -B and -b should override it by their help descriptions. Alternative provide a new option to NOT use binary packages that supercedes -k when appearing later on the commandline. Portage 2.1.2 (default-linux/amd64/2006.1, gcc-4.1.1, glibc-2.5-r0, 2.6.17.14 x86_64) ================================================================= System uname: 2.6.17.14 x86_64 Dual Core AMD Opteron(tm) Processor 165 Gentoo Base System version 1.12.9 Timestamp of tree: Fri, 19 Jan 2007 02:00:01 +0000 distcc 2.18.3 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] dev-lang/python: 2.4.4 dev-python/pycrypto: 2.0.1-r5 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.14 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.19.2-r1 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="yes" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -pipe -march=k8" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /var/vpopmail/domains /var/vpopmail/etc" CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/revdep-rebuild /etc/terminfo" CXXFLAGS="-O2 -pipe -march=k8" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="" FEATURES="autoconfig buildpkg distlocks fixpackages metadata-transfer parallel-fetch sandbox sfperms splitdebug strict" GENTOO_MIRRORS="http://216.165.129.134/gentoo http://gentoo.mirrors.tds.net/gentoo http://gentoo.osuosl.org/" MAKEOPTS="-j10" 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="/dev/shm" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/portage/local/layman/stuart-server /usr/local/portage" SYNC="rsync://10.0.0.2/gentoo-portage" USE="amd64 async authdaemond authlib bash-completion berkdb bzip2 bzlib cap caps chroot ck-server cli cracklib crypt curlwrappers dba dbm dbx dio dlloader dri erandom exif fam fastcgi flatfile fortran gd-external gdbm gnutls hpn iconv imap innodb ipv6 isdnlog libg++ lids logrotate memlimit mpi mysql mysqli nagios-dns nagios-ntp nagios-ping nagios-ssh ncurses nethack nfs nls no-htdocs nptl nptlonly pam pcre perl pg-hier pg-intdatetime pg-vacuumdelay posix ppds pppd python qmail readline reflection reiserfs romio rrdtool ruby sasl session sftp sftplogging sharedext skey soap sockets spl sqlite ssl symlink sysvipc tcpd threads truetype udev unicode urandom vim-syntax vpopmail xattr xml xmlrpc xorg 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" 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, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTAGE_RSYNC_EXTRA_OPTS
Something wrong with --ignore-default-opts?
I can see why -B should override -k, but -b and -k don't seem mutually exclusive to me. One possible solution for command line overrides would be to make all options support --usepkg=n style syntax.
As Jakub said, or set EMERGE_DEFAULT_OPTS="" in the env.