Message ID | 20140710200054.GA29977@waldemar-brodkorb.de |
---|---|
State | Superseded |
Headers | show |
Waldemar, All, On 2014-07-10 22:00 +0200, Waldemar Brodkorb spake thusly: > For example the upcoming qemu-xtensa patch is using this feature, > where the target is called "zImage", but the resulting kernel name > is "Image.elf". > > --- > Changes v2 -> v3: > - no change > Changes v1 -> v2: > - add comment about default value (suggested by Arnout) > - reorder default value for LINUX_TARGET_NAME (suggested by Arnout) > > Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> > --- > linux/Config.in | 7 +++++++ > linux/linux.mk | 10 +++++++--- > 2 files changed, 14 insertions(+), 3 deletions(-) > > diff --git a/linux/Config.in b/linux/Config.in > index 0a13b13..1c316ae 100644 > --- a/linux/Config.in > +++ b/linux/Config.in > @@ -244,6 +244,13 @@ config BR2_LINUX_KERNEL_IMAGE_TARGET_NAME > Specify the kernel make target to build the kernel that you > need. > > +config BR2_LINUX_KERNEL_IMAGE_NAME > + string "Kernel image name" > + depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM > + help > + Specify the kernel filename. Defaults to BR2_LINUX_KERNEL_TARGET_NAME > + if not set. I would rephrase this to: The filename of the kernel image, if it is different from the make target (above). Only Xtensa uses a filename different from the make target. If unsure, leave it empty. > config BR2_LINUX_KERNEL_UIMAGE_LOADADDR > string "load address (for 3.7+ multi-platform image)" > depends on BR2_arm || BR2_armeb > diff --git a/linux/linux.mk b/linux/linux.mk > index bd3f2ac..1ba3953 100644 > --- a/linux/linux.mk > +++ b/linux/linux.mk > @@ -80,7 +80,8 @@ endif > KERNEL_DTBS = $(addsuffix .dtb,$(KERNEL_DTS_NAME)) > > ifeq ($(BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM),y) > -LINUX_IMAGE_NAME = $(call qstrip,$(BR2_LINUX_KERNEL_IMAGE_TARGET_NAME)) > +LINUX_IMAGE_NAME = $(call qstrip,$(BR2_LINUX_KERNEL_IMAGE_NAME)) > +LINUX_TARGET_NAME = $(call qstrip,$(BR2_LINUX_KERNEL_IMAGE_TARGET_NAME)) > else > ifeq ($(BR2_LINUX_KERNEL_UIMAGE),y) > LINUX_IMAGE_NAME = uImage > @@ -106,6 +107,9 @@ else ifeq ($(BR2_LINUX_KERNEL_VMLINUZ),y) > LINUX_IMAGE_NAME = vmlinuz > endif > endif > +ifeq ($(LINUX_TARGET_NAME),) > +LINUX_TARGET_NAME = $(LINUX_IMAGE_NAME) > +endif I'm confused. Above, you state that if BR2_LINUX_KERNEL_IMAGE_NAME is empty, it defaults to BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM. But here, you are doing exactly the opposite, that is set LINUX_TARGET_NAME (derived from BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM) with the value of LINUX_IMAGE_NAME, which is derived from the new option you added above, BR2_LINUX_KERNEL_IMAGE_NAME. Should that not be: ifeq ($(LINUX_IMAGE_NAME),) LINUX_IMAGE_NAME = $(LINUX_TARGET_NAME) endif But I may have missed something... ;-) Regards, Yann E. MORIN. > LINUX_KERNEL_UIMAGE_LOADADDR=$(call qstrip,$(BR2_LINUX_KERNEL_UIMAGE_LOADADDR)) > ifneq ($(LINUX_KERNEL_UIMAGE_LOADADDR),) > @@ -259,7 +263,7 @@ endif > define LINUX_BUILD_CMDS > $(if $(BR2_LINUX_KERNEL_USE_CUSTOM_DTS), > cp $(BR2_LINUX_KERNEL_CUSTOM_DTS_PATH) $(KERNEL_ARCH_PATH)/boot/dts/) > - $(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_IMAGE_NAME) > + $(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_TARGET_NAME) > @if grep -q "CONFIG_MODULES=y" $(@D)/.config; then \ > $(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) modules ; \ > fi > @@ -332,7 +336,7 @@ endif > $(LINUX_DIR)/.stamp_initramfs_rebuilt: $(LINUX_DIR)/.stamp_target_installed $(LINUX_DIR)/.stamp_images_installed $(BINARIES_DIR)/rootfs.cpio > @$(call MESSAGE,"Rebuilding kernel with initramfs") > # Build the kernel. > - $(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_IMAGE_NAME) > + $(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_TARGET_NAME) > $(LINUX_APPEND_DTB) > # Copy the kernel image to its final destination > cp $(LINUX_IMAGE_PATH) $(BINARIES_DIR) > -- > 1.7.10.4 > > _______________________________________________ > buildroot mailing list > buildroot@busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot
Dear Waldemar Brodkorb, On Thu, 10 Jul 2014 22:00:54 +0200, Waldemar Brodkorb wrote: > For example the upcoming qemu-xtensa patch is using this feature, > where the target is called "zImage", but the resulting kernel name > is "Image.elf". Could you improve a bit the title of your commits? The title should always be: <area>: <short description> Where <area> is generally the name of the package being affected. In this case, it should be: linux: add option to explicitly specify the kernel image name For your qemu-system-xtensa defconfig, it should be something like: configs: add new configuration for qemu-system-xtensa Thanks, Thomas
Hi Yann, Yann E. MORIN wrote, > Waldemar, All, > > On 2014-07-10 22:00 +0200, Waldemar Brodkorb spake thusly: > > For example the upcoming qemu-xtensa patch is using this feature, > > where the target is called "zImage", but the resulting kernel name > > is "Image.elf". > > > > --- > > Changes v2 -> v3: > > - no change > > Changes v1 -> v2: > > - add comment about default value (suggested by Arnout) > > - reorder default value for LINUX_TARGET_NAME (suggested by Arnout) > > > > Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> > > --- > > linux/Config.in | 7 +++++++ > > linux/linux.mk | 10 +++++++--- > > 2 files changed, 14 insertions(+), 3 deletions(-) > > > > diff --git a/linux/Config.in b/linux/Config.in > > index 0a13b13..1c316ae 100644 > > --- a/linux/Config.in > > +++ b/linux/Config.in > > @@ -244,6 +244,13 @@ config BR2_LINUX_KERNEL_IMAGE_TARGET_NAME > > Specify the kernel make target to build the kernel that you > > need. > > > > +config BR2_LINUX_KERNEL_IMAGE_NAME > > + string "Kernel image name" > > + depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM > > + help > > + Specify the kernel filename. Defaults to BR2_LINUX_KERNEL_TARGET_NAME > > + if not set. > > I would rephrase this to: > > The filename of the kernel image, if it is different from the > make target (above). Only Xtensa uses a filename different from > the make target. > > If unsure, leave it empty. > > > config BR2_LINUX_KERNEL_UIMAGE_LOADADDR > > string "load address (for 3.7+ multi-platform image)" > > depends on BR2_arm || BR2_armeb > > diff --git a/linux/linux.mk b/linux/linux.mk > > index bd3f2ac..1ba3953 100644 > > --- a/linux/linux.mk > > +++ b/linux/linux.mk > > @@ -80,7 +80,8 @@ endif > > KERNEL_DTBS = $(addsuffix .dtb,$(KERNEL_DTS_NAME)) > > > > ifeq ($(BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM),y) > > -LINUX_IMAGE_NAME = $(call qstrip,$(BR2_LINUX_KERNEL_IMAGE_TARGET_NAME)) > > +LINUX_IMAGE_NAME = $(call qstrip,$(BR2_LINUX_KERNEL_IMAGE_NAME)) > > +LINUX_TARGET_NAME = $(call qstrip,$(BR2_LINUX_KERNEL_IMAGE_TARGET_NAME)) > > else > > ifeq ($(BR2_LINUX_KERNEL_UIMAGE),y) > > LINUX_IMAGE_NAME = uImage > > @@ -106,6 +107,9 @@ else ifeq ($(BR2_LINUX_KERNEL_VMLINUZ),y) > > LINUX_IMAGE_NAME = vmlinuz > > endif > > endif > > +ifeq ($(LINUX_TARGET_NAME),) > > +LINUX_TARGET_NAME = $(LINUX_IMAGE_NAME) > > +endif > > I'm confused. Above, you state that if BR2_LINUX_KERNEL_IMAGE_NAME is > empty, it defaults to BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM. > > But here, you are doing exactly the opposite, that is set > LINUX_TARGET_NAME (derived from BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM) > with the value of LINUX_IMAGE_NAME, which is derived from the new option > you added above, BR2_LINUX_KERNEL_IMAGE_NAME. > > Should that not be: > > ifeq ($(LINUX_IMAGE_NAME),) > LINUX_IMAGE_NAME = $(LINUX_TARGET_NAME) > endif > > But I may have missed something... ;-) I'm confused too now ;) Indeed I have put in Arnout suggestion for my first patch version without modifying the help text and only done runtime testing without actually thinking if this is the correct thing. So the new variable BR2_LINUX_KERNEL_IMAGE_NAME should be default LINUX_TARGET_NAME, if not set. best regards Waldemar
diff --git a/linux/Config.in b/linux/Config.in index 0a13b13..1c316ae 100644 --- a/linux/Config.in +++ b/linux/Config.in @@ -244,6 +244,13 @@ config BR2_LINUX_KERNEL_IMAGE_TARGET_NAME Specify the kernel make target to build the kernel that you need. +config BR2_LINUX_KERNEL_IMAGE_NAME + string "Kernel image name" + depends on BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM + help + Specify the kernel filename. Defaults to BR2_LINUX_KERNEL_TARGET_NAME + if not set. + config BR2_LINUX_KERNEL_UIMAGE_LOADADDR string "load address (for 3.7+ multi-platform image)" depends on BR2_arm || BR2_armeb diff --git a/linux/linux.mk b/linux/linux.mk index bd3f2ac..1ba3953 100644 --- a/linux/linux.mk +++ b/linux/linux.mk @@ -80,7 +80,8 @@ endif KERNEL_DTBS = $(addsuffix .dtb,$(KERNEL_DTS_NAME)) ifeq ($(BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM),y) -LINUX_IMAGE_NAME = $(call qstrip,$(BR2_LINUX_KERNEL_IMAGE_TARGET_NAME)) +LINUX_IMAGE_NAME = $(call qstrip,$(BR2_LINUX_KERNEL_IMAGE_NAME)) +LINUX_TARGET_NAME = $(call qstrip,$(BR2_LINUX_KERNEL_IMAGE_TARGET_NAME)) else ifeq ($(BR2_LINUX_KERNEL_UIMAGE),y) LINUX_IMAGE_NAME = uImage @@ -106,6 +107,9 @@ else ifeq ($(BR2_LINUX_KERNEL_VMLINUZ),y) LINUX_IMAGE_NAME = vmlinuz endif endif +ifeq ($(LINUX_TARGET_NAME),) +LINUX_TARGET_NAME = $(LINUX_IMAGE_NAME) +endif LINUX_KERNEL_UIMAGE_LOADADDR=$(call qstrip,$(BR2_LINUX_KERNEL_UIMAGE_LOADADDR)) ifneq ($(LINUX_KERNEL_UIMAGE_LOADADDR),) @@ -259,7 +263,7 @@ endif define LINUX_BUILD_CMDS $(if $(BR2_LINUX_KERNEL_USE_CUSTOM_DTS), cp $(BR2_LINUX_KERNEL_CUSTOM_DTS_PATH) $(KERNEL_ARCH_PATH)/boot/dts/) - $(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_IMAGE_NAME) + $(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_TARGET_NAME) @if grep -q "CONFIG_MODULES=y" $(@D)/.config; then \ $(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) modules ; \ fi @@ -332,7 +336,7 @@ endif $(LINUX_DIR)/.stamp_initramfs_rebuilt: $(LINUX_DIR)/.stamp_target_installed $(LINUX_DIR)/.stamp_images_installed $(BINARIES_DIR)/rootfs.cpio @$(call MESSAGE,"Rebuilding kernel with initramfs") # Build the kernel. - $(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_IMAGE_NAME) + $(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_TARGET_NAME) $(LINUX_APPEND_DTB) # Copy the kernel image to its final destination cp $(LINUX_IMAGE_PATH) $(BINARIES_DIR)
For example the upcoming qemu-xtensa patch is using this feature, where the target is called "zImage", but the resulting kernel name is "Image.elf". --- Changes v2 -> v3: - no change Changes v1 -> v2: - add comment about default value (suggested by Arnout) - reorder default value for LINUX_TARGET_NAME (suggested by Arnout) Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> --- linux/Config.in | 7 +++++++ linux/linux.mk | 10 +++++++--- 2 files changed, 14 insertions(+), 3 deletions(-)