免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8599 | 回复: 6

求助交叉编译glibc的问题 [复制链接]

论坛徽章:
0
发表于 2011-12-01 20:57 |显示全部楼层
我在交叉编译glibc的时候遇到下面的问题,请高手指教,多谢!

交叉编译器为友善的arm-linux-gcc,版本及信息如下:
[arm@x200 glibc]$  echo | arm-linux-gcc -v -x c -E -
Using built-in specs.
COLLECT_GCC=arm-linux-gcc
COLLECT_LTO_WRAPPER=/opt/FriendlyARM/toolschain/4.5.1/libexec/gcc/arm-none-linux-gnueabi/4.5.1/lto-wrapper
Target: arm-none-linux-gnueabi
Configured with: /work/toolchain/build/src/gcc-4.5.1/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-none-linux-gnueabi --prefix=/opt/FriendlyARM/toolschain/4.5.1 --with-sysroot=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root --enable-languages=c,c++ --disable-multilib --with-cpu=arm1176jzf-s --with-tune=arm1176jzf-s --with-fpu=vfp --with-float=softfp --with-pkgversion=ctng-1.8.1-FA --with-bugurl=http://www.arm9.net/ --disable-sjlj-exceptions --enable-__cxa_atexit --disable-libmudflap --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-gmp=/work/toolchain/build/arm-none-linux-gnueabi/build/static --with-mpfr=/work/toolchain/build/arm-none-linux-gnueabi/build/static --with-ppl=/work/toolchain/build/arm-none-linux-gnueabi/build/static --with-cloog=/work/toolchain/build/arm-none-linux-gnueabi/build/static --with-mpc=/work/toolchain/build/arm-none-linux-gnueabi/build/static --with-libelf=/work/toolchain/build/arm-none-linux-gnueabi/build/static --enable-threads=posix --with-local-prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root --disable-nls --enable-symvers=gnu --enable-c99 --enable-long-long
Thread model: posix
gcc version 4.5.1 (ctng-1.8.1-FA)
COLLECT_GCC_OPTIONS='-v' '-E' '-mcpu=arm1176jzf-s' '-mfloat-abi=softfp' '-mfpu=vfp'
/opt/FriendlyARM/toolschain/4.5.1/libexec/gcc/arm-none-linux-gnueabi/4.5.1/cc1 -E -quiet -v - -mcpu=arm1176jzf-s -mfloat-abi=softfp -mfpu=vfp
ignoring nonexistent directory "/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/include"
ignoring duplicate directory "/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/usr/include"
#include "..." search starts here:
#include <...> search starts here:
/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/include
/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/include-fixed
/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/include
End of search list.
# 1 "<stdin>"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "<stdin>"
COMPILER_PATH=/opt/FriendlyARM/toolschain/4.5.1/libexec/gcc/arm-none-linux-gnueabi/4.5.1/:/opt/FriendlyARM/toolschain/4.5.1/libexec/gcc/arm-none-linux-gnueabi/4.5.1/:/opt/FriendlyARM/toolschain/4.5.1/libexec/gcc/arm-none-linux-gnueabi/:/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/:/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/:/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/bin/
LIBRARY_PATH=/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/:/opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/lib/:/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/lib/:/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-E' '-mcpu=arm1176jzf-s' '-mfloat-abi=softfp' '-mfpu=vfp'


configure的时候参数如下:
CC=arm-linux-cc CFLAGS+=" -O2 -mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=softfp -mfpu=vfp "  ./../glibc-2.14.1/configure  --prefix=$CFS --host=arm-linux --build=$(../glibc-2.14.1/scripts/config.guess) --disable-profile --enable-add-ons=../glibc-ports-2.14.1,nptl --with-tls --enable-kernel=2.6.38 --with-headers=$CFS/usr/include libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes

