uClinux20041215 编译出错,请高手帮忙看看!
我的系统是RedHat9.0 Linux-2.4.20-8,在 /usr/local 下安装了arm-elf-tools-20030314.sh,
将uClinux-dist-20041215.tar.gz解压在/usr/local/uClinux-dist 下,
然后make xconfig, 选择vender 为samsung 的4510B,
kernel 为 2.4.X , lib 选择uclibc ,而不是uc-libc(选择后者错误是一样的);
make dep 通过, 但是 make 的时候出现了以下错误:
-------------------------------------------------------------------------
arm-elf-ld -p -X -T arch/armnommu/vmlinux.lds arch/armnommu/kernel/head-armv.o arch/armnommu/kernel/init_task.o init/main.o init/version.o init/do_mounts.o \
--start-group \
arch/armnommu/kernel/kernel.o arch/armnommu/mm/mm.o arch/armnommu/mach-snds100/snds100.o kernel/kernel.o mmnommu/mmnommu.o fs/fs.o ipc/ipc.o \
drivers/char/char.o drivers/serial/serial.o drivers/block/block.o drivers/misc/misc.o drivers/net/net.o drivers/media/media.o \
net/network.o \
arch/armnommu/lib/lib.a /usr/local/uClinux-dist/linux-2.4.x/lib/lib.a /usr/local/lib/gcc-lib/arm-elf/2.95.3/libgcc.a \
--end-group \
-o linux
drivers/block/block.o: In function `blk_dev_init':
/usr/local/uClinux-dist/linux-2.4.x/drivers/block/ll_rw_blk.c:1513: undefined reference to `romfs_data'
make: *** Error 1
make: Leaving directory `/usr/local/uClinux-dist/linux-2.4.x'
make: *** Error 1
-----------------------------------------------------------------
我在本论坛找到了这篇文章,
http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=50742&start=0&postdays=0&postorder=asc&highlight=
并依照其中的第8条,在../linux-2.4.x /arch/armnommu/vmlinux-armv.lds.in
中添加了
romfs_data = .;
romfs.o
romfs_data_end = .;
<<<<说明: 原文中要求注意句前句后的缩进,我不懂,所以只是与前一行对齐了>>>>>
然后编译的时候出现了这样的错误:
----------------------------------------------------------------------
arm-elf-ld -p -X -T arch/armnommu/vmlinux.lds arch/armnommu/kernel/head-armv.o arch/armnommu/kernel/init_task.o init/main.o in it/version.o init/do_mounts.o \
--start-group \
arch/armnommu/kernel/kernel.o arch/armnommu/mm/mm.o arch/armnommu/mach-snds100/snds100.o kernel/kernel.o mmnommu/mmnom mu.o fs/fs.o ipc/ipc.o \
drivers/char/char.o drivers/serial/serial.o drivers/block/block.o drivers/misc/misc.o drivers/net/net.o drivers/media /media.o \
net/network.o \
arch/armnommu/lib/lib.a /usr/local/uClinux-dist/linux-2.4.x/lib/lib.a /usr/local/lib/gcc-lib/arm-elf/2.95.3/libgcc.a \
--end-group \
-o linux
/usr/local/bin/arm-elf-ld.real: cannot open romfs.o: ?????????
make: *** Error 1
make: Leaving directory `/usr/local/uClinux-dist/linux-2.4.x
-------------------------------------------------------------------------
请高手指点指点 ,看看怎么回事?如何修改啊? 在menuconfig的时候没有选择romfs文件系统么?或者和rom相关的选项 在menuconfig中没有关于romfs或者rom的选项,
不过我重新下载了uClinux-dist-20030305.tar.gz,编译通过了. uclinux for s3c4510b很奇怪,这个问题很明显,却没有人改。哎,每个版本都有这个问题。看来,我需要提供一个patch了。 S3C4510B即将停产, 说是7月后不接受定单, 改不改意义不大了.
这是由于uclinux找不到romfs.o。
这是由于uclinux找不到romfs.o。如果用make dep; make 的话。就会这样。我的方法是把/vendor/Samsung/44b0中的Makefile中的有关linux的语句先注译掉,然后用make lib_only; make user_only; make romfs; make image; make 把他先编译过去,而后在把原先注意的句字,在加上再用make 一下,一般就可以了,我的44b0就是这样弄的,虽然很麻烦但是有用。
页:
[1]