When I tried to emerge glibc on my new gcc 3.4 laptop I got the message that 'the compiler must support C cleanup handling'. I did some research and found out that 1. I am the only person with this problem (who complained about it) 2. This configure error isn't there when I use -nptl in my use flags 3. It is fixed when I remove the CFLAG -fprefetch-loop-arrays Reproducible: Always Steps to Reproduce: 1. add nptl to you use flags 2. add -fprefetch-loop-arrays to your CFLAGS 3. emerge glibc Actual Results: ./configure stops with the message: the compiler must support C cleanup handling Expected Results: glibc to move on to '* Building GLIBC..." laptop ~ # emerge info Portage 2.0.51_rc1 (gcc34-x86-2004.2, gcc-3.4.2, glibc-2.3.4.20040808-r0, 2.6.9-rc1 i686) ================================================================= System uname: 2.6.9-rc1 i686 Intel(R) Pentium(R) M processor 1.70GHz Gentoo Base System version 1.5.3 ccache version 2.3 [enabled] Autoconf: sys-devel/autoconf-2.59-r4 Automake: sys-devel/automake-1.8.5-r1 Binutils: sys-devel/binutils-2.15.90.0.1.1-r3 Headers: sys-kernel/linux26-headers-2.6.8.1 Libtools: sys-devel/libtool-1.5.2-r5 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-O3 -march=pentium-m -fomit-frame-pointer -fforce-addr -fprefetch-loop-arrays -falign-functions=64 -ftracer -mfpmath=sse" CHOST="i686-pc-linux-gnu" COMPILER="" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O3 -march=pentium-m -fomit-frame-pointer -fforce-addr -fprefetch-loop-arrays -falign-functions=64 -ftracer -mfpmath=sse" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://gentoo.osuosl.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 X aalib acpi alsa audiofile avi bzlib cdr crypt dga directfbx divx4linux dvd encode extensions faac faad fbcon flac freetype ftp gcj gd gif gtk gtk2 imagemagick imlib ipv6 java javascript jp2 jpeg lcms libcaca live lzw mad mikmod mmx motif mpeg msn ncurses nptl oggvorbis opengl pam pcmcia pdflib perl pic png pnp python qt quicktime radeon readline sdl sockets spell sse ssl stroke svga tcltk tcpd tetex tiff truetype trusted usb wmf wxwindows xml xml2 xmms xosd xv xvid zlib video_cards_radeon"
I also have the same problem, here is details: >>> emerge (1 of 4) sys-libs/glibc-2.3.4.20040808 to / >>> md5 src_uri ;-) glibc-2.3.3.tar.bz2 >>> md5 src_uri ;-) glibc-manpages-2.3.4.tar.bz2 >>> md5 src_uri ;-) glibc-infopages-2.3.4.tar.bz2 >>> md5 src_uri ;-) glibc-2.3.4-branch-update-20040808.patch.bz2 >>> Unpacking source... nptl x86 * Checking gcc for __thread support ... yes * Checking kernel version (>=2.6.5) ... yes * Checking linux-headers version (>=2.6.5) ... yes >>> Unpacking glibc-2.3.3.tar.bz2 to /var/tmp/portage/glibc-2.3.4.20040808/work >>> Unpacking glibc-manpages-2.3.4.tar.bz2 to /var/tmp/portage/glibc-2.3.4.20040808/work/glibc-2.3.3/man * Applying glibc-2.3.4-branch-update-20040808.patch.bz2... [ ok ] * Patching version to display snapshot date ... >>> Unpacking glibc-infopages-2.3.4.tar.bz2 to /var/tmp/portage/glibc-2.3.4.20040808/work/glibc-2.3.3 * Applying glibc-sec-hotfix-20040804.patch... [ ok ] * Applying glibc-2.3.2-propolice-guard-functions-v3.patch... [ ok ] * Applying glibc-2.3.3-frandom-detect.patch... [ ok ] * Applying glibc-2.3.3-localedef-fix-trampoline.patch... [ ok ] * Applying glibc-2.3.3-dl_execstack-PaX-support.patch... [ ok ] * Applying glibc-2.3.3_pre20040117-pt_pax.diff... [ ok ] * Applying glibc-2.3.4.20040808-i386-got-fix.diff... [ ok ] x86 * Applying glibc-gentoo-libdir.patch... [ ok ] * Applying glibc-2.3.4-ld.so-brk-fix.patch... [ ok ] * Applying glibc-2.3.4-nptl-pthread.h-g++-fix.patch... [ ok ] >>> Source unpacked. ~x86 * -march=pentium-m seems to be broken in gcc 3.4, changing to -mtune=pentium3 nls nptl x86 x86 x86 x86 * Configuring GLIBC... checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu running configure fragment for add-on nptl checking sysdep dirs... sysdeps/i386/elf nptl/sysdeps/unix/sysv/linux/i386/i686 nptl/sysdeps/unix/sysv/linux/i386 nptl/sysdeps/unix/sysv/linux nptl/sysdeps/pthread sysdeps/pthread nptl/sysdeps/unix/sysv nptl/sysdeps/unix nptl/sysdeps/i386/i686 nptl/sysdeps/i386 sysdeps/unix/sysv/linux/i386 sysdeps/unix/sysv/linux sysdeps/gnu sysdeps/unix/common sysdeps/unix/mman sysdeps/unix/inet sysdeps/unix/sysv/i386 sysdeps/unix/sysv sysdeps/unix/i386 sysdeps/unix sysdeps/posix sysdeps/i386/i686/fpu sysdeps/i386/i686 sysdeps/i386/i486 nptl/sysdeps/i386/i486 sysdeps/i386/fpu sysdeps/i386 sysdeps/wordsize-32 sysdeps/ieee754/ldbl-96 sysdeps/ieee754/dbl-64 sysdeps/ieee754/flt-32 sysdeps/ieee754 sysdeps/generic/elf sysdeps/generic checking for a BSD-compatible install... /bin/install -c checking whether ln -s works... yes checking for i686-pc-linux-gnu-gcc... gcc checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ANSI C... none needed checking how to run the C preprocessor... gcc -E checking for i686-pc-linux-gnu-g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking whether /usr/lib/gcc/i686-pc-linux-gnu/3.4.2/../../../../i686-pc-linux-gnu/bin/as is GNU as... yes checking whether /usr/lib/gcc/i686-pc-linux-gnu/3.4.2/../../../../i686-pc-linux-gnu/bin/ld is GNU ld... yes checking for /usr/lib/gcc/i686-pc-linux-gnu/3.4.2/../../../../i686-pc-linux-gnu/bin/as... /usr/lib/gcc/i686-pc-linux-gnu/3.4.2/../../../../i686-pc-linux-gnu/bin/as checking version of /usr/lib/gcc/i686-pc-linux-gnu/3.4.2/../../../../i686-pc-linux-gnu/bin/as... 2.15.90.0.1.1, ok checking for /usr/lib/gcc/i686-pc-linux-gnu/3.4.2/../../../../i686-pc-linux-gnu/bin/ld... /usr/lib/gcc/i686-pc-linux-gnu/3.4.2/../../../../i686-pc-linux-gnu/bin/ld checking version of /usr/lib/gcc/i686-pc-linux-gnu/3.4.2/../../../../i686-pc-linux-gnu/bin/ld... 2.15.90.0.1.1, ok checking for pwd... /bin/pwd checking for i686-pc-linux-gnu-gcc... (cached) gcc checking version of gcc... 3.4.2, ok checking for gnumake... no checking for gmake... no checking for make... make checking version of make... 3.80, ok checking for gnumsgfmt... no checking for gmsgfmt... gmsgfmt checking version of gmsgfmt... 0.12.1, ok checking for makeinfo... makeinfo checking version of makeinfo... 4.7, ok checking for sed... sed checking version of sed... 4.1.2, ok checking for autoconf... no checking whether ranlib is necessary... conftest.c:1: warning: -fprefetch-loop-arrays not supported for this target (try -march switches) no checking LD_LIBRARY_PATH variable... ok checking whether GCC supports -static-libgcc... -static-libgcc checking for bash... /bin/sh checking for gawk... gawk checking for perl... no 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... no 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 -fno-unit-at-a-time... yes checking whether cc puts quotes around section names... no checking for assembler .weak directive... yes checking whether CFI directives are supported... yes checking if -g produces usable source locations for assembler-with-cpp... yes checking for ld --no-whole-archive... yes checking for gcc -fexceptions... yes checking for DWARF2 unwind info support... no_registry_needed checking for __builtin_expect... yes checking for __builtin_memset... no checking for redirection of built-in functions... yes checking for local label subtraction... yes checking for __thread... yes checking for tls_model attribute... no checking for libgd... no checking for egrep... 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... 12 running configure fragment for sysdeps/i386/elf checking for i386 TLS support... yes running configure fragment for nptl/sysdeps/unix/sysv/linux 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.3.4.20040808 failed. !!! Function src_compile, Line 567, Exitcode 1 !!! (no error message) !!! If you need support, post the topmost build error, NOT this status message. livecd portage # emerge --info Portage 2.0.51_rc7 (default-x86-2004.2, gcc-3.4.2, glibc-2.3.3.20040420-r0, 2.6.7-gentoo-r11 i686) ================================================================= System uname: 2.6.7-gentoo-r11 i686 Intel(R) Pentium(R) M processor 1500MHz Gentoo Base System version 1.4.16 Autoconf: Automake: Binutils: sys-devel/binutils-2.15.90.0.1.1-r3 Headers: sys-kernel/linux26-headers-2.6.8.1 Libtools: ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-march=pentium-m -O3 -mfpmath=sse -fforce-addr -fomit-frame-pointer -funroll-loops -funroll-all-loops -fprefetch-loop-arrays -maccumulate-outgoing-args -pipe" CHOST="i686-pc-linux-gnu" COMPILER="" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=pentium-m -O3 -mfpmath=sse -fforce-addr -fomit-frame-pointer -funroll-loops -funroll-all-loops -fprefetch-loop-arrays -maccumulate-outgoing-args -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache distlocks sandbox userpriv usersandbox" GENTOO_MIRRORS="ftp://81.88.192.4/pub/gentoo/portage http://gentoo.oregonstate.edu http://www.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://81.88.192.4/gentoo-portage" USE="acpi alsa arts avi berkdb bzlib cdr crypt cups directfb divx4linux dvd dvdr flac gdbm gif gphoto2 gpm icq imap java jpeg kde lirc mad maildir mmx ncurses nls nptl oggvorbis openal opengl pam pdflib png pnp qt quicktime readline samba slang snmp spell sse ssl svga theora tiff truetype trusted unicode usb wmf x86 xine xml xml2 xmms xvid zlib" livecd portage # I'll try to remove '-fprefetch-loop-arrays' flag from my CFLAGS today and see if it helps.
-fprefetch-loop-arrays is filtered out of CFLAGS, so this bug probably should've been closed a while ago...
closing
*** Bug 101310 has been marked as a duplicate of this bug. ***
Seems like it's not fixed, glibc-2.3.5-r1 fails as well.
Due to how flag-o-matic is, -fprefetch-loop-arrays is kept in CFLAGS if you are running ~arch, since its declared to be an "unstable flag". We either need to rip it out of there, or strip it in the glibc builds.
fixed