编译的时候出错信息:
arm-linux-cc setfpucw.c -c -std=gnu99 -fgnu89-inline -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -mcpu=arm1176jzf-s -mfloat-abi=softfp -mfpu=vfp -mtune=arm1176jzf-s -Wstrict-prototypes     -Wno-uninitialized -D__NO_MATH_INLINES -D__LIBC_INTERNAL_MATH_INLINES -DNO_LONG_DOUBLE -D_Mlong_double_=double -I../include -I/opt/FriendlyARM/mini6410/linux/build/glibc/math -I/opt/FriendlyARM/mini6410/linux/build/glibc -I../../glibc-ports-2.14.1/sysdeps/arm/elf -I../../glibc-ports-2.14.1/sysdeps/unix/sysv/linux/arm/nptl -I../../glibc-ports-2.14.1/sysdeps/unix/sysv/linux/arm -I../../glibc-ports-2.14.1/sysdeps/unix/sysv/linux -I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pthread -I../sysdeps/pthread -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../../glibc-ports-2.14.1/sysdeps/unix/sysv -I../nptl/sysdeps/unix/sysv -I../sysdeps/unix/sysv -I../../glibc-ports-2.14.1/sysdeps/unix/arm -I../../glibc-ports-2.14.1/sysdeps/unix -I../nptl/sysdeps/unix -I../sysdeps/unix -I../sysdeps/posix -I../../glibc-ports-2.14.1/sysdeps/arm/fpu -I../../glibc-ports-2.14.1/sysdeps/arm/nptl -I../../glibc-ports-2.14.1/sysdeps/arm -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -I../../glibc-ports-2.14.1 -I../nptl  -I.. -I../libio -I. -nostdinc -isystem /opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/include -isystem /opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/include-fixed -isystem /opt/FriendlyARM/mini6410/linux/crossfs/usr/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h       -o /opt/FriendlyARM/mini6410/linux/build/glibc/math/setfpucw.o -MD -MP -MF /opt/FriendlyARM/mini6410/linux/build/glibc/math/setfpucw.o.dt -MT /opt/FriendlyARM/mini6410/linux/build/glibc/math/setfpucw.o
/tmp/cce7hgSh.s: Assembler messages:
/tmp/cce7hgSh.s:25: Error: selected processor does not support `rfs r1'
/tmp/cce7hgSh.s:32: Error: selected processor does not support `wfs r3'
make[2]: *** [/opt/FriendlyARM/mini6410/linux/build/glibc/math/setfpucw.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory `/opt/FriendlyARM/mini6410/linux/build/glibc-2.14.1/math'
make[1]: *** [math/subdir_lib] Error 2
make[1]: Leaving directory `/opt/FriendlyARM/mini6410/linux/build/glibc-2.14.1'
make: *** [all] Error 2
[arm@x200 glibc]$

在线等啊。。。

论坛徽章:
0
发表于 2011-12-01 22:08 |显示全部楼层
回复 1# szrednick


    /tmp/cce7hgSh.s:25: Error: selected processor does not support `rfs r1'
/tmp/cce7hgSh.s:32: Error: selected processor does not support `wfs r3'
没细看 就是这个汇编文件用到的指令不被处理器支持吧 是不是编错对象了

论坛徽章:
0
发表于 2011-12-02 10:35 |显示全部楼层
回复 2# gtv

多谢关注~

s3c6410是支持VFP浮点的,arm-linux-gcc中也有如下信息:
COLLECT_GCC_OPTIONS='-v' '-E' '-mcpu=arm1176jzf-s' '-mfloat-abi=softfp' '-mfpu=vfp'

发现这两条汇编是arm IEEE 浮点指令

WFS{条件} <寄存器>
用指定 ARM 寄存器的内容写浮点状态寄存器。

RFS{条件} <寄存器>
读浮点状态寄存器到指定的 ARM 寄存器中。

论坛徽章:
0
发表于 2011-12-07 22:54 |显示全部楼层
折腾了一个星期,终于用crosstools-ng编译了支持6410 softfp的交叉编译工具,不过比友善的要慢一点点,可能和gcc的版本有一点点关系,正好做一下几个平台的浮点性能测试:

# mini6410开发板,纯软模拟浮点,今天编译的交叉编译工具
[root@FriendlyARM /test]# ./pi_css5.soft  65536
28.95 sec. (real time)

# mini6410开发板,softfp,今天编译的交叉编译工具
[root@FriendlyARM /test]# ./pi_css5.default   65536
4.83 sec. (real time)

# mini6410开发板,softfp,友善的交叉编译工具
[root@FriendlyARM /test]# ./pi_css5.arm9   65536
4.73 sec. (real time)

# 我的N900手机,Maemo Linux, 友善的交叉编译工具
Nokia-N900:~# ./pi_css5.arm9  65535
4.95 sec. (real time)

# 我的X200笔记本,ScientificLinux 6.0 64位,看来ARM暂时的浮点性能比X86还是有着巨大的差距
[root@x200 pi_css5_src]# ./pi_css5 65535
0.12 sec. (real time)

论坛徽章:
0
发表于 2013-09-03 20:37 |显示全部楼层
    /tmp/cce7hgSh.s:25: Error: selected processor does not support `rfs r1'
/tmp/cce7hgSh.s:32: Error: selected processor does not support `wfs r3'

帅哥 你是怎么解决这个问题的啊?我现在也遇到了同样的问题。

论坛徽章:
0
发表于 2013-09-04 16:46 |显示全部楼层
如果支持VFP的话,应该指定「-mfloat-abi=hard」吧?

论坛徽章:
0
发表于 2013-09-05 18:46 |显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2021中国系统架构师大会

【数字转型 架构重塑】
2022年1月13-15日,由IT168旗下ITPUB企业社区平台主办的第十四届中国系统架构师大会(SACC2021)将在云端进行网络直播。
为期3天的议程,涉及20+专场,近120个主题,完整迁移到线上进行网络直播对会议组织来说绝非易事;但考虑到云端会议的直播形式可以实现全国各地技术爱好者的参与,也使ITPUB作为技术共享交流平台得到更好的普及,我们决定迎难而上。

大会官网
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP