When using the -combine CFLAGS with GCC 4.3.1 I am failing to compile net-misc/whois-4.7.26 with the following failure: cc1: error: too many filenames given. Type cc1 --help for usage make: *** No rule to make target `Makefile.depend', needed by `all'. Stop. Description of the -combine flag: `-combine' If you are compiling multiple source files, this option tells the driver to pass all the source files to the compiler at once (for those languages for which the compiler can handle this). This will allow intermodule analysis (IMA) to be performed by the compiler. Currently the only language for which this is supported is C. If you pass source files for multiple languages to the driver, using this option, the driver will invoke the compiler(s) that support IMA once each, passing each compiler all the source files appropriate for it. For those languages that do not support IMA this option will be ignored, and the compiler will be invoked once for each source file in that language. If you use this option in conjunction with `-save-temps', the compiler will generate multiple pre-processed files (one for each source file), but only one (combined) `.o' or `.s' file. Removing the -combine flag allows me to compile net-misc/whois-4.7.26 without any problems. Actually I made a "emerge -e world" and I have a hand full (out of 640 packages I have around 5 packages (including my own made) failing to compile) of packages failing to compile with -combine. net-misc/whois is one of them. Can the -combine flag be filtered for net-misc/whois? Reproducible: Always Portage 2.1.5.6 (default/linux/x86/2008.0/server, gcc-4.3.1, glibc-2.7-r2, 2.6.25.9 i686) ================================================================= System uname: 2.6.25.9 i686 AMD Duron(tm) processor Timestamp of tree: Tue, 08 Jul 2008 05:00:01 +0000 app-shells/bash: 3.2_p39 dev-java/java-config: 1.3.7, 2.1.6-r1 dev-lang/python: 2.4.4-r13, 2.5.2-r5 dev-python/pycrypto: 2.0.1-r6 sys-apps/baselayout: 1.12.11.1 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.13, 2.62-r1 sys-devel/automake: 1.5, 1.7.9-r1, 1.9.6-r2, 1.10.1-r1 sys-devel/binutils: 2.18-r3 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.26 virtual/os-headers: 2.6.25-r4 ACCEPT_KEYWORDS="x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=athlon-xp -pipe -fweb -frename-registers -ftree-vectorize -freorder-blocks-and-partition -fgcse-sm -fgcse-las -combine -maccumulate-outgoing-args -ftree-loop-optimize -funswitch-loops -ftracer -fprefetch-loop-arrays -fno-ident" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /opt/openjms/config /var/bind /var/lib/hsqldb" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /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/udev/rules.d" CXXFLAGS="-O2 -march=athlon-xp -pipe -fweb -frename-registers -ftree-vectorize -freorder-blocks-and-partition -fgcse-sm -fgcse-las -combine -maccumulate-outgoing-args -ftree-loop-optimize -funswitch-loops -ftracer -fprefetch-loop-arrays -fno-ident -fvisibility-inlines-hidden -fno-enforce-eh-specs" DISTDIR="/usr/portage/distfiles" FEATURES="distlocks loadpolicy parallel-fetch sandbox sfperms strict unmerge-orphans userfetch userpriv" GENTOO_MIRRORS="ftp://sunsite.cnlab-switch.ch/mirror/gentoo http://www.ibiblio.org/pub/Linux/distributions/gentoo http://gentoo.oregonstate.edu/" LDFLAGS="" LINGUAS="de en en_GB" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/portage/local/layman/webapps-experimental /usr/portage/local/layman/wrobel /usr/portage/local/layman/sunrise /usr/portage/local/layman/java-overlay /usr/portage/local/layman/dirtyepic /usr/portage/local/layman/mysql-testing /mnt/gentoo.overlay" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="GAPING_SECURITY_HOLE X509 acl acpi aio apache2 autocreate autofs autosieve bcmath berkdb big-tables bsf bzip2 calendar cdb cgi clamav cli cluster cracklib crypt ctype curl curlwrappers daemon dba drac dri enscript exif extraengine fam fastcgi fla fontconfig force-cgi-redirect ftp gd gd-external gif glibc-omitfp gmp gpm graphicsmagick graphviz gs hardenedphp icap-client icc icc-pgo iconv idled idn imap innodb inode isdnlog ithreads j2ee java java5 javacomm javamail jbig jboss jce jikes jms jmx jpeg jpeg2k json jta kolab large-domain lcms log4j logrotate lua lzw lzw-tiff maildir mailwrapper max-idx-128 mbox mhash midi milter ming mktemp mmap mmx mpeg mpm-worker mudflap mysql mysqli nagios-dns nagios-game nagios-ntp nagios-ping nagios-ssh ncurses netpbm network-cron nls normalizemime nptl nptlonly oav odbc pam pam-mysql pam_timestamp pcntl pcre pdo pdo-external pear-db perl php pic png poll postgres pppd python quotas rar readline recursor reflection replication rle rrdcgi rrdtool samba sasl servletapi session sharedext sharedmem silvercity simplexml skey slang sndfile snmp soap sockets spell spl sse ssl suhosin svg svgz swat symlink syslog tcpd threads tidy tiff tokenizer truetype truetype-fonts unicode urandom usb utf8 vhosts virtual-users watchdog webdav winbind wmf x86 xattr xml xmlrpc xmlwriter xorg xsl yaz zip zip-external zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 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" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="void" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="de en en_GB" USERLAND="GNU" VIDEO_CARDS="fbdev dummy none" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
We do not filter flags arbitrarily, as we do not support any weird set of compiler flags.
(In reply to comment #1) > We do not filter flags arbitrarily, as we do not support any weird set of > compiler flags. > Sorry that I have attempted to help improve "user experience" with Gentoo. I just wanted to help other Gentoo users to not run into the same issue and increase the general stability of the packages. Looking into the Portage repository I see filter-flags all over the place. But anyway... I got the message. Sorry again for the bug report.
(In reply to comment #2) > Sorry that I have attempted to help improve "user experience" with Gentoo. I > just wanted to help other Gentoo users to not run into the same issue and > increase the general stability of the packages. This is a misconception - you don't. Filtering compiler flags hides bugs and encourages users to use compiler flags, which are not meant to be used globally. We neither can nor want to support that. > Looking into the Portage repository I see filter-flags all over the place. But > anyway... I got the message. Sorry again for the bug report. To a degree these are o.k. or even needed, since we as a distributor cannot fix all the broken code around, but the repository is in desperate need of a cleanup regarding wrongly added filters.
(In reply to comment #3) > This is a misconception - you don't. Filtering compiler flags hides bugs and > encourages users to use compiler flags, which are not meant to be used > globally. We neither can nor want to support that. > I (assuming I am just a normal Gentoo user) am sure not the right person to report such an issue upstream. But bugzilla is managed by Gentoo developers who are in charge for certain packages. The Gentoo developers have their connections where to place that problem upstream. So assuming me (normal user) reporting here at b.g.o and you (developer) pick up the issue, then it is (from my viewpoint) not a big issue for you to say/write: - Hey! Stupid Gentoo user! We are not supporting such crazy CFLAGS as you have. - But! Thanks for reporting that issue. - I will send that information upstream. Maybe they will do something about that issue? Or maybe something like that: - Hey! Stupid Gentoo user! We are not supporting such crazy CFLAGS as you have. - Please report that problem upstream to the 'whois' developers. Here is the URL for opening the bug.... > To a degree these are o.k. or even needed, since we as a distributor cannot fix > all the broken code around, but the repository is in desperate need of a > cleanup regarding wrongly added filters. > Yes. It is. If you refuse to add filter flags for bugs reported at b.g.o, then you/we (Gentoo) should be at least consistent. Either we do filter or we don't. I personally miss a guideline regarding this. When are filters okay and when not?
(In reply to comment #4) > - Hey! Stupid Gentoo user! We are not supporting such crazy CFLAGS as you have. > - But! Thanks for reporting that issue. > - I will send that information upstream. Maybe they will do something about > that issue? Your expectations are quite a bit beyond what's reasonable. We do not have the ressources to inspect all code you file bugs about with your crazy compiler flags, create proper patches and send them upstream. Not only that - we're not even interested. You're mistaken, thinking a third person should deal with the problems you hit, by going wild on your compiler flags. > Yes. It is. If you refuse to add filter flags for bugs reported at b.g.o, then > you/we (Gentoo) should be at least consistent. Either we do filter or we don't. Oh-uh - FLOSS and consistency. Yes, a clean up is needed, no it's not high priority. > I personally miss a guideline regarding this. When are filters okay and when > not? Filtering is obviously o.k., when code gets miscompiled, under the condition a sane set of compiler flags is used. you can read about the latter here: http://www.gentoo.org/doc/en/gcc-optimization.xml#doc_chap3_sect4