|
按照下面这个帖子里的说法编译uClinux-dist-20070130 在skyeye下运行
http://skyeye.wiki.sourceforge.net/uClinux#tocuClinux0
这个帖子里的步骤总结一下:
1、安装 arm-linux-tools-20061213.tar.gz 工具链;
2、解压缩 uClinux-dist-20070130.tar.gz ;
3、"make menuconfig", select GDB/Armulator 和 linux-2.6.x option.
4、然后
make CROSS_COMPILE=arm-elf- dep
make CROSS_COMPILE=arm-elf-
5、就可以运行了 "skyeye -e linux-2.6.x/linux" .
事实上这个做法是不行的:
1、尽管解压 arm-linux-tools-20061213.tar.gz 到了正确的位置,但是在 make 时提示gcc too old。
奇怪的是,既然制定了 CROSS_COMPILE=arm-elf-,为啥装的工具链不是 arm-elf-前缀的?
估计 arm-linux-tools-20061213.tar.gz 里面根本没有需要的 arm-elf-gcc,所以 make提示gcc 版本问题。
2、在 make menuconfig 时吧 uClinux 的版本换为 2.4.x,这次编译通过了,但是 skyeye 运行时提示找不到
romfs.img,
原因是 skyeye.conf 里有下面这句:
mem_bank: map=M, type=R, addr=0x01400000, size=0x00400000, file=./romfs.img
事实上 make 后根本没有生成这个文件。所以出现错误提示。
3、按照 make lib_only, make user_only, make 的顺序编译 (都指定 CROSS_COMPILE=arm-elf-)
这次前两个编译通过,make 却又报错,错误提示见后
这次解决不了了,奇怪的是前面直接 make dep 再 make 却又为什么能编译通过。
这次试了网上 N多个帖子的在 skyeye 下运行 uClinux 的方法,无一例外全部都失败了。即使
每次都用和这些帖子中完全相同版本的所有工具和源码。包括这一次来自 skyeye Wiki的。
难道真像某人所说是我用的 Redhat 9 的问题?
-------------------- make 的错误提示 --------------------
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/kernel/kernel.o uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/kernel/kernel.o
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/mm/mm.o uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/mm/mm.o
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/mach-atmel/atmel.o uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/mach-atmel/atmel.o
/usr/local/bin/arm-linux-ld.real: ERROR: kernel/kernel.o uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file kernel/kernel.o
/usr/local/bin/arm-linux-ld.real: ERROR: mmnommu/mmnommu.o uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file mmnommu/mmnommu.o
/usr/local/bin/arm-linux-ld.real: ERROR: fs/fs.o uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file fs/fs.o
/usr/local/bin/arm-linux-ld.real: ERROR: ipc/ipc.o uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file ipc/ipc.o
/usr/local/bin/arm-linux-ld.real: ERROR: drivers/char/char.o uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file drivers/char/char.o
/usr/local/bin/arm-linux-ld.real: ERROR: drivers/block/block.o uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file drivers/block/block.o
/usr/local/bin/arm-linux-ld.real: ERROR: drivers/net/net.o uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file drivers/net/net.o
/usr/local/bin/arm-linux-ld.real: ERROR: net/network.o uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file net/network.o
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(backtrace.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(backtrace.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(csumpartial.o)
uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(csumpartial.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(csumpartialcopy.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(csumpartialcopy.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(csumpartialcopyuser.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(csumpartialcopyuser.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(clearbit.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(clearbit.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(delay.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(delay.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(findbit.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(findbit.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(memchr.o) uses
hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(memchr.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(memcpy.o) uses
hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(memcpy.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(memset.o) uses
hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(memset.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(memzero.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(memzero.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(setbit.o) uses
hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(setbit.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(strncpy_from_user.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(strncpy_from_user.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(strnlen_user.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(strnlen_user.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(strchr.o) uses
hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(strchr.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(testclearbit.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(testclearbit.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(testsetbit.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(testsetbit.o)
/usr/local/bin/arm-linux-ld.real: ERROR: arch/armnommu/lib/lib.a(uaccess.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file arch/armnommu/lib/lib.a(uaccess.o)
/usr/local/bin/arm-linux-ld.real: ERROR: /home/limq/uClinux2/uClinux-dist/linux-2.4.x/lib/lib.a(errno.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file /home/limq/uClinux2/uClinux-dist/linux-2.4.x/lib/lib.a(string.o)
/usr/local/bin/arm-linux-ld.real: ERROR: /home/limq/uClinux2/uClinux-dist/linux-2.4.x/lib/lib.a(vsprintf.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file /home/limq/uClinux2/uClinux-dist/linux-2.4.x/lib/lib.a(vsprintf.o)
/usr/local/bin/arm-linux-ld.real: ERROR: /home/limq/uClinux2/uClinux-dist/linux-2.4.x/lib/lib.a(cmdline.o) uses hardware FP, whereas linux uses software FP
/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file /home/limq/uClinux2/uClinux-dist/linux-2.4.x/lib/lib.a(cmdline.o)
/usr/local/bin/arm-linux-ld.real: ERROR: /home/limq/uClinux2/uClinux-dist/linux-2.4.x/lib/lib.a(zlib_inflate.o) uses hardware FP, whereas linux uses software FP/usr/local/bin/arm-linux-ld.real: failed to merge target specific data of file /home/limq/uClinux2/uClinux-dist/linux-2.4.x/lib/lib.a(zlib_inflate.o)
make[1]: *** [linux] Error 1
make[1]: Leaving directory `/home/limq/uClinux2/uClinux-dist/linux-2.4.x'
make: *** [linux] Error 1 |
|