LD2000 发表于 2004-12-24 01:41:06

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
-------------------------------------------------------------------------

请高手指点指点 ,看看怎么回事?如何修改啊?

ksh 发表于 2004-12-24 10:22:18

在menuconfig的时候没有选择romfs文件系统么?或者和rom相关的选项

LD2000 发表于 2004-12-24 17:47:13

在menuconfig中没有关于romfs或者rom的选项,
不过我重新下载了uClinux-dist-20030305.tar.gz,编译通过了.

walimis 发表于 2004-12-24 18:10:44

uclinux for s3c4510b很奇怪,这个问题很明显,却没有人改。哎,每个版本都有这个问题。看来,我需要提供一个patch了。

lu0 发表于 2005-1-9 00:11:51

S3C4510B即将停产, 说是7月后不接受定单, 改不改意义不大了.

001ye 发表于 2005-1-10 12:00:43

这是由于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]
查看完整版本: uClinux20041215 编译出错,请高手帮忙看看!