When trying to reinstall glibc (due to changed USE flags), it successfully compile the x86 ABI part and then fails during the configuration of the amd64 ABI part with the above error. Reproducible: Always Steps to Reproduce: 1. emerge -av glibc 2. 3. Actual Results: configure failed at "Checking for C cleanup handling" Expected Results: glibc should have compiled for both ABIs Portage 2.1.6.13 (default/linux/amd64/2008.0/desktop, gcc-4.3.2, glibc-2.8_p20080602-r1, 2.6.29-gentoo-r5 x86_64) ================================================================= System uname: Linux-2.6.29-gentoo-r5-x86_64-AMD_Athlon-tm-_64_Processor_3200+-with-glibc2.2.5 Timestamp of tree: Sun, 28 Jun 2009 07:15:01 +0000 ccache version 2.4 [enabled] app-shells/bash: 3.2_p39 dev-lang/python: 2.5.4-r2 dev-util/ccache: 2.4-r7 sys-apps/baselayout: 1.12.11.1 sys-apps/sandbox: 1.6-r2 sys-devel/autoconf: 2.13, 2.63 sys-devel/automake: 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2 sys-devel/binutils: 2.18-r3 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 1.5.26 virtual/os-headers: 2.6.27-r2 ACCEPT_KEYWORDS="amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -pipe -Wall -Wextra -march=k8 -mmmx -msse2 -m3dnow -fstack-check" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-O2 -pipe -Wall -Wextra -march=k8 -mmmx -msse2 -m3dnow -fstack-check" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--buildpkg --with-bdep y" FEATURES="ccache distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict test test-fail-continue unmerge-orphans userfetch userpriv usersandbox usersync" GENTOO_MIRRORS="ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo ftp://ftp.uni-erlangen.de/pub/mirrors/gentoo ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ ftp://de-mirror.org/distro/gentoo/ ftp://ftp.spline.inf.fu-berlin.de/mirrors/gentoo/ ftp://mirror.netcologne.de/gentoo/ " LANG="de_DE" LDFLAGS="-Wl,-O1" LINGUAS="de en" MAKEOPTS="-j2" 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="/usr/local/portage" SYNC="rsync://rsync.de.gentoo.org/gentoo-portage" USE="3dnow X acl acpi alsa amd64 avahi bash-completion berkdb bluetooth branding bzip2 cairo caps cdr cli cracklib crypt cups dbus dga doc dri dvd dvdr dvdread eds emboss encode esd evo ffmpeg firefox fontconfig fortran gd gdbm gif gmp gnome gnutls gpm gstreamer gtk hal iconv ipv6 isdnlog jpeg jpeg2k kpathsea latex libnotify mad midi mikmod mmx mng mono motif mp3 mpeg mudflap multilib mysql ncurses nls nptl nptlonly ogg openal opengl openmp pam pch pcre pdf perl png ppds pulseaudio python qt4 quicktime readline reflection samba sdl session skey slp source speex spell spl sse sse2 ssl startup-notification svg sysfs tcpd threads tiff truetype unicode usb vorbis xattr xcb xft xinerama xml xorg xpm xulrunner xv 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 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 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" APACHE2_MPMS="worker" ELIBC="glibc" INPUT_DEVICES="keyboard mouse joystick evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="de en" USERLAND="GNU" VIDEO_CARDS="nvidia nv vesa" Unset: CPPFLAGS, CTARGET, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS I'll create attachments for the config.log and the build logfile.
Created attachment 195938 [details] log of configure The relevant part is: configure:92: checking for C cleanup handling configure:122: x86_64-pc-linux-gnu-gcc -o conftest -pipe -Wall -Wextra -O2 -fno-strict-aliasing -Werror -fexceptions -U_FORTIFY_SOURCE -U_FORTIFY_SOURCE -U_FORTIFY_SOURCE -U_FORTIFY_SOURCE -Wl,-O1 conftest.c >&5 cc1: warnings being treated as errors conftest.c: In function 'cl': conftest.c:40: error: unused parameter 'a' configure:128: $? = 1 configure: failed program was: | /* confdefs.h. */ | #define PACKAGE_NAME "GNU C Library" | #define PACKAGE_TARNAME "c-library" | #define PACKAGE_VERSION "(see version.h)" | #define PACKAGE_STRING "GNU C Library (see version.h)" | #define PACKAGE_BUGREPORT "glibc" | #define HAVE_LIBIDN 1 | #define ASM_GLOBAL_DIRECTIVE .globl | #define HAVE_ASM_SET_DIRECTIVE 1 | #define ASM_TYPE_DIRECTIVE_PREFIX @ | #define DO_VERSIONING 1 | #define HAVE_ASM_PREVIOUS_DIRECTIVE 1 | #define HAVE_Z_COMBRELOC 1 | #define ENABLE_OLD_SSP_COMPAT 1 | #define NO_UNDERSCORES 1 | #define HAVE_ASM_WEAK_DIRECTIVE 1 | #define HAVE_ASM_CFI_DIRECTIVES 1 | #define HAVE_BUILTIN_EXPECT 1 | #define HAVE_BUILTIN_MEMSET 1 | #define HAVE_BUILTIN_REDIRECTION 1 | #define HAVE___THREAD 1 | #define HAVE_TLS_MODEL_ATTRIBUTE 1 | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define SIZEOF_LONG_DOUBLE 16 | #define HAVE_TLS_SUPPORT 1 | #define PI_STATIC_AND_HIDDEN 1 | #define HAVE_FORCED_UNWIND 1 | /* end confdefs.h. */ | | #include <stdio.h> | void cl (void *a) { } | int | main () | { | | int a __attribute__ ((cleanup (cl))); | puts ("test") | ; | return 0; | } configure:145: result: no configure:153: error: the compiler must support C cleanup handling
Comment on attachment 195938 [details] log of configure The relevant part is: configure:92: checking for C cleanup handling configure:122: x86_64-pc-linux-gnu-gcc -o conftest -pipe -Wall -Wextra -O2 -fno-strict-aliasing -Werror -fexceptions -U_FORTIFY_SOURCE -U_FORTIFY_SOURCE -U_FORTIFY_SOURCE -U_FORTIFY_SOURCE -Wl,-O1 conftest.c >&5 cc1: warnings being treated as errors conftest.c: In function 'cl': conftest.c:40: error: unused parameter 'a' configure:128: $? = 1 configure: failed program was: | /* confdefs.h. */ | #define PACKAGE_NAME "GNU C Library" | #define PACKAGE_TARNAME "c-library" | #define PACKAGE_VERSION "(see version.h)" | #define PACKAGE_STRING "GNU C Library (see version.h)" | #define PACKAGE_BUGREPORT "glibc" | #define HAVE_LIBIDN 1 | #define ASM_GLOBAL_DIRECTIVE .globl | #define HAVE_ASM_SET_DIRECTIVE 1 | #define ASM_TYPE_DIRECTIVE_PREFIX @ | #define DO_VERSIONING 1 | #define HAVE_ASM_PREVIOUS_DIRECTIVE 1 | #define HAVE_Z_COMBRELOC 1 | #define ENABLE_OLD_SSP_COMPAT 1 | #define NO_UNDERSCORES 1 | #define HAVE_ASM_WEAK_DIRECTIVE 1 | #define HAVE_ASM_CFI_DIRECTIVES 1 | #define HAVE_BUILTIN_EXPECT 1 | #define HAVE_BUILTIN_MEMSET 1 | #define HAVE_BUILTIN_REDIRECTION 1 | #define HAVE___THREAD 1 | #define HAVE_TLS_MODEL_ATTRIBUTE 1 | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define SIZEOF_LONG_DOUBLE 16 | #define HAVE_TLS_SUPPORT 1 | #define PI_STATIC_AND_HIDDEN 1 | #define HAVE_FORCED_UNWIND 1 | /* end confdefs.h. */ | | #include <stdio.h> | void cl (void *a) { } | int | main () | { | | int a __attribute__ ((cleanup (cl))); | puts ("test") | ; | return 0; | } configure:145: result: no configure:153: error: the compiler must support C cleanup handling
sorry for double posting the comment. It didn't show up on the attachments details page, so I thought bugzilla didn't get it at the first time. Anyway I was not able to upload the build logfile due to size restrictions in bugzilla (file is ~12M, but only 2M are allowed). I'll post part of the file here: u-gcc --print-file-name=crtend.o` /var/tmp/portage/sys-libs/glibc-2.8_p20080602-r1/work/build-x86-x86_64-pc-linux-gnu-nptl/csu/crtn.o make[2]: Leaving directory `/var/tmp/portage/sys-libs/glibc-2.8_p20080602-r1/work/glibc-2.8-20080602/elf' make[1]: Leaving directory `/var/tmp/portage/sys-libs/glibc-2.8_p20080602-r1/work/glibc-2.8-20080602' * ABI: amd64 * CBUILD: x86_64-pc-linux-gnu * CHOST: x86_64-pc-linux-gnu * CTARGET: x86_64-pc-linux-gnu * CBUILD_OPT: x86_64-pc-linux-gnu * CTARGET_OPT: x86_64-pc-linux-gnu * CC: x86_64-pc-linux-gnu-gcc * CFLAGS: -pipe -Wall -Wextra -O2 -fno-strict-aliasing * Configuring GLIBC for nptl with: * --disable-stackguard-randomization * --enable-old-ssp-compat * --enable-add-ons=nptl,c_stubs,libidn,ports * --enable-kernel=2.6.9 * --without-selinux * --without-cvs * --enable-bind-now * --build=x86_64-pc-linux-gnu * --host=x86_64-pc-linux-gnu * --disable-profile * --with-gd * --with-headers=/usr/include * --prefix=/usr * --libdir=/usr/lib64 * --mandir=/usr/share/man * --infodir=/usr/share/info * --libexecdir=/usr/lib64/misc/glibc * checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu configure: running configure fragment for add-on nptl configure: running configure fragment for add-on c_stubs configure: running configure fragment for add-on libidn checking add-on ports for preconfigure fragments... am33 arm hppa m68k mips checking sysdep dirs... sysdeps/x86_64/elf nptl/sysdeps/unix/sysv/linux/x86_64 sysdeps/unix/sysv/linux/x86_64 sysdeps/unix/sysv/linux/wordsize-64 nptl/sysdeps/unix/sysv/linux nptl/sysdeps/pthread sysdeps/pthread ports/sysdeps/unix/sysv/linux sysdeps/unix/sysv/linux sysdeps/gnu sysdeps/unix/common sysdeps/unix/mman sysdeps/unix/inet nptl/sysdeps/unix/sysv ports/sysdeps/unix/sysv sysdeps/unix/sysv sysdeps/unix/x86_64 nptl/sysdeps/unix ports/sysdeps/unix sysdeps/unix sysdeps/posix sysdeps/x86_64/fpu nptl/sysdeps/x86_64 sysdeps/x86_64 sysdeps/wordsize-64 sysdeps/ieee754/ldbl-96 sysdeps/ieee754/dbl-64 sysdeps/ieee754/flt-32 sysdeps/ieee754 sysdeps/generic/elf sysdeps/generic configure: WARNING: add-on ports contributed no useful sysdeps directories checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking for x86_64-pc-linux-gnu-gcc... x86_64-pc-linux-gnu-gcc checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether x86_64-pc-linux-gnu-gcc accepts -g... yes checking for x86_64-pc-linux-gnu-gcc option to accept ISO C89... none needed checking how to run the C preprocessor... x86_64-pc-linux-gnu-gcc -E checking for x86_64-pc-linux-gnu-g++... x86_64-pc-linux-gnu-g++ checking whether we are using the GNU C++ compiler... yes checking whether x86_64-pc-linux-gnu-g++ accepts -g... yes checking whether /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.2/../../../../x86_64-pc-linux-gnu/bin/as is GNU as... yes checking whether /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.2/../../../../x86_64-pc-linux-gnu/bin/ld is GNU ld... yes checking for /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.2/../../../../x86_64-pc-linux-gnu/bin/as... /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.2/../../../../x86_64-pc-linux-gnu/bin/as checking version of /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.2/../../../../x86_64-pc-linux-gnu/bin/as... 2.18, ok checking for /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.2/../../../../x86_64-pc-linux-gnu/bin/ld... /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.2/../../../../x86_64-pc-linux-gnu/bin/ld checking version of /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.2/../../../../x86_64-pc-linux-gnu/bin/ld... 2.18, ok checking for pwd... /bin/pwd checking for x86_64-pc-linux-gnu-gcc... (cached) x86_64-pc-linux-gnu-gcc checking version of x86_64-pc-linux-gnu-gcc... 4.3.2, ok checking for gnumake... no checking for gmake... gmake checking version of gmake... 3.81, ok checking for gnumsgfmt... no checking for gmsgfmt... gmsgfmt checking version of gmsgfmt... 0.17, ok checking for makeinfo... makeinfo checking version of makeinfo... 4.13, ok checking for sed... sed checking version of sed... 4.1.5, ok checking for autoconf... autoconf checking whether autoconf works... yes checking whether ranlib is necessary... no checking LD_LIBRARY_PATH variable... ok checking whether GCC supports -static-libgcc... -static-libgcc checking for bash... /bin/bash checking for gawk... gawk checking for perl... /usr/bin/perl checking for install-info... /usr/bin/install-info checking for bison... /usr/bin/bison checking for signed size_t type... no checking for libc-friendly stddef.h... yes checking whether we need to use -P to assemble .S files... no checking whether .text pseudo-op must be used... yes checking for assembler global-symbol directive... .globl checking for .set assembler directive... yes checking for assembler .type directive prefix... @ checking for .symver assembler directive... yes checking for ld --version-script... yes checking for .previous assembler directive... yes checking for .protected and .hidden assembler directive... yes checking whether __attribute__((visibility())) is supported... yes checking for broken __attribute__((visibility()))... no checking for broken __attribute__((alias()))... no checking whether to put _rtld_local into .sdata section... no checking for .preinit_array/.init_array/.fini_array support... yes checking for libunwind-support in compiler... no checking for -z nodelete option... yes checking for -z nodlopen option... yes checking for -z initfirst option... yes checking for -z relro option... yes checking for -Bgroup option... yes checking for libgcc_s suffix... checking for --as-needed option... yes checking whether --noexecstack is desirable for .S files... yes checking for -z combreloc... yes checking for -z execstack... yes checking for -fpie... yes checking for --hash-style option... yes checking for -fno-toplevel-reorder -fno-section-anchors... yes checking for -fstack-protector... yes checking for -fgnu89-inline... yes checking whether cc puts quotes around section names... no checking for assembler .weak directive... yes checking whether CFI directives are supported... yes checking for ld --no-whole-archive... yes checking for gcc -fexceptions... yes checking for __builtin_expect... yes checking for __builtin_memset... yes checking for redirection of built-in functions... yes checking for __thread... yes checking for tls_model attribute... yes checking for libgd... yes checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for long double... yes checking size of long double... 16 running configure fragment for sysdeps/x86_64/elf checking for x86-64 TLS support... yes running configure fragment for nptl/sysdeps/pthread checking for forced unwind support... yes checking for C cleanup handling... no configure: error: the compiler must support C cleanup handling * * ERROR: sys-libs/glibc-2.8_p20080602-r1 failed. * Call stack: * ebuild.sh, line 49: Called src_compile * environment, line 3643: Called eblit-run 'src_compile' * environment, line 1122: Called eblit-glibc-src_compile * src_compile.eblit, line 180: Called src_compile * environment, line 3643: Called eblit-run 'src_compile' * environment, line 1122: Called eblit-glibc-src_compile * src_compile.eblit, line 188: Called toolchain-glibc_src_compile * src_compile.eblit, line 121: Called glibc_do_configure 'nptl' * src_compile.eblit, line 98: Called die * The specific snippet of code: * "${S}"/configure ${myconf} || die "failed to configure glibc" * The die message: * failed to configure glibc * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/log/portage/sys-libs:glibc-2.8_p20080602-r1:20090627-220939.log'. * The ebuild environment file is located at '/var/tmp/portage/sys-libs/glibc-2.8_p20080602-r1/temp/environment'. *
it fails because you use -Wextra. glibc needs to test with -Werror because unknown attributes simply get warned about and thus there is no way to compile test for it w/out using -Werror.