http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59573
--- Comment #6 from Dennis Lan (dlan) <dennis.yxun at gmail dot com> --- (In reply to Yvan Roux from comment #5) > is the foundation model failing for the same reason here (i.e. not > recognizing the cmeq instruction) ? Not exactly, the foundation_v8 got abort while compiling gcc.. and yes, it does recognize the cmeq instruction. to clarify, the former gcc build log[1] I provided was generated in qemu which have *no* cmeq support. I do have a patch[2] for qemu which implement cmeq support (which I tested passed), yes, could if anyone can review those patches[3] for the qemu which implement cmeq, it does pass the glibc compilation and install successfully, but with the new glibc, gcc fail to build executable image[4] [1] http://gcc.gnu.org/bugzilla/attachment.cgi?id=31498 [2] https://github.com/dlanx/qemu/commit/1a9b3a40917c416125f10accba9e531ed91677d4 [3] git://github.com/dlanx/qemu (branch aarch64-1.6, top four patches) [4] following output from qemu with cmeq implemented (202940) insn # gcc -v Using built-in specs. COLLECT_GCC=/usr/aarch64-unknown-linux-gnu/gcc-bin/4.9.0-pre9999/gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/aarch64-unknown-linux-gnu/4.9.0-pre9999/lto -wrapper Target: aarch64-unknown-linux-gnu Configured with: /var/tmp/portage/sys-devel/gcc-4.9.0_pre9999/work/gcc-4.9.0-999 9/configure --prefix=/usr --bindir=/usr/aarch64-unknown-linux-gnu/gcc-bin/4.9.0- pre9999 --includedir=/usr/lib/gcc/aarch64-unknown-linux-gnu/4.9.0-pre9999/includ e --datadir=/usr/share/gcc-data/aarch64-unknown-linux-gnu/4.9.0-pre9999 --mandir =/usr/share/gcc-data/aarch64-unknown-linux-gnu/4.9.0-pre9999/man --infodir=/usr/ share/gcc-data/aarch64-unknown-linux-gnu/4.9.0-pre9999/info --with-gxx-include-d ir=/usr/lib/gcc/aarch64-unknown-linux-gnu/4.9.0-pre9999/include/g++-v4 --host=aa rch64-unknown-linux-gnu --build=aarch64-unknown-linux-gnu --disable-altivec --di sable-fixed-point --without-cloog --disable-lto --enable-nls --without-included- gettext --with-system-zlib --enable-obsolete --disable-werror --enable-secureplt --disable-multilib --disable-libmudflap --disable-libssp --enable-libgomp --wit h-python-dir=/share/gcc-data/aarch64-unknown-linux-gnu/4.9.0-pre9999/python --en able-checking=release --disable-libgcj --enable-libstdcxx-time --enable-language s=c,c++,fortran --enable-shared --enable-threads=posix --enable-__cxa_atexit --$ nable-clocale=gnu --with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gento o 4.9.0_pre9999' Thread model: posix gcc version 4.9.0-pre9999 20130926 (experimental) commit 07ca5686e64d32f7df4ccf4 205d0b914f120da5e (Gentoo 4.9.0_pre9999) (202940) insn # cat cmeq_test.c #include <stdio.h> #include <stdlib.h> long long fn(long long val) { asm volatile( "fmov d0, x0\n\t" "cmeq d0, d0, #0\n\t" "fmov x0, d0\n\t" ); } int main(int argc, char *argv[]) { long long v = strtoul(argv[1], NULL, 0); printf("result: 0x%lx, 0x%lx\n", v, fn(v)); return 0; } (202940) insn # ./cmeq_test 1 result: 0x1, 0x0 (202940) insn # ./cmeq_test 0 result: 0x0, 0xffffffffffffffff (202940) insn # ./cmeq_test 0xffff000000 result: 0xffff000000, 0x0 (202940) insn # gcc -o mytest_v4 mytest_v4.c /usr/lib/gcc/aarch64-unknown-linux-gnu/4.9.0-pre9999/../../../../aarch64-unknown-linux-gnu/bin/ld: error: Cannot change output format whilst linking AArch64 binaries. collect2: error: ld returned 1 exit status (the above cmeq_test was built with sane gcc - with 07ca5686e64 reverted)