ERROR: Function 'do_compile' failed (see /disk0/pokybuild/build-multilib-x32-qemu/tmp/work/x86_64-x32-poky-linux-gnux32/libatomics-ops-1.2-r5/temp/log.do_compile.6887 for further information) ERROR: Logfile of failure stored in: /disk0/pokybuild/build-multilib-x32-qemu/tmp/work/x86_64-x32-poky-linux-gnux32/libatomics-ops-1.2-r5/temp/log.do_compile.6887 Log data follows: | DEBUG: SITE files ['endian-little', 'common-linux', 'common-glibc', 'bit-32', 'ix86-common', 'x86_64-linux-gnux32', 'common'] | NOTE: make -j 16 | Making all in src | make[1]: Entering directory `/disk0/pokybuild/build-multilib-x32-qemu/tmp/work/x86_64-x32-poky-linux-gnux32/libatomics-ops-1.2-r5/libatomic_ops-1.2/src' | make all-recursive | make[2]: Entering directory `/disk0/pokybuild/build-multilib-x32-qemu/tmp/work/x86_64-x32-poky-linux-gnux32/libatomics-ops-1.2-r5/libatomic_ops-1.2/src' | Making all in atomic_ops | make[3]: Entering directory `/disk0/pokybuild/build-multilib-x32-qemu/tmp/work/x86_64-x32-poky-linux-gnux32/libatomics-ops-1.2-r5/libatomic_ops-1.2/src/atomic_ops' | Making all in sysdeps | make[4]: Entering directory `/disk0/pokybuild/build-multilib-x32-qemu/tmp/work/x86_64-x32-poky-linux-gnux32/libatomics-ops-1.2-r5/libatomic_ops-1.2/src/atomic_ops/sysdeps' | make[4]: Nothing to be done for `all'. | make[4]: Leaving directory `/disk0/pokybuild/build-multilib-x32-qemu/tmp/work/x86_64-x32-poky-linux-gnux32/libatomics-ops-1.2-r5/libatomic_ops-1.2/src/atomic_ops/sysdeps' | make[4]: Entering directory `/disk0/pokybuild/build-multilib-x32-qemu/tmp/work/x86_64-x32-poky-linux-gnux32/libatomics-ops-1.2-r5/libatomic_ops-1.2/src/atomic_ops' | make[4]: Nothing to be done for `all-am'. | make[4]: Leaving directory `/disk0/pokybuild/build-multilib-x32-qemu/tmp/work/x86_64-x32-poky-linux-gnux32/libatomics-ops-1.2-r5/libatomic_ops-1.2/src/atomic_ops' | make[3]: Leaving directory `/disk0/pokybuild/build-multilib-x32-qemu/tmp/work/x86_64-x32-poky-linux-gnux32/libatomics-ops-1.2-r5/libatomic_ops-1.2/src/atomic_ops' | make[3]: Entering directory `/disk0/pokybuild/build-multilib-x32-qemu/tmp/work/x86_64-x32-poky-linux-gnux32/libatomics-ops-1.2-r5/libatomic_ops-1.2/src' | ccache x86_64-poky-linux-gnux32-gcc -mx32 --sysroot=/disk0/pokybuild/build-multilib-x32-qemu/tmp/sysroots/qemux86-64 -DHAVE_CONFIG_H -I. -fPIC -O2 -pipe -g -feliminate-unused-debug-types -DNDEBUG -MT atomic_ops_stack.o -MD -MP -MF .deps/atomic_ops_stack.Tpo -c -o atomic_ops_stack.o atomic_ops_stack.c | ccache x86_64-poky-linux-gnux32-gcc -mx32 --sysroot=/disk0/pokybuild/build-multilib-x32-qemu/tmp/sysroots/qemux86-64 -DHAVE_CONFIG_H -I. -fPIC -O2 -pipe -g -feliminate-unused-debug-types -DNDEBUG -MT atomic_ops_malloc.o -MD -MP -MF .deps/atomic_ops_malloc.Tpo -c -o atomic_ops_malloc.o atomic_ops_malloc.c | atomic_ops/sysdeps/gcc/x86_64.h: Assembler messages: | atomic_ops/sysdeps/gcc/x86_64.h:139: Error: incorrect register `%edx' used with `q' suffix | atomic_ops/sysdeps/gcc/x86_64.h:139: Error: incorrect register `%ebx' used with `q' suffix | atomic_ops/sysdeps/gcc/x86_64.h:139: Error: incorrect register `%ebx' used with `q' suffix | atomic_ops/sysdeps/gcc/x86_64.h:139: Error: incorrect register `%ecx' used with `q' suffix | make[3]: *** [atomic_ops_stack.o] Error 1 | make[3]: *** Waiting for unfinished jobs.... | atomic_ops_malloc.c: In function 'msb': | atomic_ops_malloc.c:223:2: warning: right shift count >= width of type [enabled by default] | atomic_ops/sysdeps/gcc/x86_64.h: Assembler messages: | atomic_ops/sysdeps/gcc/x86_64.h:139: Error: incorrect register `%edx' used with `q' suffix | atomic_ops/sysdeps/gcc/x86_64.h:139: Error: incorrect register `%ecx' used with `q' suffix | make[3]: *** [atomic_ops_malloc.o] Error 1 | make[3]: Leaving directory `/disk0/pokybuild/build-multilib-x32-qemu/tmp/work/x86_64-x32-poky-linux-gnux32/libatomics-ops-1.2-r5/libatomic_ops-1.2/src' | make[2]: *** [all-recursive] Error 1 | make[2]: Leaving directory `/disk0/pokybuild/build-multilib-x32-qemu/tmp/work/x86_64-x32-poky-linux-gnux32/libatomics-ops-1.2-r5/libatomic_ops-1.2/src' | make[1]: *** [all] Error 2 | make[1]: Leaving directory `/disk0/pokybuild/build-multilib-x32-qemu/tmp/work/x86_64-x32-poky-linux-gnux32/libatomics-ops-1.2-r5/libatomic_ops-1.2/src' | make: *** [all-recursive] Error 1 | ERROR: oe_runmake failed | ERROR: Function 'do_compile' failed (see /disk0/pokybuild/build-multilib-x32-qemu/tmp/work/x86_64-x32-poky-linux-gnux32/libatomics-ops-1.2-r5/temp/log.do_compile.6887 for further information) NOTE: package libatomics-ops-1.2-r5: task do_compile: Failed
Have a fix for this issue in my local branch, will push it soon. Nitin
This commit in the master fixes the issue: commit e3a384578f677c05d812d99c2c92aa13670bd06a Author: Nitin A Kamble <nitin.a.kamble@intel.com> Date: Fri Dec 2 12:20:09 2011 -0800 libatomics-ops: patch source code for x32 This Fixes bug: [YOCTO #1418] Remove the `q' suffix on x86-64 atomic instructions. We don't need the `q' suffix on x86_64 atomic instructions for AO_t, which is defined as "unsigned long". "unsigned long" is 32bit for x32 and 64bit for x86-64. The register operand in x86-64 atomic instructions is sufficient to properly determine the register size. (From OE-Core rev: daaaeb1bd1467a2bed75722ce3ff35be970402e0) Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com> Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>