免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 994 | 回复: 0
打印 上一主题 下一主题

Linux下构建 MIPS 交叉编译器 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-12 17:29 |只看该作者 |倒序浏览


使用crosstool-0.43 在Linux环境下构建 MIPS 交叉编译器
最初步骤参见前面关于ARM的描述,这里主要解决在构建过程中遇到的错误。
编译选择的版本是: gcc-4.0.0-glibc-2.3.2.dat
其内容为:
BINUTILS_DIR=binutils-2.16.1
GCC_DIR=gcc-4.0.0
GLIBC_DIR=glibc-2.3.2
LINUX_DIR=linux-2.6.15.4
LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0
GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2
GCC_CORE_DIR=gcc-3.3.6
出现的错误:
1.编译过程中出现一个问题,说是gcc版本太旧,其实是gcc版本太新了,解决如下:
sudo apt-get install gcc-3.4
cd /usr/bin
sudo rm gcc
ln -s gcc-3.4 gcc
注意编译完成以后要恢复成原来的版本,如下:
cd /usr/bin
sudo rm gcc
ln -s gcc-4.3 gcc
2.Error: operation combines symbols in different segments
make[2]: *** [libgcc/./_divdi3.o] Error 1
具体解决方式为:
在binutils-2.16/gas/config/tc-mips.h
最后#endif 前面加上
#define UNDEFINED_DIFFERENCE_OK
在binutils-2.16/gas/expr.c
将#ifdef DIFF_EXPR_OK
更换为
#if ((defined DIFF_EXPR_OK) || (defined TC_MIPS))
这样再编译就正常编译了。
3.出现如:build-glibc/csu/version-info.h:1:1: missing terminating " character
系统在编译生成version.o时候发现version-info.h文件有错误,解决方法:
解压glibc-2.3.2.tar.bz2
找到glibc-2.3.2/csu目录下的Makefile按如下修改
文件末尾有2处echo
echo
"\"Compiled on a $$os $$version system" \
                        "on
`date +%Y-%m-%d`.\\n\"" ;; \
改为:
echo
"\"Compiled on a $$os $$version system" \
                        "on
`date +%Y-%m-%d`.\\\\n\"" ;; \
echo
"\"Available extensions:\\n\"";
改为:
echo
"\"Available extensions:\\\\n\"" \
保存并重新压缩为glibc-2.3.2.tar.bz2 覆盖原来downloads目录下的glibc-2.3.2.tar.bz2,转到crosstool-0.43目录下从新执行。

转自
http://blog.163.com/chenglian_999@126/blog/static/76000279200981041846584/


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/94145/showart_2068598.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP