defaultenv: dependencies fixes
When a build with a compressed default environment is done and then environment compression is disabled, barebox_default_env.h is not regenerated because its dependency (now barebox_default_env) is still up to date. This results in a corrupt default environment. This patch fixes this by adding a cmd_env_h and changing barebox_default_env.h to FORCE. As a side effect barebox_default_env.h is no longer generated in include/generated/ but in common/ as we have to add barebox_default_env.h to $(targets) (extra-y). Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
ca2520ed55
commit
68e3e14a64
|
@ -39,11 +39,11 @@ obj-$(CONFIG_PASSWORD) += password.o
|
|||
obj-$(CONFIG_MODULES) += module.o
|
||||
obj-$(CONFIG_FLEXIBLE_BOOTARGS) += bootargs.o
|
||||
extra-$(CONFIG_MODULES) += module.lds
|
||||
extra-y += barebox_default_env
|
||||
extra-y += barebox_default_env barebox_default_env.h
|
||||
|
||||
ifdef CONFIG_DEFAULT_ENVIRONMENT
|
||||
$(obj)/startup.o: include/generated/barebox_default_env.h
|
||||
$(obj)/env.o: include/generated/barebox_default_env.h
|
||||
$(obj)/startup.o: $(obj)/barebox_default_env.h
|
||||
$(obj)/env.o: $(obj)/barebox_default_env.h
|
||||
|
||||
ifeq ($(CONFIG_DEFAULT_ENVIRONMENT_GENERIC_NEW),y)
|
||||
DEFAULT_ENVIRONMENT_PATH = "defaultenv-2/base"
|
||||
|
@ -89,18 +89,21 @@ ifeq ($(CONFIG_DEFAULT_ENVIRONMENT_COMPRESSED_LZO),y)
|
|||
barebox_default_env_comp = .lzo
|
||||
endif
|
||||
|
||||
$(obj)/barebox_default_env.gz: $(obj)/barebox_default_env
|
||||
$(obj)/barebox_default_env.gz: $(obj)/barebox_default_env FORCE
|
||||
$(call if_changed,gzip)
|
||||
|
||||
$(obj)/barebox_default_env.bz2: $(obj)/barebox_default_env
|
||||
$(obj)/barebox_default_env.bz2: $(obj)/barebox_default_env FORCE
|
||||
$(call if_changed,bzip2)
|
||||
|
||||
$(obj)/barebox_default_env.lzo: $(obj)/barebox_default_env
|
||||
$(obj)/barebox_default_env.lzo: $(obj)/barebox_default_env FORCE
|
||||
$(call if_changed,lzo)
|
||||
|
||||
include/generated/barebox_default_env.h: $(obj)/barebox_default_env$(barebox_default_env_comp)
|
||||
$(Q)cat $< | (cd $(obj) && $(objtree)/scripts/bin2c default_environment) > $@
|
||||
$(Q)echo "const int default_environment_uncompress_size=`stat -c%s $(obj)/barebox_default_env`;" >> $@
|
||||
quiet_cmd_env_h = ENVH $@
|
||||
cmd_env_h = cat $< | (cd $(obj) && $(objtree)/scripts/bin2c default_environment) > $@; \
|
||||
echo "const int default_environment_uncompress_size=`stat -c%s $(obj)/barebox_default_env`;" >> $@
|
||||
|
||||
$(obj)/barebox_default_env.h: $(obj)/barebox_default_env$(barebox_default_env_comp) FORCE
|
||||
$(call if_changed,env_h)
|
||||
|
||||
# dependencies on generated files need to be listed explicitly
|
||||
$(obj)/version.o: include/generated/compile.h
|
||||
|
|
|
@ -39,7 +39,7 @@ extern initcall_t __barebox_initcalls_start[], __barebox_early_initcalls_end[],
|
|||
__barebox_initcalls_end[];
|
||||
|
||||
#ifdef CONFIG_DEFAULT_ENVIRONMENT
|
||||
#include <generated/barebox_default_env.h>
|
||||
#include "barebox_default_env.h"
|
||||
|
||||
#ifdef CONFIG_DEFAULT_ENVIRONMENT_COMPRESSED
|
||||
#include <uncompress.h>
|
||||
|
|
Loading…
Reference in New Issue