diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/5703-kbuild-create-built-in.o-automatically-if-parent-dir.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/5703-kbuild-create-built-in.o-automatically-if-parent-dir.patch | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/5703-kbuild-create-built-in.o-automatically-if-parent-dir.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/5703-kbuild-create-built-in.o-automatically-if-parent-dir.patch new file mode 100644 index 00000000..5e3b33e2 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/5703-kbuild-create-built-in.o-automatically-if-parent-dir.patch @@ -0,0 +1,91 @@ +From 17664764f28baa4968970151f11e358b1a5be05a Mon Sep 17 00:00:00 2001 +From: Masahiro Yamada <yamada.masahiro@socionext.com> +Date: Wed, 8 Nov 2017 01:31:46 +0900 +Subject: [PATCH 5703/5725] kbuild: create built-in.o automatically if parent + directory wants it + +"obj-y += foo/" syntax requires Kbuild to visit the "foo" subdirectory +and link built-in.o from that directory. This means foo/Makefile is +responsible for creating built-in.o even if there is no object to +link (in this case, built-in.o is an empty archive). + +We have had several fixups like commit 4b024242e8a4 ("kbuild: Fix +linking error built-in.o no such file or directory"), then ended up +with a complex condition as follows: + + ifneq ($(strip $(obj-y) $(obj-m) $(obj-) $(subdir-m) $(lib-target)),) + builtin-target := $(obj)/built-in.o + endif + +We still have more cases not covered by the above, so we need to add + obj- := dummy.o +in several places just for creating empty built-in.o. + +A key point is, the parent Makefile knows whether built-in.o is needed +or not. If a subdirectory needs to create built-in.o, its parent can +tell the fact when descending. + +If non-empty $(need-builtin) flag is passed from the parent, built-in.o +should be created. $(obj-y) should be still checked to support the +single target "%/". All of ugly tricks will go away. + +Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> +Reviewed-by: Sam Ravnborg <sam@ravnborg.org> +--- + Makefile | 2 +- + drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 +++ + scripts/Makefile.build | 4 ++-- + 3 files changed, 6 insertions(+), 3 deletions(-) + +diff --git a/Makefile b/Makefile +index e91a096..2dc724e 100644 +--- a/Makefile ++++ b/Makefile +@@ -1036,7 +1036,7 @@ $(sort $(vmlinux-deps)): $(vmlinux-dirs) ; + + PHONY += $(vmlinux-dirs) + $(vmlinux-dirs): prepare scripts +- $(Q)$(MAKE) $(build)=$@ ++ $(Q)$(MAKE) $(build)=$@ need-builtin=1 + + define filechk_kernel.release + echo "$(KERNELVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion $(srctree))" +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +index 6260307..bf7fa00 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +@@ -1394,6 +1394,9 @@ static int amdgpu_device_parse_gpu_info_fw(struct amdgpu_device *adev) + } + + snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_gpu_info.bin", chip_name); ++ ++ printk(">>Ravi: fw_name: %s adev->dev: %d adev->firmware.gpuinfo_fw: %d\n", fw_name, adev->dev, amdgpu_device_parse_gpu_info_fw); ++ + err = request_firmware(&adev->firmware.gpu_info_fw, fw_name, adev->dev); + if (err) { + dev_err(adev->dev, +diff --git a/scripts/Makefile.build b/scripts/Makefile.build +index 7143da0..08de8ba 100644 +--- a/scripts/Makefile.build ++++ b/scripts/Makefile.build +@@ -85,7 +85,7 @@ lib-target := $(obj)/lib.a + obj-y += $(obj)/lib-ksyms.o + endif + +-ifneq ($(strip $(obj-y) $(obj-m) $(obj-) $(subdir-m) $(lib-target)),) ++ifneq ($(strip $(obj-y) $(need-builtin)),) + builtin-target := $(obj)/built-in.o + endif + +@@ -584,7 +584,7 @@ targets += $(multi-used-y) $(multi-used-m) + + PHONY += $(subdir-ym) + $(subdir-ym): +- $(Q)$(MAKE) $(build)=$@ ++ $(Q)$(MAKE) $(build)=$@ need-builtin=$(if $(findstring $@,$(subdir-obj-y)),1) + + # Add FORCE to the prequisites of a target to force it to be always rebuilt. + # --------------------------------------------------------------------------- +-- +2.7.4 + |