Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 288107

Summary: xcb-util.3.3.6 fails to emerge ("Illegal instruction" in atoms.c)
Product: Gentoo Linux Reporter: lxg <mail2lx>
Component: [OLD] LibraryAssignee: Gentoo X packagers <x11>
Status: RESOLVED INVALID    
Severity: normal CC: SebastianLuther
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description lxg 2009-10-07 19:38:55 UTC
Emerging xcb-util.3.3.6 fails, although I also had it with 3.3.5-r2.

I did follow the libxcb guide from http://www.gentoo.org/proj/en/desktop/x/x11/libxcb-1.4-upgrade-guide.xml (although I think I had a run of emerge --keep-going before).


------------- SNIP -------------

>>> Emerging (1 of 18) x11-libs/xcb-util-0.3.6
 * xcb-util-0.3.6.tar.bz2 RMD160 SHA1 SHA256 size ;-) ...                                                                                                                          [ ok ]
 * checking ebuild checksums ;-) ...                                                                                                                                               [ ok ]
 * checking auxfile checksums ;-) ...                                                                                                                                              [ ok ]
 * checking miscfile checksums ;-) ...                                                                                                                                             [ ok ]
>>> Unpacking source...
>>> Unpacking xcb-util-0.3.6.tar.bz2 to /var/tmp/portage/x11-libs/xcb-util-0.3.6/work
 * Running elibtoolize in: xcb-util-0.3.6
 *   Applying portage-2.2.patch ...
 *   Applying sed-1.5.6.patch ...
 *   Applying as-needed-2.2.6.patch ...
>>> Source unpacked in /var/tmp/portage/x11-libs/xcb-util-0.3.6/work
>>> Compiling source in /var/tmp/portage/x11-libs/xcb-util-0.3.6/work/xcb-util-0.3.6 ...
 * econf: updating xcb-util-0.3.6/config.sub with /usr/share/gnuconfig/config.sub
 * econf: updating xcb-util-0.3.6/config.guess with /usr/share/gnuconfig/config.guess
