Re: [PATCH 11/12] initramfs: refactor the initramfs build rules

Sam Ravnborg
2020-01-03T19:52:10Z

Hi Mashahiro.

I just browsed this fine patchset and noticed...
>
> -#####
> -# Generate the initramfs cpio archive
> +ramfs-input := $(shell echo $(CONFIG_INITRAMFS_SOURCE))
> +cpio-data :=
> +
> +ifeq ($(words $(ramfs-input)),0)
> +
> +# If CONFIG_INITRAMFS_SOURCE is empty, generate a small initramfs with the
> +# default contents.
> +ramfs-input := $(srctree)/$(src)/default_cpio_list
> +
> +else ifeq ($(words $(ramfs-input)),1)
> +# If CONFIG_INITRAMFS_SOURCE specifies a single file, and it is suffixed with
> +# .cpio or .cpio.*, use it directly as an initramfs.
> +ifneq ($(filter %.cpio,$(ramfs-input)),)
> +cpio-data := $(ramfs-input)
> +endif

This part will now work if the file is named foo.cpio.bar.
$(findstring .cpio, should be used and not $(filter %.cpio
At least if the comment describes the intended behaviour.

> +
> +ifeq ($(words $(subst .cpio.,$(space),$(ramfs-input))),2)
> +cpio-data := $(ramfs-input)
> +# If the specified archive is suffixed with .cpio.* (i.e. already compressed),
> +# we do not double-compress it.
> +compress-y := shipped
> +endif
> +
> +endif

Sam