tools/env: cross-compile fw_printenv without setting HOSTCC
fw_printenv is a program which mostly runs on the target Linux. Before switching to Kbuild, we needed to set HOSTCC at the command line like this: make HOSTCC=<your CC cross-compiler> env Going forward we can cross compile it by specifying CROSS_COMPILE: make CROSS_COMPILE=<your cross-compiler prefix> env This looks more natural. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Tested-by: Gerhard Sittig <gsi@denx.de>
This commit is contained in:
parent
9a368d0f58
commit
79fc0c5f49
4 changed files with 18 additions and 7 deletions
1
tools/.gitignore
vendored
1
tools/.gitignore
vendored
|
@ -16,7 +16,6 @@
|
||||||
/xway-swap-bytes
|
/xway-swap-bytes
|
||||||
/*.exe
|
/*.exe
|
||||||
/easylogo/easylogo
|
/easylogo/easylogo
|
||||||
/env/fw_printenv
|
|
||||||
/gdb/gdbcont
|
/gdb/gdbcont
|
||||||
/gdb/gdbsend
|
/gdb/gdbsend
|
||||||
/kernel-doc/docproc
|
/kernel-doc/docproc
|
||||||
|
|
2
tools/env/.gitignore
vendored
Normal file
2
tools/env/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
fw_printenv
|
||||||
|
fw_printenv_unstripped
|
17
tools/env/Makefile
vendored
17
tools/env/Makefile
vendored
|
@ -5,6 +5,11 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0+
|
# SPDX-License-Identifier: GPL-2.0+
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# fw_printenv is supposed to run on the target system, which means it should be
|
||||||
|
# built with cross tools. Although it may look weird, we only replace "HOSTCC"
|
||||||
|
# with "CC" here for the maximum code reuse of scripts/Makefile.host.
|
||||||
|
HOSTCC = $(CC)
|
||||||
|
|
||||||
# Compile for a hosted environment on the target
|
# Compile for a hosted environment on the target
|
||||||
HOST_EXTRACFLAGS = $(patsubst -I%,-idirafter%, $(UBOOTINCLUDE)) \
|
HOST_EXTRACFLAGS = $(patsubst -I%,-idirafter%, $(UBOOTINCLUDE)) \
|
||||||
-idirafter $(SRCTREE)/tools/env \
|
-idirafter $(SRCTREE)/tools/env \
|
||||||
|
@ -15,9 +20,15 @@ ifeq ($(MTD_VERSION),old)
|
||||||
HOST_EXTRACFLAGS += -DMTD_OLD
|
HOST_EXTRACFLAGS += -DMTD_OLD
|
||||||
endif
|
endif
|
||||||
|
|
||||||
hostprogs-y := fw_printenv
|
always := fw_printenv
|
||||||
always := $(hostprogs-y)
|
hostprogs-y := fw_printenv_unstripped
|
||||||
|
|
||||||
fw_printenv-objs := fw_env.o fw_env_main.o \
|
fw_printenv_unstripped-objs := fw_env.o fw_env_main.o \
|
||||||
crc32.o ctype.o linux_string.o \
|
crc32.o ctype.o linux_string.o \
|
||||||
env_attr.o env_flags.o
|
env_attr.o env_flags.o
|
||||||
|
|
||||||
|
quiet_cmd_strip = STRIP $@
|
||||||
|
cmd_strip = $(STRIP) -o $@ $<
|
||||||
|
|
||||||
|
$(obj)/fw_printenv: $(obj)/fw_printenv_unstripped FORCE
|
||||||
|
$(call if_changed,strip)
|
||||||
|
|
5
tools/env/README
vendored
5
tools/env/README
vendored
|
@ -2,11 +2,10 @@
|
||||||
This is a demo implementation of a Linux command line tool to access
|
This is a demo implementation of a Linux command line tool to access
|
||||||
the U-Boot's environment variables.
|
the U-Boot's environment variables.
|
||||||
|
|
||||||
In the current version, there is an issue in cross-compilation.
|
|
||||||
In order to cross-compile fw_printenv, run
|
In order to cross-compile fw_printenv, run
|
||||||
make HOSTCC=<your CC cross-compiler> env
|
make CROSS_COMPILE=<your cross-compiler prefix> env
|
||||||
in the root directory of the U-Boot distribution. For example,
|
in the root directory of the U-Boot distribution. For example,
|
||||||
make HOSTCC=arm-linux-gcc env
|
make CROSS_COMPILE=arm-linux- env
|
||||||
|
|
||||||
For the run-time utility configuration uncomment the line
|
For the run-time utility configuration uncomment the line
|
||||||
#define CONFIG_FILE "/etc/fw_env.config"
|
#define CONFIG_FILE "/etc/fw_env.config"
|
||||||
|
|
Loading…
Reference in a new issue