[Buildroot] cannot execute binary file
Ulf Samuelsson
ulf at atmel.com
Wed Sep 26 11:18:20 UTC 2007
tis 2007-09-25 klockan 13:03 -0700 skrev Leonid:
> Hi:
>
> I'm trying to build buildroot for at91rm9200df board, I'm using snapshot
> of yesterday, 9/24/2007, 6 p.m.
>
> I have already passed through several stages and it is building MTD
> utilities for target now. However for some reason after creating each
> MTD utility, it tries to run it (on the host) and naturally fails
> (jffs2dump in this example):
>
> [leonid at jaipur buildroot]$ make
>
> Checking build system dependencies:
> BUILDROOT_DL_DIR clean: Ok
> CC clean: Ok
> CXX clean: Ok
> CPP clean: Ok
> CFLAGS clean: Ok
> INCLUDES clean: Ok
> CXXFLAGS clean: Ok
> which installed: Ok
> sed works: Ok (/bin/sed)
> GNU make version '3.81': Ok
> C compiler '/usr/lib/ccache/gcc'
> C compiler version '4.1.2': Ok
> C++ compiler '/usr/lib/ccache/g++'
> C++ compiler version '4.1.2': Ok
> bison installed: Ok
> flex installed: Ok
> gettext installed: Ok
> makeinfo installed: Ok
> Build system dependencies: Ok
>
> rm -rf
> /home/leonid/LM150/software/linux/rootfs/buildroot/project_build_arm_sma
> ll//buildroot-config
> mkdir -p
> /home/leonid/LM150/software/linux/rootfs/buildroot/project_build_arm_sma
> ll/
> cp -dpRf package/config/buildroot-config
> /home/leonid/LM150/software/linux/rootfs/buildroot/project_build_arm_sma
> ll//buildroot-config
> /usr/bin/make -j2
> CC=/home/leonid/LM150/software/linux/rootfs/gcc-4.1.2-uclibc/usr/bin/arm
> -linux-uclibc-gcc
> CROSS_COMPILE="/home/leonid/LM150/software/linux/rootfs/gcc-4.1.2-uclibc
> /usr/bin/arm-linux-uclibc-" \
>
> CROSS="/home/leonid/LM150/software/linux/rootfs/gcc-4.1.2-uclibc/usr/bin
> /arm-linux-uclibc-"
> PREFIX="/home/leonid/LM150/software/linux/rootfs/buildroot/project_build
> _arm_small//root" \
> ARCH=arm \
> EXTRA_CFLAGS="-Os -pipe
> -I/home/leonid/LM150/software/linux/rootfs/gcc-4.1.2-uclibc/usr/include
> -I/home/leonid/LM150/software/linux/rootfs/gcc-4.1.2-uclibc/include" -C
> /home/leonid/LM150/software/linux/rootfs/buildroot/project_build_arm_sma
> ll//busybox-1.5.0 install
> make[1]: Entering directory
> `/home/leonid/LM150/software/linux/rootfs/buildroot/project_build_arm_sm
> all/busybox-1.5.0'
> ./_install/sbin/halt -> ../bin/busybox
> ./_install/sbin/poweroff -> ../bin/busybox
> ./_install/sbin/reboot -> ../bin/busybox
> ./_install/sbin/start-stop-daemon -> ../bin/busybox
> ./_install/usr/bin/mesg -> ../../bin/busybox
> make[1]: Leaving directory
> `/home/leonid/LM150/software/linux/rootfs/buildroot/project_build_arm_sm
> all/busybox-1.5.0'
> # Just in case
> chmod a+x
> /home/leonid/LM150/software/linux/rootfs/buildroot/project_build_arm_sma
> ll//root/usr/share/udhcpc/default.script
> mkdir -p
> /home/leonid/LM150/software/linux/rootfs/buildroot/project_build_arm_sma
> ll//root/usr/sbin
> cp -f
> /home/leonid/LM150/software/linux/rootfs/buildroot/build_arm_small/mtd_o
> rig/util/jffs2dump
> /home/leonid/LM150/software/linux/rootfs/buildroot/project_build_arm_sma
> ll//root/usr/sbin/jffs2dump
> /home/leonid/LM150/software/linux/rootfs/buildroot/project_build_arm_sma
> ll//root/usr/sbin/jffs2dump
> /home/leonid/LM150/software/linux/rootfs/buildroot/project_build_arm_sma
> ll//root/usr/sbin/jffs2dump:
> /home/leonid/LM150/software/linux/rootfs/buildroot/project_build_arm_sma
> ll//root/usr/sbin/jffs2dump: cannot execute binary file
> make: ***
> [/home/leonid/LM150/software/linux/rootfs/buildroot/project_build_arm_sm
> all//root/usr/sbin/jffs2dump] Error 126
>
> This is happening again and again for each utility. What is wrong?
>
Here are the rules governing this:
MTD_TARGETS_n :=
MTD_TARGETS_y :=
MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_ERASE) += flash_erase
MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_ERASEALL) += flash_eraseall
MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_INFO) += flash_info
MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_LOCK) += flash_lock
MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_UNLOCK) += flash_unlock
MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASHCP) += flashcp
MTD_TARGETS_$(BR2_PACKAGE_MTD_MKFSJFFS2) += mkfs.jffs2
MTD_TARGETS_$(BR2_PACKAGE_MTD_MKFSJFFS) += mkfs.jffs
MTD_TARGETS_$(BR2_PACKAGE_MTD_JFFS2DUMP) += jffs2dump
#MTD_TARGETS_$(BR2_PACKAGE_MTD_JFFS3DUMP) += jffs3dump
MTD_TARGETS_$(BR2_PACKAGE_MTD_SUMTOOL) += sumtool
MTD_TARGETS_$(BR2_PACKAGE_MTD_FTL_CHECK) += ftl_check
MTD_TARGETS_$(BR2_PACKAGE_MTD_FTL_FORMAT) += ftl_format
MTD_TARGETS_$(BR2_PACKAGE_MTD_NFTLDUMP) += nftldump
MTD_TARGETS_$(BR2_PACKAGE_MTD_NFTL_FORMAT) += nftl_format
MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDDUMP) += nanddump
MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDWRITE) += nandwrite
MTD_TARGETS_$(BR2_PACKAGE_MTD_MTD_DEBUG) += mtd_debug
MTD_TARGETS_$(BR2_PACKAGE_MTD_DOCFDISK) += docfdisk
MTD_TARGETS_$(BR2_PACKAGE_MTD_DOC_LOADBIOS) += doc_loadbios
MTD_BUILD_TARGETS := $(addprefix $(MTD_DIR)/, $(MTD_TARGETS_y))
$(MTD_BUILD_TARGETS): $(MTD_DIR)/.unpacked
mkdir -p $(TARGET_DIR)/usr/sbin
$(MAKE) CFLAGS="-I. -I./include -I$(LINUX_HEADERS_DIR)/include -I
$(STAGING_DIR)/usr/include $(TARGET_CFLAGS)" \
CROSS= CC=$(TARGET_CC) LINUXDIR=$(LINUX26_DIR) WITHOUT_XATTR=1 -C
$(MTD_DIR)
MTD_TARGETS := $(addprefix $(TARGET_DIR)/usr/sbin/, $(MTD_TARGETS_y))
$(MTD_TARGETS): $(TARGET_DIR)/usr/sbin/% : $(MTD_DIR)/%
cp -f $< $@
$(STRIP) $@
--------------
I am not sure what happens but this is what I think.
MTD_TARGETS is a list of "$(TARGET_DIR)/usr/sbin/"
$(TARGET_DIR)/usr/sbin/% where % is $(TARGET_DIR)/usr/sbin/ is then a
list of $(TARGET_DIR)/usr/sbin/
cp -f $< $@
> Thanks,
>
> Leonid.
> _______________________________________________
> buildroot mailing list
> buildroot at uclibc.org
> http://busybox.net/mailman/listinfo/buildroot
More information about the buildroot
mailing list