LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 977|回复: 7

编译GCC-2.95.3

[复制链接]
发表于 2005-12-16 08:50:10 | 显示全部楼层 |阅读模式
各位高手请帮忙:
      我在Fedora core 3 下编译gcc-2.95.3,配置为 ../configure --target=arm-linux --prefix=/home/.... --without-headers --enable-languages=c --disable-threads
并且执行过程也没问题,但是,MAKE时出现几条下面的错误:"no such instruction",百思不得其解,请各位高手请帮忙,多谢.
发表于 2005-12-16 09:00:18 | 显示全部楼层
觉得问题是:--target=arm-linux

如果要cross的话,要有相应的kernel headers/glibc库/ld等。

(你要编译一个在本机运行的,为arm体系编译的gcc?)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-19 15:14:31 | 显示全部楼层
是的,我为ARM编译GCC,请问我正确的步骤应该咋做?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-19 18:34:42 | 显示全部楼层
编译GCC-2.95.3的详细的错误记录为:
_udivsi3
libgcc1.S: Assembler messages:
libgcc1.S:1: Error: junk at end of line, first unrecognized character is `@'
libgcc1.S:2: Error: junk at end of line, first unrecognized character is `@'
libgcc1.S:71: Error: no such instruction: `dividend .req r0'
libgcc1.S:72: Error: no such instruction: `divisor .req r1'
libgcc1.S:73: Error: no such instruction: `result .req r2'
libgcc1.S:74: Error: no such instruction: `curbit .req r3'
libgcc1.S:75: Error: no such instruction: `ip .req r12'
libgcc1.S:76: Error: no such instruction: `sp .req r13'
libgcc1.S:77: Error: no such instruction: `lr .req r14'
libgcc1.S:78: Error: no such instruction: `pc .req r15'
libgcc1.S:86: Error: expecting operand after ','; got nothing
libgcc1.S:87: Error: no such instruction: `beq Ldiv0'
libgcc1.S:88: Error: expecting operand after ','; got nothing
libgcc1.S:89: Error: expecting operand after ','; got nothing
libgcc1.S:90: Error: too many memory references for `cmp'
libgcc1.S:91: Error: no such instruction: `bcc Lgot_result'
libgcc1.S:93: Error: junk at end of line, first unrecognized character is `@'
libgcc1.S:94: Error: junk at end of line, first unrecognized character is `@'
libgcc1.S:95: Error: junk at end of line, first unrecognized character is `@'
libgcc1.S:96: Error: junk at end of line, first unrecognized character is `@'
libgcc1.S:97: Error: expecting operand after ','; got nothing
libgcc1.S:98: Error: no such instruction: `cmpcc divisor,dividend'
libgcc1.S:99: Error: no such instruction: `movcc divisor,divisor,lsl'
libgcc1.S:100: Error: no such instruction: `movcc curbit,curbit,lsl'
libgcc1.S:101: Error: no such instruction: `bcc Loop1'
libgcc1.S:104: Error: junk at end of line, first unrecognized character is `@'
libgcc1.S:105: Error: junk at end of line, first unrecognized character is `@'
libgcc1.S:106: Error: expecting operand after ','; got nothing
libgcc1.S:107: Error: no such instruction: `cmpcc divisor,dividend'
libgcc1.S:108: Error: no such instruction: `movcc divisor,divisor,lsl'
libgcc1.S:109: Error: no such instruction: `movcc curbit,curbit,lsl'
libgcc1.S:110: Error: no such instruction: `bcc Lbignum'
libgcc1.S:113: Error: junk at end of line, first unrecognized character is `@'
libgcc1.S:114: Error: junk at end of line, first unrecognized character is `@'
libgcc1.S:115: Error: junk at end of line, first unrecognized character is `@'
libgcc1.S:116: Error: junk at end of line, first unrecognized character is `@'
libgcc1.S:117: Error: too many memory references for `cmp'
libgcc1.S:118: Error: no such instruction: `subcs dividend,dividend,divisor'
libgcc1.S:119: Error: no such instruction: `orrcs result,result,curbit'
libgcc1.S:120: Error: too many memory references for `cmp'
libgcc1.S:121: Error: no such instruction: `subcs dividend,dividend,divisor,lsr'libgcc1.S:122: Error: no such instruction: `orrcs result,result,curbit,lsr'
libgcc1.S:123: Error: too many memory references for `cmp'
libgcc1.S:124: Error: no such instruction: `subcs dividend,dividend,divisor,lsr'libgcc1.S:125: Error: no such instruction: `orrcs result,result,curbit,lsr'
libgcc1.S:126: Error: too many memory references for `cmp'
libgcc1.S:127: Error: no such instruction: `subcs dividend,dividend,divisor,lsr'libgcc1.S:128: Error: no such instruction: `orrcs result,result,curbit,lsr'
libgcc1.S:129: Error: expecting operand after ','; got nothing
libgcc1.S:130: Error: no such instruction: `movnes curbit,curbit,lsr'
libgcc1.S:131: Error: no such instruction: `movne divisor,divisor,lsr'
libgcc1.S:132: Error: no such instruction: `bne Loop3'
libgcc1.S:134: Error: too many memory references for `mov'
libgcc1.S:135: Error: too many memory references for `mov'
libgcc1.S:138: Error: invalid char '[' beginning operand 2 `[sp'
libgcc1.S:139: Error: no such instruction: `bl __div0 (PLT)'
libgcc1.S:140: Error: expecting operand after ','; got nothing
libgcc1.S:141: Error: no such instruction: `ldmia sp!,{pc}'
make[1]: *** [libgcc1-asm.a] 错误 1
make[1]: Leaving directory `/home/hillson/project/build-tools/build-boot-gcc/gcc'
make: *** [all-gcc] 错误 2

请各帮忙分析一下!
回复 支持 反对

使用道具 举报

发表于 2005-12-19 21:29:25 | 显示全部楼层
正确步骤我不知道,不过你可以参考一下已有的脚本。

http://kegel.com/crosstool/
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-20 08:35:44 | 显示全部楼层
在gcc-2.95.3\INSTALL\configure.html 中有以下的说明,应该如何理解,"CC","GCC"是什么:
when configuring a native system, either "cc" or "gcc" must be in your path or you must set CC in your environment before running configure. Otherwise the configuration scripts may fail.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-12-21 08:35:07 | 显示全部楼层
请各位帮帮忙吧!
回复 支持 反对

使用道具 举报

发表于 2005-12-21 22:08:00 | 显示全部楼层
CC和GCC 应该指向现有的 cc 和 gcc 命令。

比如
GCC="/usr/bin/gcc"
CC="/usr/bin/cc"
也可以扩展成

GCC="/usr/bin/i686-pc-linux-gnu-gcc"
CC="/usr/bin/i686-pc-linux-gnu-cc"
之类的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表