Reiserfs分区格式化工具的交叉编译

1.  目的和环境

arm7的板子上直接格式化ide硬盘上的分区为Reiserfs分区

编译工具为arm-elf-gcc

开发环境 redhat 9.0

2.  下载源码包 reiserfsprogs-3.6.20.tar.gz   官方网站http://namesys.com/

3.  具体过程

l         解压缩 tar zxf reiserfsprogs-3.6.20.tar.gz

        cd reiserfsprogs-3.6.20

l         CC=arm-elf-gcc ./configure --host=arm

l         make 出现错误 prints.c:14: printf.h: ????????? 找不到printf.h

uClibc-0.9.26的源代码中复制 printf.h reiserfsprogs-3.6.20/libreiserfs

l         make  出现错误reiserfs_warning中未定义的函数

        修改reiserfsprogs-3.6.20/libreiserfs/prints.c

void reiserfs_warning (FILE * fp, const char * fmt, ...)

{

    va_list args;

    va_start (args, fmt);

    vfprintf (fp, fmt, args);

    va_end (args);

}

l         继续make   出现一大堆重定义错误

        修改 reiserfsprogs-3.6.20/config.h

        注释掉 //#define HAVE_ASM_UNALIGNED_H 1

此时虽然还有错误但reiserfsprogs-3.6.20/utils/mkfs中已经产生了可执行文件mkfs.reiserfs,但是是不能用的,还有两个问题一个是链接参数没有加 –elf2flt,还有就是编译参数中有-fPIC –DPIC的定义

        修改 reiserfsprogs-3.6.20/configure

大概7754行修改为如下

else

if test "x" = "x$PRESET_CFLAGS"; then

        CFLAGS="-Wall -O2 -elf2flt"

fi

fi

 

#if test x$pic = xyes; then

#      CFLAGS="$CFLAGS -fPIC -DPIC"

#fi

l         重新来过

        make clean

CC=arm-elf-gcc ./configure --host=arm

        修改 reiserfsprogs-3.6.20/config.h   //#define HAVE_ASM_UNALIGNED_H 1

        make

l         搞定 reiserfsprogs-3.6.20/utils/mkfs/mkfs.reiserfs就是可执行文件了

 
ers/usb/ulpi/libusb_ulpi.o drivers/video/libvideo.o drivers/watchdog/libwatchdog.o fs/cbfs/libcbfs.o fs/cramfs/libcramfs.o fs/ext4/libext4fs.o fs/fat/libfat.o fs/fdos/libfdos.o fs/jffs2/libjffs2.o fs/libfs.o fs/reiserfs/libreiserfs.o fs/sandbox/libsandboxfs.o fs/ubifs/libubifs.o fs/yaffs2/libyaffs2.o fs/zfs/libzfs.o lib/libfdt/libfdt.o lib/libgeneric.o lib/lzma/liblzma.o lib/lzo/liblzo.o lib/nvram_mngr/libnvram_mngr.o lib/rsa/librsa.o lib/xz/libxz.o lib/zlib/libz.o net/libnet.o post/libpost.o test/libtest.o board/ingenic/isvp_t31/libisvp_t31.o --end-group -L /usr/lib/gcc-cross/mips-linux-gnu/5 -lgcc -Map u-boot.map -o u-boot mips-linux-gnu-ld.bfd: /usr/lib/gcc-cross/mips-linux-gnu/5/libgcc.a(_lshrdi3.o): compiled for a big endian system and target is little endian mips-linux-gnu-ld.bfd: /usr/lib/gcc-cross/mips-linux-gnu/5/libgcc.a(_lshrdi3.o): endianness incompatible with that of the selected emulation mips-linux-gnu-ld.bfd: 合并目标文件 /usr/lib/gcc-cross/mips-linux-gnu/5/libgcc.a(_lshrdi3.o) 的特定数据时失败 mips-linux-gnu-ld.bfd: /usr/lib/gcc-cross/mips-linux-gnu/5/libgcc.a(_ashldi3.o): compiled for a big endian system and target is little endian mips-linux-gnu-ld.bfd: /usr/lib/gcc-cross/mips-linux-gnu/5/libgcc.a(_ashldi3.o): endianness incompatible with that of the selected emulation mips-linux-gnu-ld.bfd: 合并目标文件 /usr/lib/gcc-cross/mips-linux-gnu/5/libgcc.a(_ashldi3.o) 的特定数据时失败 Makefile:653: recipe for target 'u-boot' failed make[2]: *** [u-boot] Error 1 make[2]: Leaving directory '/home/wuhsulei/share_smbd/Cworkspace/2D230/zeratul/os/uboot/u-boot' .boards.depend:534: recipe for target 'isvp_t31_sfcnor_ddr128M' failed make[1]: *** [isvp_t31_sfcnor_ddr128M] Error 2 make[1]: Leaving directory '/home/wuhsulei/share_smbd/Cworkspace/2D230/zeratul/os/uboot/u-boot' /home/wuhsulei/share_smbd/Cworkspace/2D230/CAMEOS #/home/wuhsulei/share_smbd/Cworkspace/2D230/CAMEOS/sdk/zeratul_sdk/build/pad_camera_u-boot.sh -i /home/wuhsulei/share_smbd/Cworkspace/2D230/CAMEOS/sdk/zeratul_sdk/os/uboot/u-boot/u-boot-with-spl.bin -o /home/wuhsulei/share_smbd/Cworkspace/2D230/CAMEOS/sdk/zeratul_sdk/os/uboot/bin/uboot.bin -b /home/wuhsulei/share_smbd/Cworkspace/2D230/CAMEOS/sdk/zeratul_sdk/os/uboot/bin/boot_SOC_T31Z_V2.bin /home/wuhsulei/share_smbd/Cworkspace/2D230/CAMEOS/sdk/zeratul_sdk/build/pad_camera_u-boot.sh -i /home/wuhsulei/share_smbd/Cworkspace/2D230/CAMEOS/sdk/zeratul_sdk/os/uboot/u-boot/u-boot-with-spl.bin -o /home/wuhsulei/share_smbd/Cworkspace/2D230/CAMEOS/sdk/zeratul_sdk/os/uboot/bin/uboot.bin -b /home/wuhsulei/share_smbd/Cworkspace/2D230/CAMEOS/sdk/zeratul_sdk/os/uboot/bin/240927-u-boot-with-spl.bin error: Can't find input file: /home/wuhsulei/share_smbd/Cworkspace/2D230/CAMEOS/sdk/zeratul_sdk/os/uboot/u-boot/u-boot-with-spl.bin /home/wuhsulei/share_smbd/Cworkspace/2D230/CAMEOS/product_configs/D230V1P20/product.mk:186: recipe for target 'uboot' failed make: *** [uboot] Error 1
最新发布
11-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值