gdczh 发表于 2005-12-19 12:49:56

编译blob上的问题,请各位大虾指点

我在44b0上移植blob,编译blob时遇到了问题。这里说说的我的做法(使用环境RedHat 9):
1. 编辑文件 configure ,把所有arm-linux 改为arm-elf; 在580行处(“ac_ext=c”之前)插入 LDFLAGS=-elf2flt ,保存文件。

2.运行命令./configure --with-board=mba-44b0 --with-linux-prefix=/usr/local/src/uClinux-dist/linux-2.4.x (这是我的uclinux目录) --host=arm-elf

结果:LDFLAGS = -elf2flt -static -nostdlib

3.运行make

4.编译到arm-elf-objcopy -O binary -R .note .comment -S blob-start-elf32 blob-start出现错误(与你的一样):
arm-elf-objcopy:blob-start-elf32:File format not recognized
5.分析blob-start-elf32编译的命令
arm-elf-gcc -Os -I/usr/local/src/uClinux-dist/linux-2.4.x/include
-Wall -march=armv4 -mtune=strongarm1100
-fomit-frame-pointer -fno-builtin -mapcs-32 -nostdinc
-elf2flt -static -nostdlib -o blob-start-elf32
-Wl,-T,./start-ld-script start.o ledasm.o memsetup-s3c44b0.o -lgcc

使用了-elf2flt 选项,把blob-start-elf32编译成flat格式。

6.到目录 blob/src/blob目录下直接执行编译命令(把-elf2flt去掉)
arm-elf-gcc -Os -I/usr/local/src/uClinux-dist/linux-2.4.x/include
-Wall -march=armv4 -mtune=strongarm1100
-fomit-frame-ointer -fno-builtin -mapcs-32 -nostdinc
-static -nostdlib -o blob-start-elf32
-Wl,-T,./start-ld-script start.o ledasm.o memsetup-s3c44b0.o -lgcc

再执行一次
arm-elf-objcopy -O binary -R .note .comment -S blob-start-elf32 blob-start

结果顺利编译通过

显然 arm-elf-objcopy 中 blob-start-elf32 必须为elf格式
其后的blob-rest-elf32 ,blob-chain-elf32编译也应该是elf格式。

7.结论:所以编译源文件要使用 -elf2flt 才能编译通过,但编译连接 blob-start-elf32 又不能使用-elf2flt开关

8.直接修改blob/src/blob的Makefile ,但运行make 后,此Makefile又回复原样,实在没有办法,不知道如何修改。

9.本人一直在windows下编写程序,对makefile 的编辑不是很熟悉,虽然知道错误的原因, 但不知怎样修改makefile ,此事很急,请各位大侠赐教!

ksh 发表于 2005-12-20 20:11:13

一般来说不用去修改makefile 和configure , 只需在configure 命令的前面指定CC 和CFLAGS , LDFLAGS就可以了,请看相关的那篇精华贴.....

register4skyeye 发表于 2005-12-22 10:03:25

8.直接修改blob/src/blob的Makefile ,但运行make 后,此Makefile又回复原样,实在没有办法,不知道如何修改。

这样直接修改是没有用的,每次运行configure脚本之后会重新生成Makefile覆盖掉你的修改。所以要么修改configure脚本,要么在运行了configure之后修改Makefile。

gdczh 发表于 2005-12-26 09:49:33

问题已经解决了!谢谢各位。
我到http://www.lomx.net/cn/lom_arm9_tooltrain.htm
下载了一个编译器,重新编译就OK。
页: [1]
查看完整版本: 编译blob上的问题,请各位大虾指点