glibc-2.11 fails during configuration with the message: checking for stdint.h... (cached) yes checking for unistd.h... (cached) yes checking cpuid.h usability... no checking cpuid.h presence... no checking for cpuid.h... no configure: error: gcc must provide the <cpuid.h> header * ERROR: sys-libs/glibc-2.11 failed: * failed to configure glibc I cannot see how I can persuade my gcc - (GCC) 4.1.2 (Gentoo 4.1.2 p1.0.2) - to provide the cpuid.h header. Reproducible: Always Steps to Reproduce: 1emerge -va =sys-libs/glibc-2.11 2. 3. Portage 2.2_rc48 (default/linux/x87/10.0, gcc-4.1.2, glibc-2.10.1-r0, 2.6.31-gentoo-r4-ole i686) ================================================================= System uname: Linux-2.6.31-gentoo-r4-ole-i686-Intel-R-_Core-TM-2_Duo_CPU_E6550_@_2.33GHz-with-gentoo-2.0.1 Timestamp of tree: Fri, 06 Nov 2009 16:45:01 +0000 distcc 3.1 i686-pc-linux-gnu [enabled] ccache version 2.4 [enabled] app-shells/bash: 4.0_p35 dev-java/java-config: 1.3.7-r1, 2.1.9-r1 dev-lang/python: 2.6.2-r1 dev-python/pycrypto: 2.0.1-r8 dev-util/ccache: 2.4-r8 dev-util/cmake: 2.6.4-r3 sys-apps/baselayout: 2.0.1 sys-apps/openrc: 0.5.2-r1 sys-apps/sandbox: 2.2 sys-devel/autoconf: 2.13, 2.63-r1 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.2, 1.11 sys-devel/binutils: 2.20 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.6a virtual/os-headers: 2.6.30-r1 ACCEPT_KEYWORDS="x86 ~x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=prescott -O3 -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /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="-march=prescott -O3 -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="assume-digests ccache collision-protect distcc distlocks fixpackages metadata-tranfer news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch" GENTOO_MIRRORS="http://ftp.ntua.gr/pub/linux/gentoo ftp://files.gentoo.gr/ ftp://ftp.ntua.gr/pub/linux/gentoo/ ftp://gentoo.arcticnetwork.ca/pub/gentoo/" LANG="el_GR.ISO-8859-7" LDFLAGS="-Wl,-O1" LINGUAS="en el" MAKEOPTS="-j11" PKGDIR="/usr/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/portage/local/layman/sajinet /usr/portage/local/layman/berkano /usr/portage/local/layman/perl-experimental /usr/portage/local/layman/sunrise /usr/portage/local/layman/desktop-effects /usr/portage/local/layman/vmware /usr/portage/local/layman/jokey /usr/portage/local/layman/science /usr/portage/local/layman/kde3 /usr/portage/local" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="X aac acl alsa arts bash-completion berkdb bzip2 cli cracklib cups curl dbus dri dvd fam ffmpeg flac fontconfig fortran gdbm gif gpm gtk hal iconv imagemagick java jpeg kde mad mmx modules mono mp3 mplayer mudflap mysql ncurses nls npp nptl nptlonly nsplugin ogg opengl opengli openmp oss pam pcre pdf perl png pppd python qt3 rdesktop readline reflection samba session slang spell spl sse ssl ssse3 svg sysfs tcpd tetex tiff tk truetype unicode vorbis win32codecs x86 xorg xpm xulrunner xv xvid 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 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" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en el" USERLAND="GNU" VIDEO_CARDS="nvidia" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
<cpuid.h> is only provided by gcc 4.3 or higher, so it looks like glibc can no longer be built with older versions.
(In reply to comment #1) Thank you. I have masked the blighter already.
glibc-2.11 now requires gcc-4.3+ on x86
*** Bug 292469 has been marked as a duplicate of this bug. ***
amd64 needs it too. See duplicate above.
amd64 doesnt need it. only the x86 binaries do (multilib). http://sources.gentoo.org/sys-libs/glibc/glibc-2.11.ebuild?r1=1.3&r2=1.4
I got this error but I have gcc-4.4.2, so I should have this cpuid.h no ? Desktop ~ # emerge -pv gcc These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] sys-devel/gcc-4.4.2 USE="fortran mudflap (multilib) nls nptl openmp (-altivec) -bootstrap -build -doc (-fixed-point) -gcj -graphite -gtk (-hardened) -ip28 -ip32r10k (-libffi) -multislot (-n32) (-n64) -nocxx -objc -objc++ -objc-gc -test -vanilla" 0 kB
workaround : get the cpuid.h file from official GCC respositories (http://gcc.gnu.org/viewcvs/tags/gcc_4_4_2_release/gcc/config/i386/cpuid.h?view=co) and put it into /usr/include. glibc should compile without problem now.
(In reply to comment #8) Excellent tip. Worked with gcc-4.1.2 Thank you.
*forehead slap*
on amd64 gcc-config [gcc-4.3-profile-id] solves problem (as soon as you have gcc-4.3 installed)
Thank you so much, this worked for me.
*** Bug 325347 has been marked as a duplicate of this bug. ***
*** Bug 336336 has been marked as a duplicate of this bug. ***
(In reply to comment #8) > workaround : get the cpuid.h file from official GCC respositories > (http://gcc.gnu.org/viewcvs/tags/gcc_4_4_2_release/gcc/config/i386/cpuid.h?view=co) > and put it into /usr/include. > glibc should compile without problem now. > worked fo me too - I wish developer would think about...
Great Tip, I wish developer would think about....and add to the package
no. fix your system instead of screwing it up.
Shouldn't you instead fix the broken dependencies instead of blaming and insulting the users? Also, this bug is not fixed and should not be marked as such.
again, wrong. try reading the ebuild.
(In reply to comment #19) > again, wrong. try reading the ebuild. > And read the manual? http://www.gentoo.org/doc/en/gcc-upgrading.xml Until there is a valid argument on why upgrade glibc but not gcc, I think this bug is invalid. (In reply to comment #18) > Shouldn't you instead fix the broken dependencies instead of blaming and > insulting the users? Also, this bug is not fixed and should not be marked as > such. > What broken dependency? Glibc-2.11.2 does on amd64 and x86 (affected platforms) depend on >=gcc-4.3 so you must have it installed to be able to even try to merge it. And when merging a new version of GCC portage tells you to read the linked guide to actually finish the upgrade (i.e. activate new GCC version). So why accuse a dev of insulting users when the dev tell users that they are breaking their systems when the users try to work around that they do not read instructions? Is there a reason for upgrading a system critical package (glibc) without wanting to upgrade another system critical package (GCC) and instead possible breaking systems by importing header files from newer versions of GCC?
In my typical state of laziness, I only quickly skimmed through the comments, missing comment #3. I apologised to spanky privately. To everyone else, kindly ignore my comments on this bug.