from config.log configure:14879: checking if x86_64-pc-linux-gnu-gcc -std=gnu99 supports __attribute__(( constructor )) configure:14895: x86_64-pc-linux-gnu-gcc -std=gnu99 -c -O2 -pipe -march=core2 -frecord-gcc-switches -mssse3 -mcx16 -mmmx -g -Wimplicit-function-declaration -Wmissing-prototypes -Werror -D_POSIX_C_SOURCE=200112 conftest.c >&5 cc1: warnings being treated as errors conftest.c:1: error: no previous prototype for 'ctor' configure:14902: $? = 1 configure: failed program was: | void __attribute__((constructor)) ctor() { int a; } configure:14919: result: no configure:14930: error: in `/var/tmp/portage/sys-block/unieject-6/work/unieject-6': configure:14933: error: Constructor attribute is needed to build unieject. This makes the configure break. $ emerge --ignore-default-opts --info =sys-block/unieject-6 Portage 2.2_rc75 (default/linux/amd64/10.0, gcc-4.4.4-asneeded, glibc-2.12.1-r1, 2.6.35-gentoo-r5 x86_64) ================================================================= System Settings ================================================================= System uname: Linux-2.6.35-gentoo-r5-x86_64-Intel-R-_Core-TM-2_Quad_CPU_Q6600_@_2.40GHz-with-gentoo-2.0.1 Timestamp of tree: Sun, 05 Sep 2010 15:30:02 +0000 distcc 3.1 x86_64-pc-linux-gnu [disabled] ccache version 2.4 [enabled] app-shells/bash: 4.0_p37 dev-java/java-config: 2.1.11 dev-lang/python: 2.5.4-r4, 2.6.5-r3, 3.1.2-r4 dev-util/ccache: 2.4-r8 dev-util/cmake: 2.8.1-r2 sys-apps/baselayout: 2.0.1 sys-apps/openrc: 0.6.3 sys-apps/sandbox: 2.3-r1 sys-devel/autoconf: 2.13, 2.65-r1 sys-devel/automake: 1.6.3-r1, 1.9.6-r3, 1.10.3, 1.11.1 sys-devel/binutils: 2.20.1-r1 sys-devel/gcc: 4.4.4-r1 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.10 sys-devel/make: 3.81-r2 virtual/os-headers: 2.6.35 (sys-kernel/linux-headers) ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="*" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -pipe -march=core2 -frecord-gcc-switches -mssse3 -mcx16 -mmmx -g -Wimplicit-function-declaration -Wmissing-prototypes" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/X11/xkb /usr/share/hddtemp/ /usr/share/nano /var/lib/hsqldb" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/portage /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-O2 -pipe -march=core2 -frecord-gcc-switches -mssse3 -mcx16 -mmmx -g -Wenum-compare -Wno-invalid-offsetof" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--verbose --jobs=12 --load-average=8 --keep-going -t" FEATURES="assume-digests buildsyspkg ccache collision-protect distlocks fixlafiles fixpackages multilib-strict news noinfo parallel-fetch preserve-libs protect-owned sandbox sfperms sign split-log splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync" FFLAGS="-O2 -pipe -march=core2 -frecord-gcc-switches -mssse3 -mcx16 -mmmx -g" GENTOO_MIRRORS=" ftp://ftp.gentoo.mesh-solutions.com/gentoo/ ftp://ftp.tu-clausthal.de/pub/linux/gentoo/ ftp://de-mirror.org/distro/gentoo/ ftp://linux.rz.ruhr-uni-bochum.de/gentoo-mirror/" LANG="en_GB.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu,--sort-common" LINGUAS="en" MAKEOPTS="-j6 -l8" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" 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="/data/layman/sunrise /data/layman/science /data/local/portage-overlay /data/local/dummy" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="7zip X acl acpi additions alsa amd64 apbs automount bash-completion berkdb blas branding bzip2 cairo cblas cleartype cli cracklib cups custom-optimization cxx dbus deprecated discouraged double-precision dri dts dvdr emboss fastcgi fbcon fbcondecor fbsplash fftw fortran gd gdbm gecko gif glibc-omitfp gmp gnome gnome-keyring gpm grub gtk hddtemp icc iconv ifc imlib java javascript jpeg lapack largefile ldap libsexy libv4l2 lm_sensors md5sum mmap mmx mmxext modules mp3 mudflap multicall multilib multiprocess multiuser nano-syntax ncurses network-cron networking nls nptl nptlonly nsplugin numpy nvidia opengl openmp openssl optimize-cflags pam pcre perl png pppd pymol python qt-static qt3support readline reflection rrdcgi rtsp sdl sensord session smp spl sse sse2 ssl ssse3 startup-notification svg svgz swat sysfs system-sqlite tcpd tiff truetype type1 unicode v4l v4l2 vorbis x264 xcb xcomposite xinerama xorg xulrunner zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS ================================================================= Package Settings ================================================================= sys-block/unieject-6 was built with the following: USE="(multilib) nls -pmount" CFLAGS="-O2 -march=core2 -pipe -fomit-frame-pointer -mssse3 -mcx16 -mmmx -frecord-gcc-switches -g" CXXFLAGS="-O2 -march=core2 -pipe -fomit-frame-pointer -mssse3 -mcx16 -mmmx -frecord-gcc-switches -g -Wno-deprecated" LDFLAGS="-Wl,-O1,--hash-style=gnu,--sort-common,--as-needed"
Created attachment 246224 [details] /var/tmp/portage/sys-block/unieject-6/work/unieject-6/config.log config.log
Created attachment 246228 [details] /var/log/portage/build/sys-block/unieject-6:20100906-064947.log build.log
Diego, is there a way to switch that off?
No, not really.. -Wimplicit-function-declaration and autoconf don't get along together. a) -Werror is the only way to catch if the attributes work at all as often enough they just emit warnings; b) AC_CHECK_LIB/AC_SEARCH_LIB will also fail with -Werror=implicit-function-declaration so if the two are combined will be a problem. But really it would be simpler if somebody picked up unieject upstream at this point, I haven't worked on it for way too long.
I am using that flag to catch flags mixtures as a C-only FLAG. Which other would you suggest?
http://blog.flameeyes.eu/2008/08/06/flags-and-flags I have some code out there to implement that kind of testing in non-disruptive ways.
(In reply to comment #6) > http://blog.flameeyes.eu/2008/08/06/flags-and-flags > > I have some code out there to implement that kind of testing in non-disruptive > ways. > Oh I missed that one. I only knew your other with the flagcheck.h. Thanks again.