aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/5703-kbuild-create-built-in.o-automatically-if-parent-dir.patch
diff options
context:
space:
mode:
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.patch91
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
+