Skip to content

Commit e08b187

Browse files
ffainellitorvalds
authored andcommitted
initramfs: fix initramfs rebuilds w/ compression after disabling
This is a follow-up to commit 57ddfda ("initramfs: fix disabling of initramfs (and its compression)"). This particular commit fixed the use case where we build the kernel with an initramfs with no compression, and then we build the kernel with no initramfs. Now this still left us with the same case as described here: http://lkml.kernel.org/r/20170521033337.6197-1-f.fainelli@gmail.com not working with initramfs compression. This can be seen by the following steps/timestamps: https://www.spinics.net/lists/kernel/msg2598153.html .initramfs_data.cpio.gz.cmd is correct: cmd_usr/initramfs_data.cpio.gz := /bin/bash ./scripts/gen_initramfs_list.sh -o usr/initramfs_data.cpio.gz -u 1000 -g 1000 /home/fainelli/work/uclinux-rootfs/romfs /home/fainelli/work/uclinux-rootfs/misc/initramfs.dev and was generated the first time we did generate the gzip initramfs, so the command has not changed, nor its arguments, so we just don't call it, no initramfs cpio is re-generated as a consequence. The fix for this problem is just to properly keep track of the .initramfs_cpio_data.d file by suffixing it with the compression extension. This takes care of properly tracking dependencies such that the initramfs get (re)generated any time files are added/deleted etc. Link: http://lkml.kernel.org/r/20170930033936.6722-1-f.fainelli@gmail.com Fixes: db2aa7f ("initramfs: allow again choice of the embedded initramfs compression algorithm") Fixes: 9e3596b ("kbuild: initramfs cleanup, set target from Kconfig") Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Cc: "Francisco Blas Izquierdo Riera (klondike)" <klondike@xiscosoft.net> Cc: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent ab615a5 commit e08b187

1 file changed

Lines changed: 5 additions & 4 deletions

File tree

usr/Makefile

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ PHONY += klibcdirs
88

99
suffix_y = $(subst $\",,$(CONFIG_INITRAMFS_COMPRESSION))
1010
datafile_y = initramfs_data.cpio$(suffix_y)
11+
datafile_d_y = .$(datafile_y).d
1112
AFLAGS_initramfs_data.o += -DINITRAMFS_IMAGE="usr/$(datafile_y)"
1213

1314

@@ -30,12 +31,12 @@ ramfs-args := \
3031
$(if $(CONFIG_INITRAMFS_ROOT_UID), -u $(CONFIG_INITRAMFS_ROOT_UID)) \
3132
$(if $(CONFIG_INITRAMFS_ROOT_GID), -g $(CONFIG_INITRAMFS_ROOT_GID))
3233

33-
# .initramfs_data.cpio.d is used to identify all files included
34+
# $(datafile_d_y) is used to identify all files included
3435
# in initramfs and to detect if any files are added/removed.
3536
# Removed files are identified by directory timestamp being updated
3637
# The dependency list is generated by gen_initramfs.sh -l
37-
ifneq ($(wildcard $(obj)/.initramfs_data.cpio.d),)
38-
include $(obj)/.initramfs_data.cpio.d
38+
ifneq ($(wildcard $(obj)/$(datafile_d_y)),)
39+
include $(obj)/$(datafile_d_y)
3940
endif
4041

4142
quiet_cmd_initfs = GEN $@
@@ -53,5 +54,5 @@ $(deps_initramfs): klibcdirs
5354
# 3) If gen_init_cpio are newer than initramfs_data.cpio
5455
# 4) arguments to gen_initramfs.sh changes
5556
$(obj)/$(datafile_y): $(obj)/gen_init_cpio $(deps_initramfs) klibcdirs
56-
$(Q)$(initramfs) -l $(ramfs-input) > $(obj)/.initramfs_data.cpio.d
57+
$(Q)$(initramfs) -l $(ramfs-input) > $(obj)/$(datafile_d_y)
5758
$(call if_changed,initfs)

0 commit comments

Comments
 (0)