【问题】
折腾:
【记录】编译配置好的xscale版本的crosstool-ng-1.18.0
期间,继续去编译
ct-ng build
结果又遇到错误:
[email protected] ~/develop/crosstool-ng/crosstool-ng-1.18.0_build $ ct-ng build [INFO ] Performing some trivial sanity checks [INFO ] Build started 20130725.100447 [INFO ] Building environment variables [EXTRA] Preparing working directories [EXTRA] Installing user-supplied crosstool-NG configuration [EXTRA] ================================================================= [EXTRA] Dumping internal crosstool-NG configuration [EXTRA] Building a toolchain for: [EXTRA] build = i686-pc-cygwin [EXTRA] host = i686-pc-cygwin [EXTRA] target = arm-xscale-linux-gnueabi [EXTRA] Dumping internal crosstool-NG configuration: done in 0.96s (at 00:45) [INFO ] ================================================================= [INFO ] Retrieving needed toolchain components' tarballs [EXTRA] Using 'linux-custom' from custom location [INFO ] Retrieving needed toolchain components' tarballs: done in 2.93s (at 00:48) [INFO ] ================================================================= [INFO ] Extracting and patching toolchain components [INFO ] Extracting and patching toolchain components: done in 8.52s (at 00:57) [EXTRA] Saving state to restart at step 'libc_check_config'... [EXTRA] Saving state to restart at step 'companion_libs_for_build'... [EXTRA] Saving state to restart at step 'binutils_for_build'... [EXTRA] Saving state to restart at step 'companion_libs_for_host'... [EXTRA] Saving state to restart at step 'binutils_for_host'... [INFO ] ================================================================= [INFO ] Installing binutils for host [EXTRA] Configuring binutils [EXTRA] Building binutils [EXTRA] Installing binutils [INFO ] Installing binutils for host: done in 591.41s (at 10:54) [EXTRA] Saving state to restart at step 'cc_core_pass_1'... [INFO ] ================================================================= [INFO ] Installing pass-1 core C compiler [EXTRA] Configuring gcc [EXTRA] Building gcc [ERROR] make[3]: *** [libgcc/./_powisf2.o] Error 1 [ERROR] make[3]: *** [libgcc/./_powidf2.o] Error 1 [ERROR] make[2]: *** [stmp-multilib] Error 2 [ERROR] make[1]: *** [all-gcc] Error 2 [ERROR] [ERROR] >> [ERROR] >> Build failed in step 'Installing pass-1 core C compiler' [ERROR] >> called in step '(top-level)' [ERROR] >> [ERROR] >> Error happened in: CT_DoExecLog[scripts/[email protected]] [ERROR] >> called from: do_cc_core_backend[scripts/build/cc/[email protected]] [ERROR] >> called from: do_cc_core_pass_1[scripts/build/cc/[email protected]] [ERROR] >> called from: main[scripts/[email protected]] Current command: 'make' '-j4' '-l' 'all-gcc' exited with error code: 2 Please fix it up and finish by exiting the shell with one of these values: 1 fixed, continue with next build command 2 repeat this build command 3 abort build ct-ng:~/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/arm-xscale-linux-gnueabi/build/build-cc-core-pass-1>
【解决过程】
1. 然后去看看log:
D:\tmp\tmp_dev_root\cgwin\home\CLi\develop\crosstool-ng\crosstool-ng-1.18.0_build\build.log
中的相关内容是:
[ALL ] /home/CLi/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/arm-xscale-linux-gnueabi/build/build-cc-core-pass-1/./gcc/xgcc -B/home/CLi/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/arm-xscale-linux-gnueabi/build/build-cc-core-pass-1/./gcc/ -B/home/CLi/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/arm-xscale-linux-gnueabi/buildtools/arm-xscale-linux-gnueabi/bin/ -B/home/CLi/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/arm-xscale-linux-gnueabi/buildtools/arm-xscale-linux-gnueabi/lib/ -isystem /home/CLi/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/arm-xscale-linux-gnueabi/buildtools/arm-xscale-linux-gnueabi/include -isystem /home/CLi/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/arm-xscale-linux-gnueabi/buildtools/arm-xscale-linux-gnueabi/sys-include -O2 -g -Os -DIN_GCC -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -g -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -I. -I. -I/home/CLi/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/src/gcc-4.2.2/gcc -I/home/CLi/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/src/gcc-4.2.2/gcc/. -I/home/CLi/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/src/gcc-4.2.2/gcc/../include -I/home/CLi/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/src/gcc-4.2.2/gcc/../libcpp/include -I/home/CLi/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/src/gcc-4.2.2/gcc/../libdecnumber -I../libdecnumber -DL_powixf2 -c /home/CLi/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/src/gcc-4.2.2/gcc/libgcc2.c -o libgcc/./_powixf2.o [ALL ] /tmp/cc7Xh6xp.s: Assembler messages: [ALL ] /tmp/cc7Xh6xp.s:21: Error: selected processor does not support ARM mode `fmsr s14,r0' [ALL ] /tmp/cc7Xh6xp.s:27: Error: selected processor does not support ARM mode `flds s15,.L16' [ALL ] /tmp/cc7Xh6xp.s:28: Error: selected processor does not support ARM mode `fcpyseq s13,s15' [ALL ] /tmp/cc7Xh6xp.s:29: Error: selected processor does not support ARM mode `fcpysne s13,s14' [ALL ] /tmp/cc7Xh6xp.s:39: Error: selected processor does not support ARM mode `fmuls s14,s14,s14' [ALL ] /tmp/cc7Xh6xp.s:41: Error: selected processor does not support ARM mode `fmulsne s13,s13,s14' [ALL ] /tmp/cc7Xh6xp.s:49: Error: selected processor does not support ARM mode `fldslt s15,.L16' [ALL ] /tmp/cc7Xh6xp.s:50: Error: selected processor does not support ARM mode `fdivslt s13,s15,s13' [ALL ] /tmp/cc7Xh6xp.s:52: Error: selected processor does not support ARM mode `fmrs r0,s13' [ALL ] libgcc.mk:223: recipe for target `libgcc/./_powisf2.o' failed [ERROR] make[3]: *** [libgcc/./_powisf2.o] Error 1 [ALL ] make[3]: *** Waiting for unfinished jobs.... [ALL ] /tmp/ccSq3fkb.s: Assembler messages: [ALL ] /tmp/ccSq3fkb.s:21: Error: selected processor does not support ARM mode `fmdrr d6,r0,r1' [ALL ] /tmp/ccSq3fkb.s:23: Error: selected processor does not support ARM mode `fldd d7,.L16' [ALL ] /tmp/ccSq3fkb.s:29: Error: selected processor does not support ARM mode `fcpydeq d5,d7' [ALL ] /tmp/ccSq3fkb.s:30: Error: selected processor does not support ARM mode `fcpydne d5,d6' [ALL ] /tmp/ccSq3fkb.s:40: Error: selected processor does not support ARM mode `fmuld d6,d6,d6' [ALL ] /tmp/ccSq3fkb.s:42: Error: selected processor does not support ARM mode `fmuldne d5,d5,d6' [ALL ] /tmp/ccSq3fkb.s:50: Error: selected processor does not support ARM mode `flddlt d7,.L16' [ALL ] /tmp/ccSq3fkb.s:51: Error: selected processor does not support ARM mode `fdivdlt d5,d7,d5' [ALL ] /tmp/ccSq3fkb.s:54: Error: selected processor does not support ARM mode `fmrrd r0,r1,d5' [ALL ] libgcc.mk:226: recipe for target `libgcc/./_powidf2.o' failed [ERROR] make[3]: *** [libgcc/./_powidf2.o] Error 1 [ALL ] make[4]: `crtend.o' is up to date. [ALL ] make[4]: `crtbeginS.o' is up to date. [ALL ] make[4]: `crtendS.o' is up to date. [ALL ] make[4]: `crtbeginT.o' is up to date. [ALL ] make[4]: Leaving directory `/home/CLi/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/arm-xscale-linux-gnueabi/build/build-cc-core-pass-1/gcc' [ALL ] make[3]: Leaving directory `/home/CLi/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/arm-xscale-linux-gnueabi/build/build-cc-core-pass-1/gcc' [ALL ] Makefile:1540: recipe for target `stmp-multilib' failed [ERROR] make[2]: *** [stmp-multilib] Error 2 [ALL ] rm gcc.pod [ALL ] make[2]: Leaving directory `/home/CLi/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/arm-xscale-linux-gnueabi/build/build-cc-core-pass-1/gcc' [ALL ] Makefile:4314: recipe for target `all-gcc' failed [ERROR] make[1]: *** [all-gcc] Error 2 [ALL ] make[1]: Leaving directory `/home/CLi/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/arm-xscale-linux-gnueabi/build/build-cc-core-pass-1' [ERROR] [ERROR] >> [ERROR] >> Build failed in step 'Installing pass-1 core C compiler' [ERROR] >> called in step '(top-level)' [ERROR] >> [ERROR] >> Error happened in: CT_DoExecLog[scripts/[email protected]] [ERROR] >> called from: do_cc_core_backend[scripts/build/cc/[email protected]] [ERROR] >> called from: do_cc_core_pass_1[scripts/build/cc/[email protected]] [ERROR] >> called from: main[scripts/[email protected]]
所以,错误是:
/tmp/cc7Xh6xp.s:21: Error: selected processor does not support ARM mode `fmsr s14,r0′ |
2.所以去看看对应的代码:
结果:
(1)cygwin下的tmp中,没有cc7Xh6xp.s
(2)而
D:\tmp\tmp_dev_root\cgwin\home\CLi\develop\crosstool-ng\crosstool-ng-1.18.0_build\.build\src\gcc-4.2.2\gcc\libgcc2.c
中也没有和:
fmsr s14,r0
相关的代码。
所以,找不到对应的.s汇编文件,没法调试。
3.后来搜:
gcc fmsr s14,r0
找到:
Overwriting neon quad register does not clobber all included single registers
但是还是没完全看懂。
4. 另外,搜到:
Diff of /llvm-gcc-4.2/trunk/gcc/config/arm/ieee754-sf.S
中有类似的代码:
fmsr s14, r0 |
然后去:
D:\tmp\tmp_dev_root\cgwin\home\CLi\develop\crosstool-ng\crosstool-ng-1.18.0_build\.build\src\gcc-4.2.2\gcc\config\arm\ieee754-sf.S
和
D:\tmp\tmp_dev_root\cgwin\home\CLi\develop\crosstool-ng\crosstool-ng-1.18.0_build\.build\src\gcc-4.2.2\gcc\config\arm\ieee754-df.S
看了看,但是不知道怎么解决此问题。
5. 这里:
[Bug target/29120] New: Arm cross-compiler could not be created (assember error)
遇到类似问题,但是无解。
【总结】
另外,网上搜了半天,也找到很多,
gcc-4.1.x
或
gcc-4.2.x
而遇到,交叉编译arm而出现类似错误的。
所以,猜测或许是gcc 4.2之前有此bug吧。
所以,实在不行,那就换个gcc版本再去试试。详见:
【记录】编译配置好的xscale版本的crosstool-ng-1.18.0
转载请注明:在路上 » 【未解决】crosstool-ng编译arm的xscale时,编译gcc-4.2.4时出错:[libgcc/./_powisf2.o] Error 1,/tmp/cc7Xh6xp.s:21: Error: selected processor does not support ARM mode `fmsr s14,r0′