./configure --prefix=/usr --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --prefix=/usr --datadir=/usr/share
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for m4... m4
checking if m4 supports -I... yes
checking for gperf... gperf
checking for i686-pc-linux-gnu-gcc... i686-pc-linux-gnu-gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether i686-pc-linux-gnu-gcc accepts -g... yes
checking for i686-pc-linux-gnu-gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of i686-pc-linux-gnu-gcc... gcc3
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by i686-pc-linux-gnu-gcc... /usr/i686-pc-linux-gnu/bin/ld
checking if the linker (/usr/i686-pc-linux-gnu/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking for /usr/i686-pc-linux-gnu/bin/ld option to reload object files... -r
checking for i686-pc-linux-gnu-objdump... i686-pc-linux-gnu-objdump
checking how to recognize dependent libraries... pass_all
checking for i686-pc-linux-gnu-ar... i686-pc-linux-gnu-ar
checking for i686-pc-linux-gnu-strip... i686-pc-linux-gnu-strip
checking for i686-pc-linux-gnu-ranlib... i686-pc-linux-gnu-ranlib
checking command to parse /usr/bin/nm -B output from i686-pc-linux-gnu-gcc object... ok
checking how to run the C preprocessor... i686-pc-linux-gnu-gcc -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 dlfcn.h... yes
checking for objdir... .libs
checking if i686-pc-linux-gnu-gcc supports -fno-rtti -fno-exceptions... no
checking for i686-pc-linux-gnu-gcc option to produce PIC... -fPIC -DPIC
checking if i686-pc-linux-gnu-gcc PIC flag -fPIC -DPIC works... yes
checking if i686-pc-linux-gnu-gcc static flag -static works... yes
checking if i686-pc-linux-gnu-gcc supports -c -o file.o... yes
checking if i686-pc-linux-gnu-gcc supports -c -o file.o... (cached) yes
checking whether the i686-pc-linux-gnu-gcc linker (/usr/i686-pc-linux-gnu/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for vasprintf... yes
checking for ssize_t... yes
checking for i686-pc-linux-gnu-pkg-config... no
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for XCB... yes
checking for gawk... (cached) gawk
checking whether libxcb was compiled against xcb-proto >= 1.5... yes
checking for XCB_SHM... yes
checking for XCB_RENDER... yes
checking for XPROTO... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating aux/Makefile
config.status: creating aux/xcb-aux.pc
config.status: creating reply/Makefile
config.status: creating reply/xcb-reply.pc
config.status: creating image/Makefile
config.status: creating image/xcb-image.pc
config.status: creating atom/Makefile
config.status: creating atom/xcb-atom.pc
config.status: creating event/Makefile
config.status: creating event/xcb-event.pc
config.status: creating keysyms/Makefile
config.status: creating keysyms/xcb-keysyms.pc
config.status: creating property/Makefile
config.status: creating property/xcb-property.pc
config.status: creating icccm/Makefile
config.status: creating icccm/xcb-icccm.pc
config.status: creating renderutil/Makefile
config.status: creating renderutil/xcb-renderutil.pc
config.status: creating xcb_util_intro
config.status: executing depfiles commands
config.status: executing libtool commands
make -j2 -s
Making all in atom
make[1]: *** [atoms.c] Illegal instruction
make: *** [all-recursive] Error 1
 *
 * ERROR: x11-libs/xcb-util-0.3.6 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called src_compile
 *             environment, line 3123:  Called x-modular_src_compile
 *             environment, line 3908:  Called x-modular_src_make
 *             environment, line 3948:  Called die
 * The specific snippet of code:
 *       emake || die "emake failed"
 *  The die message:
 *   emake failed

------------- SNIP -------------


Reproducible: Always




# emerge --info
Portage 2.1.6.13 (default/linux/x86/2008.0/desktop, gcc-4.4.1, glibc-2.10.1-r0, 2.6.25-gentoo-r4 i686)
=================================================================

System uname: Linux-2.6.25-gentoo-r4-i686-Intel-R-_Pentium-R-_4_CPU_2.40GHz-with-gentoo-2.0.1
Timestamp of tree: Wed, 07 Oct 2009 18:15:01 +0000
ccache version 2.4 [enabled]
app-shells/bash:     4.0_p33
dev-lang/python:     2.4.4-r13, 2.5.4-r2, 2.6.3, 3.1.1-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.4.3-r3
sys-apps/sandbox:    2.1
sys-devel/autoconf:  2.13, 2.63-r1
sys-devel/automake:  1.5, 1.7.9-r1, 1.9.6-r2, 1.10.2, 1.11
sys-devel/binutils:  2.19.1-r1
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="-O2 -march=i686 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-O2 -march=i686 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="buildpkg ccache distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="ftp://mirror.netcologne.de/gentoo/ ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ ftp://mirror.nutsmaas.nl/gentoo/"
LDFLAGS="-Wl,-O1"
LINGUAS="en"
MAKEOPTS="-j2 -s"
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="X a52 aac acl acpi alsa bash-completition berkdb bluetooth branding bzip2 cdr cli consolekit cracklib crypt cups dbus dri dts dvd dvdr eds emboss encode evo firefox flac fortran gdbm gif gpm hal iconv ipv6 isdnlog jpeg laptop libnotify mad mikmod modules mp3 mp4 mpeg mudflap ncurses nls nptl nptlonly ogg opengl openmp pam pcre pdf perl png pppd python qt3support qt4 quicktime readline reflection sdl session spell spl ssl startup-notification svg sysfs tcpd thunar truetype unicode usb vorbis win32codecs x264 x86 xml xorg 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 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" ELIBC="glibc" INPUT_DEVICES="keyboard mouse synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" USERLAND="GNU" VIDEO_CARDS="vesa vga intel"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Sebastian Luther (few) 2009-10-07 19:58:51 UTC
Did you recently change your C(XX)FLAGS?

Please remove -s from your MAKEOPTS, try again and post the new log (the part after the last "config.status:" suffices. 
Comment 2 lxg 2009-10-07 20:06:37 UTC
Yes, I have indeed changed the CFLAGS, after I had several issues. They used to be:
CFLAGS="-O2 -march=core2 -mtune=generic -fomit-frame-pointer -pipe"

The output after removing the -s in MAKEOPTS is:

------------ SNIP ------------

configure: creating ./config.status
config.status: creating Makefile
config.status: creating aux/Makefile
config.status: creating aux/xcb-aux.pc
config.status: creating reply/Makefile
config.status: creating reply/xcb-reply.pc
config.status: creating image/Makefile
config.status: creating image/xcb-image.pc
config.status: creating atom/Makefile
config.status: creating atom/xcb-atom.pc
config.status: creating event/Makefile
config.status: creating event/xcb-event.pc
config.status: creating keysyms/Makefile
config.status: creating keysyms/xcb-keysyms.pc
config.status: creating property/Makefile
config.status: creating property/xcb-property.pc
config.status: creating icccm/Makefile
config.status: creating icccm/xcb-icccm.pc
config.status: creating renderutil/Makefile
config.status: creating renderutil/xcb-renderutil.pc
config.status: creating xcb_util_intro
config.status: executing depfiles commands
config.status: executing libtool commands
make -j2
Making all in atom
make[1]: Entering directory `/var/tmp/portage/x11-libs/xcb-util-0.3.6/work/xcb-util-0.3.6/atom'
m4 -I. atoms.gperf.m4 >atoms.gperf
gperf --output-file atoms.c atoms.gperf
make[1]: *** [atoms.c] Illegal instruction
make[1]: Leaving directory `/var/tmp/portage/x11-libs/xcb-util-0.3.6/work/xcb-util-0.3.6/atom'
make: *** [all-recursive] Error 1

------------ SNIP ------------
Comment 3 Sebastian Luther (few) 2009-10-07 20:15:08 UTC
(In reply to comment #2)
> Yes, I have indeed changed the CFLAGS, after I had several issues. They used to
> be:
> CFLAGS="-O2 -march=core2 -mtune=generic -fomit-frame-pointer -pipe"

That's because your processor isn't a core2, but pentium4. Better use -march=native with >=gcc-4.3.

I suggest you do an

emerge -e system

to get the basic parts of your system in a sane state. The package that causes the build failure above seems to be dev-util/gperf.
Comment 4 lxg 2009-10-07 20:23:08 UTC
I see. The problem is that I'm actually building for a different machine, namely an Atom. I'll rebuild my 'system' packages and see if the bug goes away. Thanks for the help and sorry for bothering.

Comment 5 Sebastian Luther (few) 2009-10-08 06:02:52 UTC
The problem is that your build machine needs to be able to execute the binaries necessary to build packages. A safe solution would be to use -march=i686 and -mtune=<what ever you want>. 

When you are done with emerge -e system you might still need to rebuild dev-util/gperf.