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

Masahiro Yamada
2020-01-04T03:37:50Z

Hi Sam,

On Sat, Jan 4, 2020 at 4:52 AM Sam Ravnborg <sam@ravnborg.org> wrote:
>
> 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.

The 'foo.cpio.bar' is taken care of
by ifeq ($(words $(subst .cpio.,$(space),$(ramfs-input))),2)

I admit the comment was confusing.

I will clarify the comments as follows:

# If CONFIG_INITRAMFS_SOURCE specifies a single file, and it is suffixed with
# .cpio, use it directly as an initramfs.
ifneq ($(filter %.cpio,$(ramfs-input)),)
cpio-data := $(ramfs-input)
endif

# If CONFIG_INITRAMFS_SOURCE specifies a single file, and it is suffixed with
# .cpio.*, use it directly as an initramfs, and avoid double compression.
ifeq ($(words $(subst .cpio.,$(space),$(ramfs-input))),2)
cpio-data := $(ramfs-input)
compress-y := shipped
endif

> > +
> > +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

--
Best Regards
Masahiro Yamada