[Buildroot] [PATCH 3/9 v2] linux: meddle not in the affairs of filesystems, for you are tasty with bacon

Romain Naour romain.naour at gmail.com
Mon Mar 28 17:47:24 UTC 2016


Yann, All,

Le 28/03/2016 19:36, Romain Naour a écrit :
> Hi Yann, All,
> 
> Le 11/03/2016 19:41, Yann E. MORIN a écrit :
>> Currently, the rule to rebuild the Linux kernel with an initramfs
>> directly depends on the filesystem image filename.
>>
>> This is inherently "bad" from a purity point of view. linux.mk should
>> not have to delve into the fs internals.
>>
>> Rather, make it directly depend on the "frontal" rule that generates the
>> cpio image.
>>
>> Drop the comment for linux-rebuild-with-initramfs, it was misleading
>> (talking about generating "the initramfs list of files", which is not
>> what was done, since we use a cpio as source of initramfs, not a list of
>> files).
>>
>> Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
>> Cc: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
>> Cc: Arnout Vandecappelle <arnout at mind.be>
>>
>> ---
>> Changes v1 -> v2:
>>   - drop intermediate, unneeded stamp-file
>>   - drop misleading comment
>>
>> ---
>> This, too, will be useful for the initramfs patch coming next.
>> ---
>>  linux/linux.mk | 16 ++++++----------
>>  1 file changed, 6 insertions(+), 10 deletions(-)
>>
>> diff --git a/linux/linux.mk b/linux/linux.mk
>> index ea90918..c0d760a 100644
>> --- a/linux/linux.mk
>> +++ b/linux/linux.mk
>> @@ -438,11 +438,12 @@ endif # BR_BUILDING
>>  $(eval $(kconfig-package))
>>  
>>  # Support for rebuilding the kernel after the cpio archive has
>> -# been generated in $(BINARIES_DIR)/rootfs.cpio.
>> -$(LINUX_DIR)/.stamp_initramfs_rebuilt: $(LINUX_DIR)/.stamp_target_installed
>> -$(LINUX_DIR)/.stamp_initramfs_rebuilt: $(LINUX_DIR)/.stamp_images_installed
>> -$(LINUX_DIR)/.stamp_initramfs_rebuilt: $(BINARIES_DIR)/rootfs.cpio
>> -$(LINUX_DIR)/.stamp_initramfs_rebuilt:
>> +# been generated.
>> +.PHONY: linux-rebuild-with-initramfs
>> +linux-rebuild-with-initramfs: $(LINUX_DIR)/.stamp_target_installed
>> +linux-rebuild-with-initramfs: $(LINUX_DIR)/.stamp_images_installed
>> +linux-rebuild-with-initramfs: rootfs-cpio
>> +linux-rebuild-with-initramfs:
>>  	@$(call MESSAGE,"Rebuilding kernel with initramfs")
>>  	# Build the kernel.
>>  	$(LINUX_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_TARGET_NAME)
The issue can be fixed by using LINUX_DIR instead of @D.   ^^

Best regards,
Romain

>> @@ -451,8 +452,3 @@ $(LINUX_DIR)/.stamp_initramfs_rebuilt:
>>  	cp $(LINUX_IMAGE_PATH) $(BINARIES_DIR)
>>  	# If there is a .ub file copy it to the final destination
>>  	test ! -f $(LINUX_IMAGE_PATH).ub || cp $(LINUX_IMAGE_PATH).ub $(BINARIES_DIR)
>> -	$(Q)touch $@
> 
> IIUC, the stamp file can be removed since the target is now PHONY, right ?
> 
> But latter in the patch 4/9 in the comment there is a reference to this file:
> # Note: ordering of the dependencies is not guaranteed here, but in
> # linux/linux.mk, via the .stamp_initramfs_rebuilt stamp file, which depends
> # on the rootfs-cpio filesystem rule.
> 
>> -
>> -# The initramfs building code must make sure this target gets called
>> -# after it generated the initramfs list of files.
>> -linux-rebuild-with-initramfs: $(LINUX_DIR)/.stamp_initramfs_rebuilt
>>
> 
> Something is wrong...
> With this patch applied, I have the following error when rebuilding the kernel
> with initramfs:
> 
> make[2]: *** No rule to make target 'bzImage'. Arrêt.
> linux/linux.mk:447: recipe for target 'linux-rebuild-with-initramfs' failed
> 
> Best regards,
> Romain
> 




More information about the buildroot mailing list