All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)
@ 2019-08-25 17:28 ` Masahiro Yamada
  0 siblings, 0 replies; 15+ messages in thread
From: Masahiro Yamada @ 2019-08-25 17:28 UTC (permalink / raw)
  To: linux-kbuild
  Cc: Masahiro Yamada, Andy Lutomirski, Borislav Petkov,
	H. Peter Anvin, Ingo Molnar, James Morse, Julien Thierry,
	Marc Zyngier, Michal Marek, Russell King, Suzuki K Poulose,
	Thomas Gleixner, kvmarm, linux-arm-kernel, linux-kernel, x86

Kbuild provides per-file compiler flag addition/removal:

  CFLAGS_<basetarget>.o
  CFLAGS_REMOVE_<basetarget>.o
  AFLAGS_<basetarget>.o
  AFLAGS_REMOVE_<basetarget>.o
  CPPFLAGS_<basetarget>
  HOSTCFLAGS_<basetarget>.o
  HOSTCXXFLAGS_<basetarget>.o

The <basetarget> is the filename of the target without its suffix.

This syntax comes into a trouble when two files with the same name
appear in one Makefile, for example:

  obj-y += foo.o
  obj-y += dir/foo.o
  CFLAGS_foo.o := <some-flags>

Here, the <some-flags> applies to both foo.o and dir/foo.o

The real world problem is:

  scripts/kconfig/util.c
  scripts/kconfig/lxdialog/util.c

Both files are compiled into scripts/kconfig/mconf, but only the
latter should be given with additional flags for ncurses.

It is more sensible to use the relative path to the Makefile, like this:

  obj-y += foo.o
  CFLAGS_foo.o := <some-flags>
  obj-y += dir/foo.o
  CFLAGS_dir/foo.o := <other-flags>

The $* variable is replaced with the stem ('%') part in a pattern rule.
In other words, this only works for pattern rules.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

 arch/arm/kvm/Makefile        |  5 +++--
 arch/x86/entry/vdso/Makefile |  3 ++-
 scripts/Makefile.host        | 30 +++++++++++++++---------------
 scripts/Makefile.lib         | 10 +++++-----
 scripts/kconfig/Makefile     |  8 ++++----
 5 files changed, 29 insertions(+), 27 deletions(-)

diff --git a/arch/arm/kvm/Makefile b/arch/arm/kvm/Makefile
index 531e59f5be9c..b76b75bd9e00 100644
--- a/arch/arm/kvm/Makefile
+++ b/arch/arm/kvm/Makefile
@@ -8,13 +8,14 @@ ifeq ($(plus_virt),+virt)
 	plus_virt_def := -DREQUIRES_VIRT=1
 endif
 
+KVM := ../../../virt/kvm
+
 ccflags-y += -I $(srctree)/$(src) -I $(srctree)/virt/kvm/arm/vgic
-CFLAGS_arm.o := $(plus_virt_def)
+CFLAGS_$(KVM)/arm/arm.o := $(plus_virt_def)
 
 AFLAGS_init.o := -Wa,-march=armv7-a$(plus_virt)
 AFLAGS_interrupts.o := -Wa,-march=armv7-a$(plus_virt)
 
-KVM := ../../../virt/kvm
 kvm-arm-y = $(KVM)/kvm_main.o $(KVM)/coalesced_mmio.o $(KVM)/eventfd.o $(KVM)/vfio.o
 
 obj-$(CONFIG_KVM_ARM_HOST) += hyp/
diff --git a/arch/x86/entry/vdso/Makefile b/arch/x86/entry/vdso/Makefile
index 8df549138193..0f2154106d01 100644
--- a/arch/x86/entry/vdso/Makefile
+++ b/arch/x86/entry/vdso/Makefile
@@ -89,6 +89,7 @@ $(vobjs): KBUILD_CFLAGS := $(filter-out $(GCC_PLUGINS_CFLAGS) $(RETPOLINE_CFLAGS
 #
 CFLAGS_REMOVE_vdso-note.o = -pg
 CFLAGS_REMOVE_vclock_gettime.o = -pg
+CFLAGS_REMOVE_vdso32/vclock_gettime.o = -pg
 CFLAGS_REMOVE_vgetcpu.o = -pg
 CFLAGS_REMOVE_vvar.o = -pg
 
@@ -128,7 +129,7 @@ $(obj)/%.so: $(obj)/%.so.dbg FORCE
 $(obj)/vdsox32.so.dbg: $(obj)/vdsox32.lds $(vobjx32s) FORCE
 	$(call if_changed,vdso_and_check)
 
-CPPFLAGS_vdso32.lds = $(CPPFLAGS_vdso.lds)
+CPPFLAGS_vdso32/vdso32.lds = $(CPPFLAGS_vdso.lds)
 VDSO_LDFLAGS_vdso32.lds = -m elf_i386 -soname linux-gate.so.1
 
 targets += vdso32/vdso32.lds
diff --git a/scripts/Makefile.host b/scripts/Makefile.host
index b402c619147d..cd2b98e2f727 100644
--- a/scripts/Makefile.host
+++ b/scripts/Makefile.host
@@ -80,9 +80,9 @@ host-cxxshobjs	:= $(addprefix $(obj)/,$(host-cxxshobjs))
 # Handle options to gcc. Support building with separate output directory
 
 _hostc_flags   = $(KBUILD_HOSTCFLAGS)   $(HOST_EXTRACFLAGS)   \
-                 $(HOSTCFLAGS_$(basetarget).o)
+                 $(HOSTCFLAGS_$*.o)
 _hostcxx_flags = $(KBUILD_HOSTCXXFLAGS) $(HOST_EXTRACXXFLAGS) \
-                 $(HOSTCXXFLAGS_$(basetarget).o)
+                 $(HOSTCXXFLAGS_$*.o)
 
 # $(objtree)/$(obj) for including generated headers from checkin source files
 ifeq ($(KBUILD_EXTMOD),)
@@ -102,7 +102,7 @@ hostcxx_flags  = -Wp,-MD,$(depfile) $(_hostcxx_flags)
 # host-csingle -> Executable
 quiet_cmd_host-csingle 	= HOSTCC  $@
       cmd_host-csingle	= $(HOSTCC) $(hostc_flags) $(KBUILD_HOSTLDFLAGS) -o $@ $< \
-		$(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
+		$(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$*)
 $(host-csingle): $(obj)/%: $(src)/%.c FORCE
 	$(call if_changed_dep,host-csingle)
 
@@ -110,9 +110,9 @@ $(host-csingle): $(obj)/%: $(src)/%.c FORCE
 # host-cmulti -> executable
 quiet_cmd_host-cmulti	= HOSTLD  $@
       cmd_host-cmulti	= $(HOSTCC) $(KBUILD_HOSTLDFLAGS) -o $@ \
-			  $(addprefix $(obj)/,$($(@F)-objs)) \
-			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
-$(host-cmulti): FORCE
+			  $(addprefix $(obj)/, $($*-objs)) \
+			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$*)
+$(host-cmulti): $(obj)/%: FORCE
 	$(call if_changed,host-cmulti)
 $(call multi_depend, $(host-cmulti), , -objs)
 
@@ -128,9 +128,9 @@ $(host-cobjs): $(obj)/%.o: $(src)/%.c FORCE
 quiet_cmd_host-cxxmulti	= HOSTLD  $@
       cmd_host-cxxmulti	= $(HOSTCXX) $(KBUILD_HOSTLDFLAGS) -o $@ \
 			  $(foreach o,objs cxxobjs,\
-			  $(addprefix $(obj)/,$($(@F)-$(o)))) \
-			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
-$(host-cxxmulti): FORCE
+			  $(addprefix $(obj)/, $($*-$(o)))) \
+			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$*)
+$(host-cxxmulti): $(obj)/%: FORCE
 	$(call if_changed,host-cxxmulti)
 $(call multi_depend, $(host-cxxmulti), , -objs -cxxobjs)
 
@@ -161,9 +161,9 @@ $(host-cxxshobjs): $(obj)/%.o: $(src)/%.c FORCE
 # *.o -> .so shared library (host-cshlib)
 quiet_cmd_host-cshlib	= HOSTLLD -shared $@
       cmd_host-cshlib	= $(HOSTCC) $(KBUILD_HOSTLDFLAGS) -shared -o $@ \
-			  $(addprefix $(obj)/,$($(@F:.so=-objs))) \
-			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
-$(host-cshlib): FORCE
+			  $(addprefix $(obj)/, $($*-objs)) \
+			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$*.so)
+$(host-cshlib): $(obj)/%.so: FORCE
 	$(call if_changed,host-cshlib)
 $(call multi_depend, $(host-cshlib), .so, -objs)
 
@@ -171,9 +171,9 @@ $(call multi_depend, $(host-cshlib), .so, -objs)
 # *.o -> .so shared library (host-cxxshlib)
 quiet_cmd_host-cxxshlib	= HOSTLLD -shared $@
       cmd_host-cxxshlib	= $(HOSTCXX) $(KBUILD_HOSTLDFLAGS) -shared -o $@ \
-			  $(addprefix $(obj)/,$($(@F:.so=-objs))) \
-			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
-$(host-cxxshlib): FORCE
+			  $(addprefix $(obj)/, $($*-objs)) \
+			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$*.so)
+$(host-cxxshlib): $(obj)/%.so: FORCE
 	$(call if_changed,host-cxxshlib)
 $(call multi_depend, $(host-cxxshlib), .so, -objs)
 
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index 264611972c4a..0d48e17bfb07 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -109,12 +109,12 @@ basename_flags = -DKBUILD_BASENAME=$(call name-fix,$(basetarget))
 modname_flags  = -DKBUILD_MODNAME=$(call name-fix,$(modname))
 
 orig_c_flags   = $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) \
-                 $(ccflags-y) $(CFLAGS_$(basetarget).o)
-_c_flags       = $(filter-out $(CFLAGS_REMOVE_$(basetarget).o), $(orig_c_flags))
+                 $(ccflags-y) $(CFLAGS_$*.o)
+_c_flags       = $(filter-out $(CFLAGS_REMOVE_$*.o), $(orig_c_flags))
 orig_a_flags   = $(KBUILD_CPPFLAGS) $(KBUILD_AFLAGS) \
-                 $(asflags-y) $(AFLAGS_$(basetarget).o)
-_a_flags       = $(filter-out $(AFLAGS_REMOVE_$(basetarget).o), $(orig_a_flags))
-_cpp_flags     = $(KBUILD_CPPFLAGS) $(cppflags-y) $(CPPFLAGS_$(@F))
+                 $(asflags-y) $(AFLAGS_$*.o)
+_a_flags       = $(filter-out $(AFLAGS_REMOVE_$*.o), $(orig_a_flags))
+_cpp_flags     = $(KBUILD_CPPFLAGS) $(cppflags-y) $(CPPFLAGS_$*.lds)
 
 #
 # Enable gcov profiling flags for a file, directory or for all files depending
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index bed7a5a2fbe9..ef2f2336c469 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -166,15 +166,15 @@ $(obj)/nconf.o $(obj)/nconf.gui.o: $(obj)/nconf-cfg
 
 # mconf: Used for the menuconfig target based on lxdialog
 hostprogs-y	+= mconf
-lxdialog	:= checklist.o inputbox.o menubox.o textbox.o util.o yesno.o
-mconf-objs	:= mconf.o $(addprefix lxdialog/, $(lxdialog)) $(common-objs)
+lxdialog	:= $(addprefix lxdialog/, \
+		     checklist.o inputbox.o menubox.o textbox.o util.o yesno.o)
+mconf-objs	:= mconf.o $(lxdialog) $(common-objs)
 
 HOSTLDLIBS_mconf = $(shell . $(obj)/mconf-cfg && echo $$libs)
 $(foreach f, mconf.o $(lxdialog), \
   $(eval HOSTCFLAGS_$f = $$(shell . $(obj)/mconf-cfg && echo $$$$cflags)))
 
-$(obj)/mconf.o: $(obj)/mconf-cfg
-$(addprefix $(obj)/lxdialog/, $(lxdialog)): $(obj)/mconf-cfg
+$(addprefix $(obj)/, mconf.o $(lxdialog)): $(obj)/mconf-cfg
 
 # qconf: Used for the xconfig target based on Qt
 hostprogs-y	+= qconf
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 1/2] kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)
@ 2019-08-25 17:28 ` Masahiro Yamada
  0 siblings, 0 replies; 15+ messages in thread
From: Masahiro Yamada @ 2019-08-25 17:28 UTC (permalink / raw)
  To: linux-kbuild
  Cc: Michal Marek, Marc Zyngier, x86, Russell King, linux-kernel,
	Masahiro Yamada, Ingo Molnar, Borislav Petkov, linux-arm-kernel,
	Andy Lutomirski, H. Peter Anvin, Thomas Gleixner, kvmarm

Kbuild provides per-file compiler flag addition/removal:

  CFLAGS_<basetarget>.o
  CFLAGS_REMOVE_<basetarget>.o
  AFLAGS_<basetarget>.o
  AFLAGS_REMOVE_<basetarget>.o
  CPPFLAGS_<basetarget>
  HOSTCFLAGS_<basetarget>.o
  HOSTCXXFLAGS_<basetarget>.o

The <basetarget> is the filename of the target without its suffix.

This syntax comes into a trouble when two files with the same name
appear in one Makefile, for example:

  obj-y += foo.o
  obj-y += dir/foo.o
  CFLAGS_foo.o := <some-flags>

Here, the <some-flags> applies to both foo.o and dir/foo.o

The real world problem is:

  scripts/kconfig/util.c
  scripts/kconfig/lxdialog/util.c

Both files are compiled into scripts/kconfig/mconf, but only the
latter should be given with additional flags for ncurses.

It is more sensible to use the relative path to the Makefile, like this:

  obj-y += foo.o
  CFLAGS_foo.o := <some-flags>
  obj-y += dir/foo.o
  CFLAGS_dir/foo.o := <other-flags>

The $* variable is replaced with the stem ('%') part in a pattern rule.
In other words, this only works for pattern rules.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

 arch/arm/kvm/Makefile        |  5 +++--
 arch/x86/entry/vdso/Makefile |  3 ++-
 scripts/Makefile.host        | 30 +++++++++++++++---------------
 scripts/Makefile.lib         | 10 +++++-----
 scripts/kconfig/Makefile     |  8 ++++----
 5 files changed, 29 insertions(+), 27 deletions(-)

diff --git a/arch/arm/kvm/Makefile b/arch/arm/kvm/Makefile
index 531e59f5be9c..b76b75bd9e00 100644
--- a/arch/arm/kvm/Makefile
+++ b/arch/arm/kvm/Makefile
@@ -8,13 +8,14 @@ ifeq ($(plus_virt),+virt)
 	plus_virt_def := -DREQUIRES_VIRT=1
 endif
 
+KVM := ../../../virt/kvm
+
 ccflags-y += -I $(srctree)/$(src) -I $(srctree)/virt/kvm/arm/vgic
-CFLAGS_arm.o := $(plus_virt_def)
+CFLAGS_$(KVM)/arm/arm.o := $(plus_virt_def)
 
 AFLAGS_init.o := -Wa,-march=armv7-a$(plus_virt)
 AFLAGS_interrupts.o := -Wa,-march=armv7-a$(plus_virt)
 
-KVM := ../../../virt/kvm
 kvm-arm-y = $(KVM)/kvm_main.o $(KVM)/coalesced_mmio.o $(KVM)/eventfd.o $(KVM)/vfio.o
 
 obj-$(CONFIG_KVM_ARM_HOST) += hyp/
diff --git a/arch/x86/entry/vdso/Makefile b/arch/x86/entry/vdso/Makefile
index 8df549138193..0f2154106d01 100644
--- a/arch/x86/entry/vdso/Makefile
+++ b/arch/x86/entry/vdso/Makefile
@@ -89,6 +89,7 @@ $(vobjs): KBUILD_CFLAGS := $(filter-out $(GCC_PLUGINS_CFLAGS) $(RETPOLINE_CFLAGS
 #
 CFLAGS_REMOVE_vdso-note.o = -pg
 CFLAGS_REMOVE_vclock_gettime.o = -pg
+CFLAGS_REMOVE_vdso32/vclock_gettime.o = -pg
 CFLAGS_REMOVE_vgetcpu.o = -pg
 CFLAGS_REMOVE_vvar.o = -pg
 
@@ -128,7 +129,7 @@ $(obj)/%.so: $(obj)/%.so.dbg FORCE
 $(obj)/vdsox32.so.dbg: $(obj)/vdsox32.lds $(vobjx32s) FORCE
 	$(call if_changed,vdso_and_check)
 
-CPPFLAGS_vdso32.lds = $(CPPFLAGS_vdso.lds)
+CPPFLAGS_vdso32/vdso32.lds = $(CPPFLAGS_vdso.lds)
 VDSO_LDFLAGS_vdso32.lds = -m elf_i386 -soname linux-gate.so.1
 
 targets += vdso32/vdso32.lds
diff --git a/scripts/Makefile.host b/scripts/Makefile.host
index b402c619147d..cd2b98e2f727 100644
--- a/scripts/Makefile.host
+++ b/scripts/Makefile.host
@@ -80,9 +80,9 @@ host-cxxshobjs	:= $(addprefix $(obj)/,$(host-cxxshobjs))
 # Handle options to gcc. Support building with separate output directory
 
 _hostc_flags   = $(KBUILD_HOSTCFLAGS)   $(HOST_EXTRACFLAGS)   \
-                 $(HOSTCFLAGS_$(basetarget).o)
+                 $(HOSTCFLAGS_$*.o)
 _hostcxx_flags = $(KBUILD_HOSTCXXFLAGS) $(HOST_EXTRACXXFLAGS) \
-                 $(HOSTCXXFLAGS_$(basetarget).o)
+                 $(HOSTCXXFLAGS_$*.o)
 
 # $(objtree)/$(obj) for including generated headers from checkin source files
 ifeq ($(KBUILD_EXTMOD),)
@@ -102,7 +102,7 @@ hostcxx_flags  = -Wp,-MD,$(depfile) $(_hostcxx_flags)
 # host-csingle -> Executable
 quiet_cmd_host-csingle 	= HOSTCC  $@
       cmd_host-csingle	= $(HOSTCC) $(hostc_flags) $(KBUILD_HOSTLDFLAGS) -o $@ $< \
-		$(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
+		$(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$*)
 $(host-csingle): $(obj)/%: $(src)/%.c FORCE
 	$(call if_changed_dep,host-csingle)
 
@@ -110,9 +110,9 @@ $(host-csingle): $(obj)/%: $(src)/%.c FORCE
 # host-cmulti -> executable
 quiet_cmd_host-cmulti	= HOSTLD  $@
       cmd_host-cmulti	= $(HOSTCC) $(KBUILD_HOSTLDFLAGS) -o $@ \
-			  $(addprefix $(obj)/,$($(@F)-objs)) \
-			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
-$(host-cmulti): FORCE
+			  $(addprefix $(obj)/, $($*-objs)) \
+			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$*)
+$(host-cmulti): $(obj)/%: FORCE
 	$(call if_changed,host-cmulti)
 $(call multi_depend, $(host-cmulti), , -objs)
 
@@ -128,9 +128,9 @@ $(host-cobjs): $(obj)/%.o: $(src)/%.c FORCE
 quiet_cmd_host-cxxmulti	= HOSTLD  $@
       cmd_host-cxxmulti	= $(HOSTCXX) $(KBUILD_HOSTLDFLAGS) -o $@ \
 			  $(foreach o,objs cxxobjs,\
-			  $(addprefix $(obj)/,$($(@F)-$(o)))) \
-			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
-$(host-cxxmulti): FORCE
+			  $(addprefix $(obj)/, $($*-$(o)))) \
+			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$*)
+$(host-cxxmulti): $(obj)/%: FORCE
 	$(call if_changed,host-cxxmulti)
 $(call multi_depend, $(host-cxxmulti), , -objs -cxxobjs)
 
@@ -161,9 +161,9 @@ $(host-cxxshobjs): $(obj)/%.o: $(src)/%.c FORCE
 # *.o -> .so shared library (host-cshlib)
 quiet_cmd_host-cshlib	= HOSTLLD -shared $@
       cmd_host-cshlib	= $(HOSTCC) $(KBUILD_HOSTLDFLAGS) -shared -o $@ \
-			  $(addprefix $(obj)/,$($(@F:.so=-objs))) \
-			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
-$(host-cshlib): FORCE
+			  $(addprefix $(obj)/, $($*-objs)) \
+			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$*.so)
+$(host-cshlib): $(obj)/%.so: FORCE
 	$(call if_changed,host-cshlib)
 $(call multi_depend, $(host-cshlib), .so, -objs)
 
@@ -171,9 +171,9 @@ $(call multi_depend, $(host-cshlib), .so, -objs)
 # *.o -> .so shared library (host-cxxshlib)
 quiet_cmd_host-cxxshlib	= HOSTLLD -shared $@
       cmd_host-cxxshlib	= $(HOSTCXX) $(KBUILD_HOSTLDFLAGS) -shared -o $@ \
-			  $(addprefix $(obj)/,$($(@F:.so=-objs))) \
-			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
-$(host-cxxshlib): FORCE
+			  $(addprefix $(obj)/, $($*-objs)) \
+			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$*.so)
+$(host-cxxshlib): $(obj)/%.so: FORCE
 	$(call if_changed,host-cxxshlib)
 $(call multi_depend, $(host-cxxshlib), .so, -objs)
 
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index 264611972c4a..0d48e17bfb07 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -109,12 +109,12 @@ basename_flags = -DKBUILD_BASENAME=$(call name-fix,$(basetarget))
 modname_flags  = -DKBUILD_MODNAME=$(call name-fix,$(modname))
 
 orig_c_flags   = $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) \
-                 $(ccflags-y) $(CFLAGS_$(basetarget).o)
-_c_flags       = $(filter-out $(CFLAGS_REMOVE_$(basetarget).o), $(orig_c_flags))
+                 $(ccflags-y) $(CFLAGS_$*.o)
+_c_flags       = $(filter-out $(CFLAGS_REMOVE_$*.o), $(orig_c_flags))
 orig_a_flags   = $(KBUILD_CPPFLAGS) $(KBUILD_AFLAGS) \
-                 $(asflags-y) $(AFLAGS_$(basetarget).o)
-_a_flags       = $(filter-out $(AFLAGS_REMOVE_$(basetarget).o), $(orig_a_flags))
-_cpp_flags     = $(KBUILD_CPPFLAGS) $(cppflags-y) $(CPPFLAGS_$(@F))
+                 $(asflags-y) $(AFLAGS_$*.o)
+_a_flags       = $(filter-out $(AFLAGS_REMOVE_$*.o), $(orig_a_flags))
+_cpp_flags     = $(KBUILD_CPPFLAGS) $(cppflags-y) $(CPPFLAGS_$*.lds)
 
 #
 # Enable gcov profiling flags for a file, directory or for all files depending
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index bed7a5a2fbe9..ef2f2336c469 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -166,15 +166,15 @@ $(obj)/nconf.o $(obj)/nconf.gui.o: $(obj)/nconf-cfg
 
 # mconf: Used for the menuconfig target based on lxdialog
 hostprogs-y	+= mconf
-lxdialog	:= checklist.o inputbox.o menubox.o textbox.o util.o yesno.o
-mconf-objs	:= mconf.o $(addprefix lxdialog/, $(lxdialog)) $(common-objs)
+lxdialog	:= $(addprefix lxdialog/, \
+		     checklist.o inputbox.o menubox.o textbox.o util.o yesno.o)
+mconf-objs	:= mconf.o $(lxdialog) $(common-objs)
 
 HOSTLDLIBS_mconf = $(shell . $(obj)/mconf-cfg && echo $$libs)
 $(foreach f, mconf.o $(lxdialog), \
   $(eval HOSTCFLAGS_$f = $$(shell . $(obj)/mconf-cfg && echo $$$$cflags)))
 
-$(obj)/mconf.o: $(obj)/mconf-cfg
-$(addprefix $(obj)/lxdialog/, $(lxdialog)): $(obj)/mconf-cfg
+$(addprefix $(obj)/, mconf.o $(lxdialog)): $(obj)/mconf-cfg
 
 # qconf: Used for the xconfig target based on Qt
 hostprogs-y	+= qconf
-- 
2.17.1

_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 1/2] kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)
@ 2019-08-25 17:28 ` Masahiro Yamada
  0 siblings, 0 replies; 15+ messages in thread
From: Masahiro Yamada @ 2019-08-25 17:28 UTC (permalink / raw)
  To: linux-kbuild
  Cc: Michal Marek, Suzuki K Poulose, Marc Zyngier, x86, Russell King,
	linux-kernel, Masahiro Yamada, Ingo Molnar, Borislav Petkov,
	linux-arm-kernel, Andy Lutomirski, H. Peter Anvin, James Morse,
	Thomas Gleixner, kvmarm, Julien Thierry

Kbuild provides per-file compiler flag addition/removal:

  CFLAGS_<basetarget>.o
  CFLAGS_REMOVE_<basetarget>.o
  AFLAGS_<basetarget>.o
  AFLAGS_REMOVE_<basetarget>.o
  CPPFLAGS_<basetarget>
  HOSTCFLAGS_<basetarget>.o
  HOSTCXXFLAGS_<basetarget>.o

The <basetarget> is the filename of the target without its suffix.

This syntax comes into a trouble when two files with the same name
appear in one Makefile, for example:

  obj-y += foo.o
  obj-y += dir/foo.o
  CFLAGS_foo.o := <some-flags>

Here, the <some-flags> applies to both foo.o and dir/foo.o

The real world problem is:

  scripts/kconfig/util.c
  scripts/kconfig/lxdialog/util.c

Both files are compiled into scripts/kconfig/mconf, but only the
latter should be given with additional flags for ncurses.

It is more sensible to use the relative path to the Makefile, like this:

  obj-y += foo.o
  CFLAGS_foo.o := <some-flags>
  obj-y += dir/foo.o
  CFLAGS_dir/foo.o := <other-flags>

The $* variable is replaced with the stem ('%') part in a pattern rule.
In other words, this only works for pattern rules.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

 arch/arm/kvm/Makefile        |  5 +++--
 arch/x86/entry/vdso/Makefile |  3 ++-
 scripts/Makefile.host        | 30 +++++++++++++++---------------
 scripts/Makefile.lib         | 10 +++++-----
 scripts/kconfig/Makefile     |  8 ++++----
 5 files changed, 29 insertions(+), 27 deletions(-)

diff --git a/arch/arm/kvm/Makefile b/arch/arm/kvm/Makefile
index 531e59f5be9c..b76b75bd9e00 100644
--- a/arch/arm/kvm/Makefile
+++ b/arch/arm/kvm/Makefile
@@ -8,13 +8,14 @@ ifeq ($(plus_virt),+virt)
 	plus_virt_def := -DREQUIRES_VIRT=1
 endif
 
+KVM := ../../../virt/kvm
+
 ccflags-y += -I $(srctree)/$(src) -I $(srctree)/virt/kvm/arm/vgic
-CFLAGS_arm.o := $(plus_virt_def)
+CFLAGS_$(KVM)/arm/arm.o := $(plus_virt_def)
 
 AFLAGS_init.o := -Wa,-march=armv7-a$(plus_virt)
 AFLAGS_interrupts.o := -Wa,-march=armv7-a$(plus_virt)
 
-KVM := ../../../virt/kvm
 kvm-arm-y = $(KVM)/kvm_main.o $(KVM)/coalesced_mmio.o $(KVM)/eventfd.o $(KVM)/vfio.o
 
 obj-$(CONFIG_KVM_ARM_HOST) += hyp/
diff --git a/arch/x86/entry/vdso/Makefile b/arch/x86/entry/vdso/Makefile
index 8df549138193..0f2154106d01 100644
--- a/arch/x86/entry/vdso/Makefile
+++ b/arch/x86/entry/vdso/Makefile
@@ -89,6 +89,7 @@ $(vobjs): KBUILD_CFLAGS := $(filter-out $(GCC_PLUGINS_CFLAGS) $(RETPOLINE_CFLAGS
 #
 CFLAGS_REMOVE_vdso-note.o = -pg
 CFLAGS_REMOVE_vclock_gettime.o = -pg
+CFLAGS_REMOVE_vdso32/vclock_gettime.o = -pg
 CFLAGS_REMOVE_vgetcpu.o = -pg
 CFLAGS_REMOVE_vvar.o = -pg
 
@@ -128,7 +129,7 @@ $(obj)/%.so: $(obj)/%.so.dbg FORCE
 $(obj)/vdsox32.so.dbg: $(obj)/vdsox32.lds $(vobjx32s) FORCE
 	$(call if_changed,vdso_and_check)
 
-CPPFLAGS_vdso32.lds = $(CPPFLAGS_vdso.lds)
+CPPFLAGS_vdso32/vdso32.lds = $(CPPFLAGS_vdso.lds)
 VDSO_LDFLAGS_vdso32.lds = -m elf_i386 -soname linux-gate.so.1
 
 targets += vdso32/vdso32.lds
diff --git a/scripts/Makefile.host b/scripts/Makefile.host
index b402c619147d..cd2b98e2f727 100644
--- a/scripts/Makefile.host
+++ b/scripts/Makefile.host
@@ -80,9 +80,9 @@ host-cxxshobjs	:= $(addprefix $(obj)/,$(host-cxxshobjs))
 # Handle options to gcc. Support building with separate output directory
 
 _hostc_flags   = $(KBUILD_HOSTCFLAGS)   $(HOST_EXTRACFLAGS)   \
-                 $(HOSTCFLAGS_$(basetarget).o)
+                 $(HOSTCFLAGS_$*.o)
 _hostcxx_flags = $(KBUILD_HOSTCXXFLAGS) $(HOST_EXTRACXXFLAGS) \
-                 $(HOSTCXXFLAGS_$(basetarget).o)
+                 $(HOSTCXXFLAGS_$*.o)
 
 # $(objtree)/$(obj) for including generated headers from checkin source files
 ifeq ($(KBUILD_EXTMOD),)
@@ -102,7 +102,7 @@ hostcxx_flags  = -Wp,-MD,$(depfile) $(_hostcxx_flags)
 # host-csingle -> Executable
 quiet_cmd_host-csingle 	= HOSTCC  $@
       cmd_host-csingle	= $(HOSTCC) $(hostc_flags) $(KBUILD_HOSTLDFLAGS) -o $@ $< \
-		$(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
+		$(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$*)
 $(host-csingle): $(obj)/%: $(src)/%.c FORCE
 	$(call if_changed_dep,host-csingle)
 
@@ -110,9 +110,9 @@ $(host-csingle): $(obj)/%: $(src)/%.c FORCE
 # host-cmulti -> executable
 quiet_cmd_host-cmulti	= HOSTLD  $@
       cmd_host-cmulti	= $(HOSTCC) $(KBUILD_HOSTLDFLAGS) -o $@ \
-			  $(addprefix $(obj)/,$($(@F)-objs)) \
-			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
-$(host-cmulti): FORCE
+			  $(addprefix $(obj)/, $($*-objs)) \
+			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$*)
+$(host-cmulti): $(obj)/%: FORCE
 	$(call if_changed,host-cmulti)
 $(call multi_depend, $(host-cmulti), , -objs)
 
@@ -128,9 +128,9 @@ $(host-cobjs): $(obj)/%.o: $(src)/%.c FORCE
 quiet_cmd_host-cxxmulti	= HOSTLD  $@
       cmd_host-cxxmulti	= $(HOSTCXX) $(KBUILD_HOSTLDFLAGS) -o $@ \
 			  $(foreach o,objs cxxobjs,\
-			  $(addprefix $(obj)/,$($(@F)-$(o)))) \
-			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
-$(host-cxxmulti): FORCE
+			  $(addprefix $(obj)/, $($*-$(o)))) \
+			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$*)
+$(host-cxxmulti): $(obj)/%: FORCE
 	$(call if_changed,host-cxxmulti)
 $(call multi_depend, $(host-cxxmulti), , -objs -cxxobjs)
 
@@ -161,9 +161,9 @@ $(host-cxxshobjs): $(obj)/%.o: $(src)/%.c FORCE
 # *.o -> .so shared library (host-cshlib)
 quiet_cmd_host-cshlib	= HOSTLLD -shared $@
       cmd_host-cshlib	= $(HOSTCC) $(KBUILD_HOSTLDFLAGS) -shared -o $@ \
-			  $(addprefix $(obj)/,$($(@F:.so=-objs))) \
-			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
-$(host-cshlib): FORCE
+			  $(addprefix $(obj)/, $($*-objs)) \
+			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$*.so)
+$(host-cshlib): $(obj)/%.so: FORCE
 	$(call if_changed,host-cshlib)
 $(call multi_depend, $(host-cshlib), .so, -objs)
 
@@ -171,9 +171,9 @@ $(call multi_depend, $(host-cshlib), .so, -objs)
 # *.o -> .so shared library (host-cxxshlib)
 quiet_cmd_host-cxxshlib	= HOSTLLD -shared $@
       cmd_host-cxxshlib	= $(HOSTCXX) $(KBUILD_HOSTLDFLAGS) -shared -o $@ \
-			  $(addprefix $(obj)/,$($(@F:.so=-objs))) \
-			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(@F))
-$(host-cxxshlib): FORCE
+			  $(addprefix $(obj)/, $($*-objs)) \
+			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$*.so)
+$(host-cxxshlib): $(obj)/%.so: FORCE
 	$(call if_changed,host-cxxshlib)
 $(call multi_depend, $(host-cxxshlib), .so, -objs)
 
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index 264611972c4a..0d48e17bfb07 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -109,12 +109,12 @@ basename_flags = -DKBUILD_BASENAME=$(call name-fix,$(basetarget))
 modname_flags  = -DKBUILD_MODNAME=$(call name-fix,$(modname))
 
 orig_c_flags   = $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) \
-                 $(ccflags-y) $(CFLAGS_$(basetarget).o)
-_c_flags       = $(filter-out $(CFLAGS_REMOVE_$(basetarget).o), $(orig_c_flags))
+                 $(ccflags-y) $(CFLAGS_$*.o)
+_c_flags       = $(filter-out $(CFLAGS_REMOVE_$*.o), $(orig_c_flags))
 orig_a_flags   = $(KBUILD_CPPFLAGS) $(KBUILD_AFLAGS) \
-                 $(asflags-y) $(AFLAGS_$(basetarget).o)
-_a_flags       = $(filter-out $(AFLAGS_REMOVE_$(basetarget).o), $(orig_a_flags))
-_cpp_flags     = $(KBUILD_CPPFLAGS) $(cppflags-y) $(CPPFLAGS_$(@F))
+                 $(asflags-y) $(AFLAGS_$*.o)
+_a_flags       = $(filter-out $(AFLAGS_REMOVE_$*.o), $(orig_a_flags))
+_cpp_flags     = $(KBUILD_CPPFLAGS) $(cppflags-y) $(CPPFLAGS_$*.lds)
 
 #
 # Enable gcov profiling flags for a file, directory or for all files depending
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index bed7a5a2fbe9..ef2f2336c469 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -166,15 +166,15 @@ $(obj)/nconf.o $(obj)/nconf.gui.o: $(obj)/nconf-cfg
 
 # mconf: Used for the menuconfig target based on lxdialog
 hostprogs-y	+= mconf
-lxdialog	:= checklist.o inputbox.o menubox.o textbox.o util.o yesno.o
-mconf-objs	:= mconf.o $(addprefix lxdialog/, $(lxdialog)) $(common-objs)
+lxdialog	:= $(addprefix lxdialog/, \
+		     checklist.o inputbox.o menubox.o textbox.o util.o yesno.o)
+mconf-objs	:= mconf.o $(lxdialog) $(common-objs)
 
 HOSTLDLIBS_mconf = $(shell . $(obj)/mconf-cfg && echo $$libs)
 $(foreach f, mconf.o $(lxdialog), \
   $(eval HOSTCFLAGS_$f = $$(shell . $(obj)/mconf-cfg && echo $$$$cflags)))
 
-$(obj)/mconf.o: $(obj)/mconf-cfg
-$(addprefix $(obj)/lxdialog/, $(lxdialog)): $(obj)/mconf-cfg
+$(addprefix $(obj)/, mconf.o $(lxdialog)): $(obj)/mconf-cfg
 
 # qconf: Used for the xconfig target based on Qt
 hostprogs-y	+= qconf
-- 
2.17.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 2/2] kconfig: split util.c out of parser.y
  2019-08-25 17:28 ` Masahiro Yamada
  (?)
  (?)
@ 2019-08-25 17:28 ` Masahiro Yamada
  -1 siblings, 0 replies; 15+ messages in thread
From: Masahiro Yamada @ 2019-08-25 17:28 UTC (permalink / raw)
  To: linux-kbuild; +Cc: Masahiro Yamada, linux-kernel

util.c exists both in scripts/kconfig/ and scripts/kconfig/lxdialog.

Previously, Kbuild could not pass different flags to source files with
the same basename. Now that this issue was solved, you can split util.c
out of parser.y and compile them independently of each other.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

 scripts/kconfig/Makefile | 2 +-
 scripts/kconfig/parser.y | 1 -
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index ef2f2336c469..1ce83269a5dc 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -144,7 +144,7 @@ help:
 # ===========================================================================
 # object files used by all kconfig flavours
 common-objs	:= confdata.o expr.o lexer.lex.o parser.tab.o preprocess.o \
-		   symbol.o
+		   symbol.o util.o
 
 $(obj)/lexer.lex.o: $(obj)/parser.tab.h
 HOSTCFLAGS_lexer.lex.o	:= -I $(srctree)/$(src)
diff --git a/scripts/kconfig/parser.y b/scripts/kconfig/parser.y
index 60936c76865b..b3eff9613cf8 100644
--- a/scripts/kconfig/parser.y
+++ b/scripts/kconfig/parser.y
@@ -727,5 +727,4 @@ void zconfdump(FILE *out)
 	}
 }
 
-#include "util.c"
 #include "menu.c"
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/2] kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)
  2019-08-25 17:28 ` Masahiro Yamada
  (?)
@ 2019-08-26  9:17   ` Marc Zyngier
  -1 siblings, 0 replies; 15+ messages in thread
From: Marc Zyngier @ 2019-08-26  9:17 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: linux-kbuild, Andy Lutomirski, Borislav Petkov, H. Peter Anvin,
	Ingo Molnar, James Morse, Julien Thierry, Michal Marek,
	Russell King, Suzuki K Poulose, Thomas Gleixner, kvmarm,
	linux-arm-kernel, linux-kernel, x86

On Sun, 25 Aug 2019 18:28:32 +0100,
Masahiro Yamada <yamada.masahiro@socionext.com> wrote:
> 
> Kbuild provides per-file compiler flag addition/removal:
> 
>   CFLAGS_<basetarget>.o
>   CFLAGS_REMOVE_<basetarget>.o
>   AFLAGS_<basetarget>.o
>   AFLAGS_REMOVE_<basetarget>.o
>   CPPFLAGS_<basetarget>
>   HOSTCFLAGS_<basetarget>.o
>   HOSTCXXFLAGS_<basetarget>.o
> 
> The <basetarget> is the filename of the target without its suffix.
> 
> This syntax comes into a trouble when two files with the same name
> appear in one Makefile, for example:
> 
>   obj-y += foo.o
>   obj-y += dir/foo.o
>   CFLAGS_foo.o := <some-flags>
> 
> Here, the <some-flags> applies to both foo.o and dir/foo.o
> 
> The real world problem is:
> 
>   scripts/kconfig/util.c
>   scripts/kconfig/lxdialog/util.c
> 
> Both files are compiled into scripts/kconfig/mconf, but only the
> latter should be given with additional flags for ncurses.
> 
> It is more sensible to use the relative path to the Makefile, like this:
> 
>   obj-y += foo.o
>   CFLAGS_foo.o := <some-flags>
>   obj-y += dir/foo.o
>   CFLAGS_dir/foo.o := <other-flags>
> 
> The $* variable is replaced with the stem ('%') part in a pattern rule.
> In other words, this only works for pattern rules.
> 
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> ---
> 
>  arch/arm/kvm/Makefile        |  5 +++--
>  arch/x86/entry/vdso/Makefile |  3 ++-
>  scripts/Makefile.host        | 30 +++++++++++++++---------------
>  scripts/Makefile.lib         | 10 +++++-----
>  scripts/kconfig/Makefile     |  8 ++++----
>  5 files changed, 29 insertions(+), 27 deletions(-)

For the KVM/arm part:

Acked-by: Marc Zyngier <maz@kernel.org>

Thanks,

	M.

-- 
Jazz is not dead, it just smells funny.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/2] kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)
@ 2019-08-26  9:17   ` Marc Zyngier
  0 siblings, 0 replies; 15+ messages in thread
From: Marc Zyngier @ 2019-08-26  9:17 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: x86, Michal Marek, linux-kbuild, Russell King, linux-kernel,
	Ingo Molnar, linux-arm-kernel, Andy Lutomirski, H. Peter Anvin,
	Borislav Petkov, Thomas Gleixner, kvmarm

On Sun, 25 Aug 2019 18:28:32 +0100,
Masahiro Yamada <yamada.masahiro@socionext.com> wrote:
> 
> Kbuild provides per-file compiler flag addition/removal:
> 
>   CFLAGS_<basetarget>.o
>   CFLAGS_REMOVE_<basetarget>.o
>   AFLAGS_<basetarget>.o
>   AFLAGS_REMOVE_<basetarget>.o
>   CPPFLAGS_<basetarget>
>   HOSTCFLAGS_<basetarget>.o
>   HOSTCXXFLAGS_<basetarget>.o
> 
> The <basetarget> is the filename of the target without its suffix.
> 
> This syntax comes into a trouble when two files with the same name
> appear in one Makefile, for example:
> 
>   obj-y += foo.o
>   obj-y += dir/foo.o
>   CFLAGS_foo.o := <some-flags>
> 
> Here, the <some-flags> applies to both foo.o and dir/foo.o
> 
> The real world problem is:
> 
>   scripts/kconfig/util.c
>   scripts/kconfig/lxdialog/util.c
> 
> Both files are compiled into scripts/kconfig/mconf, but only the
> latter should be given with additional flags for ncurses.
> 
> It is more sensible to use the relative path to the Makefile, like this:
> 
>   obj-y += foo.o
>   CFLAGS_foo.o := <some-flags>
>   obj-y += dir/foo.o
>   CFLAGS_dir/foo.o := <other-flags>
> 
> The $* variable is replaced with the stem ('%') part in a pattern rule.
> In other words, this only works for pattern rules.
> 
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> ---
> 
>  arch/arm/kvm/Makefile        |  5 +++--
>  arch/x86/entry/vdso/Makefile |  3 ++-
>  scripts/Makefile.host        | 30 +++++++++++++++---------------
>  scripts/Makefile.lib         | 10 +++++-----
>  scripts/kconfig/Makefile     |  8 ++++----
>  5 files changed, 29 insertions(+), 27 deletions(-)

For the KVM/arm part:

Acked-by: Marc Zyngier <maz@kernel.org>

Thanks,

	M.

-- 
Jazz is not dead, it just smells funny.
_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/2] kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)
@ 2019-08-26  9:17   ` Marc Zyngier
  0 siblings, 0 replies; 15+ messages in thread
From: Marc Zyngier @ 2019-08-26  9:17 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: x86, Michal Marek, linux-kbuild, Suzuki K Poulose, Russell King,
	linux-kernel, Ingo Molnar, James Morse, linux-arm-kernel,
	Andy Lutomirski, H. Peter Anvin, Borislav Petkov,
	Thomas Gleixner, kvmarm, Julien Thierry

On Sun, 25 Aug 2019 18:28:32 +0100,
Masahiro Yamada <yamada.masahiro@socionext.com> wrote:
> 
> Kbuild provides per-file compiler flag addition/removal:
> 
>   CFLAGS_<basetarget>.o
>   CFLAGS_REMOVE_<basetarget>.o
>   AFLAGS_<basetarget>.o
>   AFLAGS_REMOVE_<basetarget>.o
>   CPPFLAGS_<basetarget>
>   HOSTCFLAGS_<basetarget>.o
>   HOSTCXXFLAGS_<basetarget>.o
> 
> The <basetarget> is the filename of the target without its suffix.
> 
> This syntax comes into a trouble when two files with the same name
> appear in one Makefile, for example:
> 
>   obj-y += foo.o
>   obj-y += dir/foo.o
>   CFLAGS_foo.o := <some-flags>
> 
> Here, the <some-flags> applies to both foo.o and dir/foo.o
> 
> The real world problem is:
> 
>   scripts/kconfig/util.c
>   scripts/kconfig/lxdialog/util.c
> 
> Both files are compiled into scripts/kconfig/mconf, but only the
> latter should be given with additional flags for ncurses.
> 
> It is more sensible to use the relative path to the Makefile, like this:
> 
>   obj-y += foo.o
>   CFLAGS_foo.o := <some-flags>
>   obj-y += dir/foo.o
>   CFLAGS_dir/foo.o := <other-flags>
> 
> The $* variable is replaced with the stem ('%') part in a pattern rule.
> In other words, this only works for pattern rules.
> 
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> ---
> 
>  arch/arm/kvm/Makefile        |  5 +++--
>  arch/x86/entry/vdso/Makefile |  3 ++-
>  scripts/Makefile.host        | 30 +++++++++++++++---------------
>  scripts/Makefile.lib         | 10 +++++-----
>  scripts/kconfig/Makefile     |  8 ++++----
>  5 files changed, 29 insertions(+), 27 deletions(-)

For the KVM/arm part:

Acked-by: Marc Zyngier <maz@kernel.org>

Thanks,

	M.

-- 
Jazz is not dead, it just smells funny.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/2] kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)
  2019-08-25 17:28 ` Masahiro Yamada
  (?)
  (?)
@ 2019-08-27  0:29   ` kbuild test robot
  -1 siblings, 0 replies; 15+ messages in thread
From: kbuild test robot @ 2019-08-27  0:29 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: kbuild-all, linux-kbuild, Masahiro Yamada, Andy Lutomirski,
	Borislav Petkov, H. Peter Anvin, Ingo Molnar, James Morse,
	Julien Thierry, Marc Zyngier, Michal Marek, Russell King,
	Suzuki K Poulose, Thomas Gleixner, kvmarm, linux-arm-kernel,
	linux-kernel, x86

[-- Attachment #1: Type: text/plain, Size: 3404 bytes --]

Hi Masahiro,

I love your patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[cannot apply to v5.3-rc6 next-20190826]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Masahiro-Yamada/kbuild-change-FLAGS_-basetarget-o-to-take-the-path-relative-to-obj/20190827-071627
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-10) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

>> drivers/gpu/drm/i915/display/intel_fbdev.c:105:16: warning: initialized field overwritten [-Woverride-init]
     .fb_set_par = intel_fbdev_set_par,
                   ^~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/intel_fbdev.c:105:16: note: (near initialization for 'intelfb_ops.fb_set_par')
   drivers/gpu/drm/i915/display/intel_fbdev.c:109:20: warning: initialized field overwritten [-Woverride-init]
     .fb_pan_display = intel_fbdev_pan_display,
                       ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/intel_fbdev.c:109:20: note: (near initialization for 'intelfb_ops.fb_pan_display')
   drivers/gpu/drm/i915/display/intel_fbdev.c:110:14: warning: initialized field overwritten [-Woverride-init]
     .fb_blank = intel_fbdev_blank,
                 ^~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/intel_fbdev.c:110:14: note: (near initialization for 'intelfb_ops.fb_blank')

vim +105 drivers/gpu/drm/i915/display/intel_fbdev.c

d9a946b52350bb drivers/gpu/drm/i915/intel_fbdev.c Rodrigo Vivi  2015-05-28  101  
79e539453b34e3 drivers/gpu/drm/i915/intel_fb.c    Jesse Barnes  2008-11-07  102  static struct fb_ops intelfb_ops = {
79e539453b34e3 drivers/gpu/drm/i915/intel_fb.c    Jesse Barnes  2008-11-07  103  	.owner = THIS_MODULE,
a36384dd941b48 drivers/gpu/drm/i915/intel_fbdev.c Stefan Christ 2016-11-14  104  	DRM_FB_HELPER_DEFAULT_OPS,
e991077ec67e08 drivers/gpu/drm/i915/intel_fbdev.c Daniel Vetter 2014-06-18 @105  	.fb_set_par = intel_fbdev_set_par,
21cff14847421f drivers/gpu/drm/i915/intel_fbdev.c Archit Taneja 2015-07-31  106  	.fb_fillrect = drm_fb_helper_cfb_fillrect,
21cff14847421f drivers/gpu/drm/i915/intel_fbdev.c Archit Taneja 2015-07-31  107  	.fb_copyarea = drm_fb_helper_cfb_copyarea,
21cff14847421f drivers/gpu/drm/i915/intel_fbdev.c Archit Taneja 2015-07-31  108  	.fb_imageblit = drm_fb_helper_cfb_imageblit,
d9a946b52350bb drivers/gpu/drm/i915/intel_fbdev.c Rodrigo Vivi  2015-05-28  109  	.fb_pan_display = intel_fbdev_pan_display,
03e515f7f8949c drivers/gpu/drm/i915/intel_fbdev.c Rodrigo Vivi  2015-03-09  110  	.fb_blank = intel_fbdev_blank,
785b93ef8c3097 drivers/gpu/drm/i915/intel_fb.c    Dave Airlie   2009-08-28  111  };
785b93ef8c3097 drivers/gpu/drm/i915/intel_fb.c    Dave Airlie   2009-08-28  112  

:::::: The code at line 105 was first introduced by commit
:::::: e991077ec67e08bd345fcee4f810e59740359da5 drm/i915: Properly track domain of the fbcon fb

:::::: TO: Daniel Vetter <daniel.vetter@ffwll.ch>
:::::: CC: Daniel Vetter <daniel.vetter@ffwll.ch>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 28074 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/2] kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)
@ 2019-08-27  0:29   ` kbuild test robot
  0 siblings, 0 replies; 15+ messages in thread
From: kbuild test robot @ 2019-08-27  0:29 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: kbuild-all, linux-kbuild, Andy Lutomirski, Borislav Petkov,
	H. Peter Anvin, Ingo Molnar, James Morse, Julien Thierry,
	Marc Zyngier, Michal Marek, Russell King, Suzuki K Poulose,
	Thomas Gleixner, kvmarm, linux-arm-kernel, linux-kernel, x86

[-- Attachment #1: Type: text/plain, Size: 3404 bytes --]

Hi Masahiro,

I love your patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[cannot apply to v5.3-rc6 next-20190826]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Masahiro-Yamada/kbuild-change-FLAGS_-basetarget-o-to-take-the-path-relative-to-obj/20190827-071627
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-10) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

>> drivers/gpu/drm/i915/display/intel_fbdev.c:105:16: warning: initialized field overwritten [-Woverride-init]
     .fb_set_par = intel_fbdev_set_par,
                   ^~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/intel_fbdev.c:105:16: note: (near initialization for 'intelfb_ops.fb_set_par')
   drivers/gpu/drm/i915/display/intel_fbdev.c:109:20: warning: initialized field overwritten [-Woverride-init]
     .fb_pan_display = intel_fbdev_pan_display,
                       ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/intel_fbdev.c:109:20: note: (near initialization for 'intelfb_ops.fb_pan_display')
   drivers/gpu/drm/i915/display/intel_fbdev.c:110:14: warning: initialized field overwritten [-Woverride-init]
     .fb_blank = intel_fbdev_blank,
                 ^~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/intel_fbdev.c:110:14: note: (near initialization for 'intelfb_ops.fb_blank')

vim +105 drivers/gpu/drm/i915/display/intel_fbdev.c

d9a946b52350bb drivers/gpu/drm/i915/intel_fbdev.c Rodrigo Vivi  2015-05-28  101  
79e539453b34e3 drivers/gpu/drm/i915/intel_fb.c    Jesse Barnes  2008-11-07  102  static struct fb_ops intelfb_ops = {
79e539453b34e3 drivers/gpu/drm/i915/intel_fb.c    Jesse Barnes  2008-11-07  103  	.owner = THIS_MODULE,
a36384dd941b48 drivers/gpu/drm/i915/intel_fbdev.c Stefan Christ 2016-11-14  104  	DRM_FB_HELPER_DEFAULT_OPS,
e991077ec67e08 drivers/gpu/drm/i915/intel_fbdev.c Daniel Vetter 2014-06-18 @105  	.fb_set_par = intel_fbdev_set_par,
21cff14847421f drivers/gpu/drm/i915/intel_fbdev.c Archit Taneja 2015-07-31  106  	.fb_fillrect = drm_fb_helper_cfb_fillrect,
21cff14847421f drivers/gpu/drm/i915/intel_fbdev.c Archit Taneja 2015-07-31  107  	.fb_copyarea = drm_fb_helper_cfb_copyarea,
21cff14847421f drivers/gpu/drm/i915/intel_fbdev.c Archit Taneja 2015-07-31  108  	.fb_imageblit = drm_fb_helper_cfb_imageblit,
d9a946b52350bb drivers/gpu/drm/i915/intel_fbdev.c Rodrigo Vivi  2015-05-28  109  	.fb_pan_display = intel_fbdev_pan_display,
03e515f7f8949c drivers/gpu/drm/i915/intel_fbdev.c Rodrigo Vivi  2015-03-09  110  	.fb_blank = intel_fbdev_blank,
785b93ef8c3097 drivers/gpu/drm/i915/intel_fb.c    Dave Airlie   2009-08-28  111  };
785b93ef8c3097 drivers/gpu/drm/i915/intel_fb.c    Dave Airlie   2009-08-28  112  

:::::: The code at line 105 was first introduced by commit
:::::: e991077ec67e08bd345fcee4f810e59740359da5 drm/i915: Properly track domain of the fbcon fb

:::::: TO: Daniel Vetter <daniel.vetter@ffwll.ch>
:::::: CC: Daniel Vetter <daniel.vetter@ffwll.ch>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 28074 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/2] kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)
@ 2019-08-27  0:29   ` kbuild test robot
  0 siblings, 0 replies; 15+ messages in thread
From: kbuild test robot @ 2019-08-27  0:29 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: linux-arm-kernel, x86, Michal Marek, linux-kbuild, Marc Zyngier,
	Russell King, linux-kernel, Masahiro Yamada, Ingo Molnar,
	Borislav Petkov, kbuild-all, Andy Lutomirski, H. Peter Anvin,
	Thomas Gleixner, kvmarm

[-- Attachment #1: Type: text/plain, Size: 3404 bytes --]

Hi Masahiro,

I love your patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[cannot apply to v5.3-rc6 next-20190826]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Masahiro-Yamada/kbuild-change-FLAGS_-basetarget-o-to-take-the-path-relative-to-obj/20190827-071627
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-10) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

>> drivers/gpu/drm/i915/display/intel_fbdev.c:105:16: warning: initialized field overwritten [-Woverride-init]
     .fb_set_par = intel_fbdev_set_par,
                   ^~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/intel_fbdev.c:105:16: note: (near initialization for 'intelfb_ops.fb_set_par')
   drivers/gpu/drm/i915/display/intel_fbdev.c:109:20: warning: initialized field overwritten [-Woverride-init]
     .fb_pan_display = intel_fbdev_pan_display,
                       ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/intel_fbdev.c:109:20: note: (near initialization for 'intelfb_ops.fb_pan_display')
   drivers/gpu/drm/i915/display/intel_fbdev.c:110:14: warning: initialized field overwritten [-Woverride-init]
     .fb_blank = intel_fbdev_blank,
                 ^~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/intel_fbdev.c:110:14: note: (near initialization for 'intelfb_ops.fb_blank')

vim +105 drivers/gpu/drm/i915/display/intel_fbdev.c

d9a946b52350bb drivers/gpu/drm/i915/intel_fbdev.c Rodrigo Vivi  2015-05-28  101  
79e539453b34e3 drivers/gpu/drm/i915/intel_fb.c    Jesse Barnes  2008-11-07  102  static struct fb_ops intelfb_ops = {
79e539453b34e3 drivers/gpu/drm/i915/intel_fb.c    Jesse Barnes  2008-11-07  103  	.owner = THIS_MODULE,
a36384dd941b48 drivers/gpu/drm/i915/intel_fbdev.c Stefan Christ 2016-11-14  104  	DRM_FB_HELPER_DEFAULT_OPS,
e991077ec67e08 drivers/gpu/drm/i915/intel_fbdev.c Daniel Vetter 2014-06-18 @105  	.fb_set_par = intel_fbdev_set_par,
21cff14847421f drivers/gpu/drm/i915/intel_fbdev.c Archit Taneja 2015-07-31  106  	.fb_fillrect = drm_fb_helper_cfb_fillrect,
21cff14847421f drivers/gpu/drm/i915/intel_fbdev.c Archit Taneja 2015-07-31  107  	.fb_copyarea = drm_fb_helper_cfb_copyarea,
21cff14847421f drivers/gpu/drm/i915/intel_fbdev.c Archit Taneja 2015-07-31  108  	.fb_imageblit = drm_fb_helper_cfb_imageblit,
d9a946b52350bb drivers/gpu/drm/i915/intel_fbdev.c Rodrigo Vivi  2015-05-28  109  	.fb_pan_display = intel_fbdev_pan_display,
03e515f7f8949c drivers/gpu/drm/i915/intel_fbdev.c Rodrigo Vivi  2015-03-09  110  	.fb_blank = intel_fbdev_blank,
785b93ef8c3097 drivers/gpu/drm/i915/intel_fb.c    Dave Airlie   2009-08-28  111  };
785b93ef8c3097 drivers/gpu/drm/i915/intel_fb.c    Dave Airlie   2009-08-28  112  

:::::: The code at line 105 was first introduced by commit
:::::: e991077ec67e08bd345fcee4f810e59740359da5 drm/i915: Properly track domain of the fbcon fb

:::::: TO: Daniel Vetter <daniel.vetter@ffwll.ch>
:::::: CC: Daniel Vetter <daniel.vetter@ffwll.ch>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 28074 bytes --]

[-- Attachment #3: Type: text/plain, Size: 151 bytes --]

_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/2] kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)
@ 2019-08-27  0:29   ` kbuild test robot
  0 siblings, 0 replies; 15+ messages in thread
From: kbuild test robot @ 2019-08-27  0:29 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: linux-arm-kernel, x86, Michal Marek, linux-kbuild, Marc Zyngier,
	Suzuki K Poulose, Russell King, linux-kernel, Masahiro Yamada,
	Ingo Molnar, Borislav Petkov, kbuild-all, Andy Lutomirski,
	H. Peter Anvin, James Morse, Thomas Gleixner, kvmarm,
	Julien Thierry

[-- Attachment #1: Type: text/plain, Size: 3404 bytes --]

Hi Masahiro,

I love your patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[cannot apply to v5.3-rc6 next-20190826]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Masahiro-Yamada/kbuild-change-FLAGS_-basetarget-o-to-take-the-path-relative-to-obj/20190827-071627
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-10) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

>> drivers/gpu/drm/i915/display/intel_fbdev.c:105:16: warning: initialized field overwritten [-Woverride-init]
     .fb_set_par = intel_fbdev_set_par,
                   ^~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/intel_fbdev.c:105:16: note: (near initialization for 'intelfb_ops.fb_set_par')
   drivers/gpu/drm/i915/display/intel_fbdev.c:109:20: warning: initialized field overwritten [-Woverride-init]
     .fb_pan_display = intel_fbdev_pan_display,
                       ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/intel_fbdev.c:109:20: note: (near initialization for 'intelfb_ops.fb_pan_display')
   drivers/gpu/drm/i915/display/intel_fbdev.c:110:14: warning: initialized field overwritten [-Woverride-init]
     .fb_blank = intel_fbdev_blank,
                 ^~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/intel_fbdev.c:110:14: note: (near initialization for 'intelfb_ops.fb_blank')

vim +105 drivers/gpu/drm/i915/display/intel_fbdev.c

d9a946b52350bb drivers/gpu/drm/i915/intel_fbdev.c Rodrigo Vivi  2015-05-28  101  
79e539453b34e3 drivers/gpu/drm/i915/intel_fb.c    Jesse Barnes  2008-11-07  102  static struct fb_ops intelfb_ops = {
79e539453b34e3 drivers/gpu/drm/i915/intel_fb.c    Jesse Barnes  2008-11-07  103  	.owner = THIS_MODULE,
a36384dd941b48 drivers/gpu/drm/i915/intel_fbdev.c Stefan Christ 2016-11-14  104  	DRM_FB_HELPER_DEFAULT_OPS,
e991077ec67e08 drivers/gpu/drm/i915/intel_fbdev.c Daniel Vetter 2014-06-18 @105  	.fb_set_par = intel_fbdev_set_par,
21cff14847421f drivers/gpu/drm/i915/intel_fbdev.c Archit Taneja 2015-07-31  106  	.fb_fillrect = drm_fb_helper_cfb_fillrect,
21cff14847421f drivers/gpu/drm/i915/intel_fbdev.c Archit Taneja 2015-07-31  107  	.fb_copyarea = drm_fb_helper_cfb_copyarea,
21cff14847421f drivers/gpu/drm/i915/intel_fbdev.c Archit Taneja 2015-07-31  108  	.fb_imageblit = drm_fb_helper_cfb_imageblit,
d9a946b52350bb drivers/gpu/drm/i915/intel_fbdev.c Rodrigo Vivi  2015-05-28  109  	.fb_pan_display = intel_fbdev_pan_display,
03e515f7f8949c drivers/gpu/drm/i915/intel_fbdev.c Rodrigo Vivi  2015-03-09  110  	.fb_blank = intel_fbdev_blank,
785b93ef8c3097 drivers/gpu/drm/i915/intel_fb.c    Dave Airlie   2009-08-28  111  };
785b93ef8c3097 drivers/gpu/drm/i915/intel_fb.c    Dave Airlie   2009-08-28  112  

:::::: The code at line 105 was first introduced by commit
:::::: e991077ec67e08bd345fcee4f810e59740359da5 drm/i915: Properly track domain of the fbcon fb

:::::: TO: Daniel Vetter <daniel.vetter@ffwll.ch>
:::::: CC: Daniel Vetter <daniel.vetter@ffwll.ch>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 28074 bytes --]

[-- Attachment #3: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/2] kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)
  2019-08-25 17:28 ` Masahiro Yamada
  (?)
  (?)
@ 2019-08-27  1:36   ` kbuild test robot
  -1 siblings, 0 replies; 15+ messages in thread
From: kbuild test robot @ 2019-08-27  1:36 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: kbuild-all, linux-kbuild, Masahiro Yamada, Andy Lutomirski,
	Borislav Petkov, H. Peter Anvin, Ingo Molnar, James Morse,
	Julien Thierry, Marc Zyngier, Michal Marek, Russell King,
	Suzuki K Poulose, Thomas Gleixner, kvmarm, linux-arm-kernel,
	linux-kernel, x86

[-- Attachment #1: Type: text/plain, Size: 12184 bytes --]

Hi Masahiro,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[cannot apply to v5.3-rc6 next-20190826]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Masahiro-Yamada/kbuild-change-FLAGS_-basetarget-o-to-take-the-path-relative-to-obj/20190827-071627
config: ia64-allnoconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 7.4.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.4.0 make.cross ARCH=ia64 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   arch/ia64/kernel/efi.o: In function `find_memmap_space':
   efi.c:(.text+0x2402): undefined reference to `__udivdi3'
   arch/ia64/kernel/time.o: In function `ia64_init_itm':
   time.c:(.text+0xa32): undefined reference to `__udivdi3'
   time.c:(.text+0xae2): undefined reference to `__udivdi3'
   time.c:(.text+0xb62): undefined reference to `__udivdi3'
   time.c:(.text+0xd62): undefined reference to `__udivdi3'
   arch/ia64/kernel/time.o:time.c:(.text+0xe12): more undefined references to `__udivdi3' follow
   kernel/ptrace.o: In function `ptrace_request':
   ptrace.c:(.text+0x3262): undefined reference to `__umoddi3'
   kernel/sched/core.o: In function `to_ratio':
   core.c:(.text+0x2c32): undefined reference to `__udivdi3'
   kernel/sched/cputime.o: In function `cputime_adjust':
   cputime.c:(.text+0xd72): undefined reference to `__udivdi3'
   kernel/sched/fair.o: In function `__calc_delta':
   fair.c:(.text+0x362): undefined reference to `__udivdi3'
   kernel/time/timekeeping.o: In function `scale64_check_overflow':
   timekeeping.c:(.text+0x42): undefined reference to `__umoddi3'
   timekeeping.c:(.text+0x62): undefined reference to `__udivdi3'
   timekeeping.c:(.text+0x1b2): undefined reference to `__udivdi3'
   kernel/time/timekeeping.o: In function `timekeeping_advance':
   timekeeping.c:(.text+0x1552): undefined reference to `__udivdi3'
   kernel/time/timekeeping.o: In function `tk_setup_internals.constprop.6':
   timekeeping.c:(.text+0x19b2): undefined reference to `__udivdi3'
   kernel/time/timekeeping.o: In function `get_device_system_crosststamp':
   timekeeping.c:(.text+0x3f52): undefined reference to `__umoddi3'
   timekeeping.c:(.text+0x3f72): undefined reference to `__udivdi3'
   timekeeping.c:(.text+0x3f92): undefined reference to `__udivdi3'
   kernel/time/clocksource.o: In function `clocks_calc_mult_shift':
   clocksource.c:(.text+0x4b2): undefined reference to `__udivdi3'
   kernel/time/clocksource.o: In function `clocks_calc_max_nsecs':
   clocksource.c:(.text+0xaa2): undefined reference to `__udivdi3'
   kernel/time/clocksource.o: In function `__clocksource_update_freq_scale':
   clocksource.c:(.text+0xb72): undefined reference to `__udivdi3'
   kernel/time/clocksource.o:clocksource.c:(.text+0xb82): more undefined references to `__udivdi3' follow
   mm/percpu.o: In function `pcpu_setup_first_chunk':
>> percpu.c:(.init.text+0xa02): undefined reference to `__moddi3'
>> percpu.c:(.init.text+0xae2): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0xb22): undefined reference to `__moddi3'
   percpu.c:(.init.text+0xc32): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0xc72): undefined reference to `__moddi3'
   percpu.c:(.init.text+0xd52): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0xd92): undefined reference to `__moddi3'
   percpu.c:(.init.text+0xe72): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0xeb2): undefined reference to `__moddi3'
   percpu.c:(.init.text+0xf92): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0xfd2): undefined reference to `__moddi3'
   percpu.c:(.init.text+0x10b2): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0x1132): undefined reference to `__moddi3'
   percpu.c:(.init.text+0x1242): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0x12c2): undefined reference to `__moddi3'
   percpu.c:(.init.text+0x1672): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0x16e2): undefined reference to `__moddi3'
   percpu.c:(.init.text+0x1812): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0x1882): undefined reference to `__moddi3'
   percpu.c:(.init.text+0x1a72): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0x1ae2): undefined reference to `__moddi3'
   percpu.c:(.init.text+0x1bc2): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0x1c32): undefined reference to `__moddi3'
   mm/page_alloc.o: In function `setup_per_zone_lowmem_reserve':
   page_alloc.c:(.text+0x572): undefined reference to `__udivdi3'
   mm/page_alloc.o: In function `__setup_per_zone_wmarks':
   page_alloc.c:(.text+0xb42): undefined reference to `__udivdi3'
   mm/page_alloc.o: In function `pageset_set_high_and_batch':
   page_alloc.c:(.text+0x15e2): undefined reference to `__udivdi3'
   mm/page_alloc.o: In function `find_zone_movable_pfns_for_nodes':
   page_alloc.c:(.init.text+0x9f2): undefined reference to `__udivdi3'
   page_alloc.c:(.init.text+0xa72): undefined reference to `__udivdi3'
   mm/page_alloc.o:page_alloc.c:(.init.text+0x2d82): more undefined references to `__udivdi3' follow
   mm/dmapool.o: In function `dma_pool_create':
   dmapool.c:(.text+0x3e2): undefined reference to `__umoddi3'
   mm/mempolicy.o: In function `offset_il_node':
   mempolicy.c:(.text+0x412): undefined reference to `__umoddi3'
   mm/slub.o: In function `__kmem_cache_create':
   slub.c:(.text+0x6ff2): undefined reference to `__udivdi3'
   slub.c:(.text+0x7042): undefined reference to `__udivdi3'
   slub.c:(.text+0x7302): undefined reference to `__udivdi3'
   slub.c:(.text+0x7392): undefined reference to `__udivdi3'
   slub.c:(.text+0x7732): undefined reference to `__udivdi3'
   slub.c:(.text+0x7752): undefined reference to `__umoddi3'
   slub.c:(.text+0x77b2): undefined reference to `__umoddi3'
   slub.c:(.text+0x77d2): undefined reference to `__udivdi3'
   slub.c:(.text+0x7932): undefined reference to `__umoddi3'
   slub.c:(.text+0x7992): undefined reference to `__umoddi3'
   slub.c:(.text+0x7a52): undefined reference to `__umoddi3'
   slub.c:(.text+0x7ab2): undefined reference to `__umoddi3'
   mm/quicklist.o: In function `quicklist_trim':
   quicklist.c:(.text+0x142): undefined reference to `__udivdi3'
   fs/super.o: In function `super_cache_scan':
   super.c:(.text+0x1ca2): undefined reference to `__udivdi3'
   super.c:(.text+0x1cc2): undefined reference to `__umoddi3'
   super.c:(.text+0x1cf2): undefined reference to `__udivdi3'
   super.c:(.text+0x1d42): undefined reference to `__udivdi3'
   super.c:(.text+0x1dc2): undefined reference to `__udivdi3'
   fs/inode.o: In function `timespec64_trunc':
   inode.c:(.text+0x5172): undefined reference to `__moddi3'
   fs/inode.o: In function `current_time':
   inode.c:(.text+0x52b2): undefined reference to `__moddi3'
   lib/bitmap.o: In function `bitmap_remap':
   bitmap.c:(.text+0x24c2): undefined reference to `__umoddi3'
   lib/bitmap.o: In function `bitmap_bitremap':
   bitmap.c:(.text+0x2682): undefined reference to `__moddi3'
   lib/bitmap.o: In function `bitmap_fold':
   bitmap.c:(.text+0x2982): undefined reference to `__umoddi3'
   lib/kfifo.o: In function `kfifo_copy_from_user.isra.1':
   kfifo.c:(.text+0x232): undefined reference to `__udivdi3'
   kfifo.c:(.text+0x312): undefined reference to `__udivdi3'
   lib/kfifo.o: In function `kfifo_copy_to_user.isra.2':
   kfifo.c:(.text+0x582): undefined reference to `__udivdi3'
   lib/kfifo.o: In function `__kfifo_init':
   kfifo.c:(.text+0x1302): undefined reference to `__udivdi3'
   lib/kfifo.o: In function `__kfifo_from_user':
   kfifo.c:(.text+0x1672): undefined reference to `__udivdi3'
   lib/kfifo.o:kfifo.c:(.text+0x17a2): more undefined references to `__udivdi3' follow
   lib/string_helpers.o: In function `string_get_size':
   string_helpers.c:(.text+0x282): undefined reference to `__umoddi3'
   lib/hexdump.o: In function `hex_dump_to_buffer':
   hexdump.c:(.text+0x682): undefined reference to `__umoddi3'
   hexdump.c:(.text+0x6a2): undefined reference to `__udivdi3'
   lib/kstrtox.o: In function `_parse_integer':
   kstrtox.c:(.text+0x2e2): undefined reference to `__udivdi3'
   lib/math/lcm.o: In function `lcm':
   lcm.c:(.text+0x62): undefined reference to `__udivdi3'
   lib/math/lcm.o: In function `lcm_not_zero':
   lcm.c:(.text+0x122): undefined reference to `__udivdi3'
   lib/math/reciprocal_div.o: In function `reciprocal_value':
   reciprocal_div.c:(.text+0xd2): undefined reference to `__udivdi3'
   lib/math/reciprocal_div.o:reciprocal_div.c:(.text+0x1e2): more undefined references to `__udivdi3' follow
   drivers/pci/pci.o: In function `pci_set_cacheline_size':
   pci.c:(.text+0xb7e2): undefined reference to `__umoddi3'
   drivers/pci/setup-bus.o: In function `pci_bus_distribute_available_resources':
   setup-bus.c:(.text+0x1ec2): undefined reference to `__udivdi3'
   setup-bus.c:(.text+0x1f42): undefined reference to `__udivdi3'
   setup-bus.c:(.text+0x1fc2): undefined reference to `__udivdi3'
   setup-bus.c:(.text+0x21a2): undefined reference to `__udivdi3'
   setup-bus.c:(.text+0x2212): undefined reference to `__udivdi3'
   drivers/pci/setup-bus.o:setup-bus.c:(.text+0x2282): more undefined references to `__udivdi3' follow
   drivers/acpi/acpica/exfldio.o: In function `acpi_ex_insert_into_field':
   exfldio.c:(.text+0x812): undefined reference to `__umoddi3'
   drivers/acpi/acpica/exfldio.o: In function `acpi_ex_extract_from_field':
   exfldio.c:(.text+0x1222): undefined reference to `__udivdi3'
   exfldio.c:(.text+0x1332): undefined reference to `__udivdi3'
   exfldio.c:(.text+0x1362): undefined reference to `__umoddi3'
   drivers/acpi/acpica/tbutils.o: In function `acpi_tb_parse_root_table':
   tbutils.c:(.init.text+0x462): undefined reference to `__udivdi3'
   drivers/acpi/acpica/utmath.o: In function `acpi_ut_short_divide':
   utmath.c:(.text+0x152): undefined reference to `__udivdi3'
   utmath.c:(.text+0x192): undefined reference to `__umoddi3'
   drivers/acpi/acpica/utmath.o: In function `acpi_ut_divide':
   utmath.c:(.text+0x262): undefined reference to `__udivdi3'
   utmath.c:(.text+0x2a2): undefined reference to `__umoddi3'
   drivers/tty/tty_port.o: In function `tty_port_close_start.part.1':
   tty_port.c:(.text+0x5a2): undefined reference to `__udivdi3'
   drivers/char/random.o: In function `add_device_randomness':
   random.c:(.text+0x39d2): undefined reference to `__umoddi3'
   drivers/char/random.o: In function `randomize_page':
   random.c:(.text+0x4f82): undefined reference to `__umoddi3'
   drivers/base/swnode.o: In function `software_node_read_int_array':
   swnode.c:(.text+0x12f2): undefined reference to `__udivdi3'
   drivers/firmware/efi/memmap.o: In function `__efi_memmap_init':
>> memmap.c:(.init.text+0x112): undefined reference to `__udivdi3'
   arch/ia64/hp/common/sba_iommu.o: In function `sba_init':
   sba_iommu.c:(.init.text+0x982): undefined reference to `__udivdi3'
   arch/ia64/sn/kernel/bte.o: In function `bte_copy':
   bte.c:(.text+0x3b2): undefined reference to `__moddi3'
   arch/ia64/sn/pci/tioca_provider.o: In function `tioca_bus_fixup':
   tioca_provider.c:(.text+0x662): undefined reference to `__udivdi3'
   tioca_provider.c:(.text+0x772): undefined reference to `__udivdi3'
   tioca_provider.c:(.text+0xab2): undefined reference to `__udivdi3'
   arch/ia64/sn/pci/tioca_provider.o: In function `tioca_dma_map':
   tioca_provider.c:(.text+0x1392): undefined reference to `__umoddi3'
   lib/nodemask.o: In function `node_random':
   nodemask.c:(.text+0x102): undefined reference to `__umoddi3'
   lib/vsprintf.o: In function `vsscanf':
   vsprintf.c:(.text+0xac62): undefined reference to `__udivdi3'

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 6360 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/2] kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)
@ 2019-08-27  1:36   ` kbuild test robot
  0 siblings, 0 replies; 15+ messages in thread
From: kbuild test robot @ 2019-08-27  1:36 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: kbuild-all, linux-kbuild, Andy Lutomirski, Borislav Petkov,
	H. Peter Anvin, Ingo Molnar, James Morse, Julien Thierry,
	Marc Zyngier, Michal Marek, Russell King, Suzuki K Poulose,
	Thomas Gleixner, kvmarm, linux-arm-kernel, linux-kernel, x86

[-- Attachment #1: Type: text/plain, Size: 12184 bytes --]

Hi Masahiro,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[cannot apply to v5.3-rc6 next-20190826]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Masahiro-Yamada/kbuild-change-FLAGS_-basetarget-o-to-take-the-path-relative-to-obj/20190827-071627
config: ia64-allnoconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 7.4.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.4.0 make.cross ARCH=ia64 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   arch/ia64/kernel/efi.o: In function `find_memmap_space':
   efi.c:(.text+0x2402): undefined reference to `__udivdi3'
   arch/ia64/kernel/time.o: In function `ia64_init_itm':
   time.c:(.text+0xa32): undefined reference to `__udivdi3'
   time.c:(.text+0xae2): undefined reference to `__udivdi3'
   time.c:(.text+0xb62): undefined reference to `__udivdi3'
   time.c:(.text+0xd62): undefined reference to `__udivdi3'
   arch/ia64/kernel/time.o:time.c:(.text+0xe12): more undefined references to `__udivdi3' follow
   kernel/ptrace.o: In function `ptrace_request':
   ptrace.c:(.text+0x3262): undefined reference to `__umoddi3'
   kernel/sched/core.o: In function `to_ratio':
   core.c:(.text+0x2c32): undefined reference to `__udivdi3'
   kernel/sched/cputime.o: In function `cputime_adjust':
   cputime.c:(.text+0xd72): undefined reference to `__udivdi3'
   kernel/sched/fair.o: In function `__calc_delta':
   fair.c:(.text+0x362): undefined reference to `__udivdi3'
   kernel/time/timekeeping.o: In function `scale64_check_overflow':
   timekeeping.c:(.text+0x42): undefined reference to `__umoddi3'
   timekeeping.c:(.text+0x62): undefined reference to `__udivdi3'
   timekeeping.c:(.text+0x1b2): undefined reference to `__udivdi3'
   kernel/time/timekeeping.o: In function `timekeeping_advance':
   timekeeping.c:(.text+0x1552): undefined reference to `__udivdi3'
   kernel/time/timekeeping.o: In function `tk_setup_internals.constprop.6':
   timekeeping.c:(.text+0x19b2): undefined reference to `__udivdi3'
   kernel/time/timekeeping.o: In function `get_device_system_crosststamp':
   timekeeping.c:(.text+0x3f52): undefined reference to `__umoddi3'
   timekeeping.c:(.text+0x3f72): undefined reference to `__udivdi3'
   timekeeping.c:(.text+0x3f92): undefined reference to `__udivdi3'
   kernel/time/clocksource.o: In function `clocks_calc_mult_shift':
   clocksource.c:(.text+0x4b2): undefined reference to `__udivdi3'
   kernel/time/clocksource.o: In function `clocks_calc_max_nsecs':
   clocksource.c:(.text+0xaa2): undefined reference to `__udivdi3'
   kernel/time/clocksource.o: In function `__clocksource_update_freq_scale':
   clocksource.c:(.text+0xb72): undefined reference to `__udivdi3'
   kernel/time/clocksource.o:clocksource.c:(.text+0xb82): more undefined references to `__udivdi3' follow
   mm/percpu.o: In function `pcpu_setup_first_chunk':
>> percpu.c:(.init.text+0xa02): undefined reference to `__moddi3'
>> percpu.c:(.init.text+0xae2): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0xb22): undefined reference to `__moddi3'
   percpu.c:(.init.text+0xc32): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0xc72): undefined reference to `__moddi3'
   percpu.c:(.init.text+0xd52): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0xd92): undefined reference to `__moddi3'
   percpu.c:(.init.text+0xe72): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0xeb2): undefined reference to `__moddi3'
   percpu.c:(.init.text+0xf92): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0xfd2): undefined reference to `__moddi3'
   percpu.c:(.init.text+0x10b2): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0x1132): undefined reference to `__moddi3'
   percpu.c:(.init.text+0x1242): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0x12c2): undefined reference to `__moddi3'
   percpu.c:(.init.text+0x1672): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0x16e2): undefined reference to `__moddi3'
   percpu.c:(.init.text+0x1812): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0x1882): undefined reference to `__moddi3'
   percpu.c:(.init.text+0x1a72): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0x1ae2): undefined reference to `__moddi3'
   percpu.c:(.init.text+0x1bc2): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0x1c32): undefined reference to `__moddi3'
   mm/page_alloc.o: In function `setup_per_zone_lowmem_reserve':
   page_alloc.c:(.text+0x572): undefined reference to `__udivdi3'
   mm/page_alloc.o: In function `__setup_per_zone_wmarks':
   page_alloc.c:(.text+0xb42): undefined reference to `__udivdi3'
   mm/page_alloc.o: In function `pageset_set_high_and_batch':
   page_alloc.c:(.text+0x15e2): undefined reference to `__udivdi3'
   mm/page_alloc.o: In function `find_zone_movable_pfns_for_nodes':
   page_alloc.c:(.init.text+0x9f2): undefined reference to `__udivdi3'
   page_alloc.c:(.init.text+0xa72): undefined reference to `__udivdi3'
   mm/page_alloc.o:page_alloc.c:(.init.text+0x2d82): more undefined references to `__udivdi3' follow
   mm/dmapool.o: In function `dma_pool_create':
   dmapool.c:(.text+0x3e2): undefined reference to `__umoddi3'
   mm/mempolicy.o: In function `offset_il_node':
   mempolicy.c:(.text+0x412): undefined reference to `__umoddi3'
   mm/slub.o: In function `__kmem_cache_create':
   slub.c:(.text+0x6ff2): undefined reference to `__udivdi3'
   slub.c:(.text+0x7042): undefined reference to `__udivdi3'
   slub.c:(.text+0x7302): undefined reference to `__udivdi3'
   slub.c:(.text+0x7392): undefined reference to `__udivdi3'
   slub.c:(.text+0x7732): undefined reference to `__udivdi3'
   slub.c:(.text+0x7752): undefined reference to `__umoddi3'
   slub.c:(.text+0x77b2): undefined reference to `__umoddi3'
   slub.c:(.text+0x77d2): undefined reference to `__udivdi3'
   slub.c:(.text+0x7932): undefined reference to `__umoddi3'
   slub.c:(.text+0x7992): undefined reference to `__umoddi3'
   slub.c:(.text+0x7a52): undefined reference to `__umoddi3'
   slub.c:(.text+0x7ab2): undefined reference to `__umoddi3'
   mm/quicklist.o: In function `quicklist_trim':
   quicklist.c:(.text+0x142): undefined reference to `__udivdi3'
   fs/super.o: In function `super_cache_scan':
   super.c:(.text+0x1ca2): undefined reference to `__udivdi3'
   super.c:(.text+0x1cc2): undefined reference to `__umoddi3'
   super.c:(.text+0x1cf2): undefined reference to `__udivdi3'
   super.c:(.text+0x1d42): undefined reference to `__udivdi3'
   super.c:(.text+0x1dc2): undefined reference to `__udivdi3'
   fs/inode.o: In function `timespec64_trunc':
   inode.c:(.text+0x5172): undefined reference to `__moddi3'
   fs/inode.o: In function `current_time':
   inode.c:(.text+0x52b2): undefined reference to `__moddi3'
   lib/bitmap.o: In function `bitmap_remap':
   bitmap.c:(.text+0x24c2): undefined reference to `__umoddi3'
   lib/bitmap.o: In function `bitmap_bitremap':
   bitmap.c:(.text+0x2682): undefined reference to `__moddi3'
   lib/bitmap.o: In function `bitmap_fold':
   bitmap.c:(.text+0x2982): undefined reference to `__umoddi3'
   lib/kfifo.o: In function `kfifo_copy_from_user.isra.1':
   kfifo.c:(.text+0x232): undefined reference to `__udivdi3'
   kfifo.c:(.text+0x312): undefined reference to `__udivdi3'
   lib/kfifo.o: In function `kfifo_copy_to_user.isra.2':
   kfifo.c:(.text+0x582): undefined reference to `__udivdi3'
   lib/kfifo.o: In function `__kfifo_init':
   kfifo.c:(.text+0x1302): undefined reference to `__udivdi3'
   lib/kfifo.o: In function `__kfifo_from_user':
   kfifo.c:(.text+0x1672): undefined reference to `__udivdi3'
   lib/kfifo.o:kfifo.c:(.text+0x17a2): more undefined references to `__udivdi3' follow
   lib/string_helpers.o: In function `string_get_size':
   string_helpers.c:(.text+0x282): undefined reference to `__umoddi3'
   lib/hexdump.o: In function `hex_dump_to_buffer':
   hexdump.c:(.text+0x682): undefined reference to `__umoddi3'
   hexdump.c:(.text+0x6a2): undefined reference to `__udivdi3'
   lib/kstrtox.o: In function `_parse_integer':
   kstrtox.c:(.text+0x2e2): undefined reference to `__udivdi3'
   lib/math/lcm.o: In function `lcm':
   lcm.c:(.text+0x62): undefined reference to `__udivdi3'
   lib/math/lcm.o: In function `lcm_not_zero':
   lcm.c:(.text+0x122): undefined reference to `__udivdi3'
   lib/math/reciprocal_div.o: In function `reciprocal_value':
   reciprocal_div.c:(.text+0xd2): undefined reference to `__udivdi3'
   lib/math/reciprocal_div.o:reciprocal_div.c:(.text+0x1e2): more undefined references to `__udivdi3' follow
   drivers/pci/pci.o: In function `pci_set_cacheline_size':
   pci.c:(.text+0xb7e2): undefined reference to `__umoddi3'
   drivers/pci/setup-bus.o: In function `pci_bus_distribute_available_resources':
   setup-bus.c:(.text+0x1ec2): undefined reference to `__udivdi3'
   setup-bus.c:(.text+0x1f42): undefined reference to `__udivdi3'
   setup-bus.c:(.text+0x1fc2): undefined reference to `__udivdi3'
   setup-bus.c:(.text+0x21a2): undefined reference to `__udivdi3'
   setup-bus.c:(.text+0x2212): undefined reference to `__udivdi3'
   drivers/pci/setup-bus.o:setup-bus.c:(.text+0x2282): more undefined references to `__udivdi3' follow
   drivers/acpi/acpica/exfldio.o: In function `acpi_ex_insert_into_field':
   exfldio.c:(.text+0x812): undefined reference to `__umoddi3'
   drivers/acpi/acpica/exfldio.o: In function `acpi_ex_extract_from_field':
   exfldio.c:(.text+0x1222): undefined reference to `__udivdi3'
   exfldio.c:(.text+0x1332): undefined reference to `__udivdi3'
   exfldio.c:(.text+0x1362): undefined reference to `__umoddi3'
   drivers/acpi/acpica/tbutils.o: In function `acpi_tb_parse_root_table':
   tbutils.c:(.init.text+0x462): undefined reference to `__udivdi3'
   drivers/acpi/acpica/utmath.o: In function `acpi_ut_short_divide':
   utmath.c:(.text+0x152): undefined reference to `__udivdi3'
   utmath.c:(.text+0x192): undefined reference to `__umoddi3'
   drivers/acpi/acpica/utmath.o: In function `acpi_ut_divide':
   utmath.c:(.text+0x262): undefined reference to `__udivdi3'
   utmath.c:(.text+0x2a2): undefined reference to `__umoddi3'
   drivers/tty/tty_port.o: In function `tty_port_close_start.part.1':
   tty_port.c:(.text+0x5a2): undefined reference to `__udivdi3'
   drivers/char/random.o: In function `add_device_randomness':
   random.c:(.text+0x39d2): undefined reference to `__umoddi3'
   drivers/char/random.o: In function `randomize_page':
   random.c:(.text+0x4f82): undefined reference to `__umoddi3'
   drivers/base/swnode.o: In function `software_node_read_int_array':
   swnode.c:(.text+0x12f2): undefined reference to `__udivdi3'
   drivers/firmware/efi/memmap.o: In function `__efi_memmap_init':
>> memmap.c:(.init.text+0x112): undefined reference to `__udivdi3'
   arch/ia64/hp/common/sba_iommu.o: In function `sba_init':
   sba_iommu.c:(.init.text+0x982): undefined reference to `__udivdi3'
   arch/ia64/sn/kernel/bte.o: In function `bte_copy':
   bte.c:(.text+0x3b2): undefined reference to `__moddi3'
   arch/ia64/sn/pci/tioca_provider.o: In function `tioca_bus_fixup':
   tioca_provider.c:(.text+0x662): undefined reference to `__udivdi3'
   tioca_provider.c:(.text+0x772): undefined reference to `__udivdi3'
   tioca_provider.c:(.text+0xab2): undefined reference to `__udivdi3'
   arch/ia64/sn/pci/tioca_provider.o: In function `tioca_dma_map':
   tioca_provider.c:(.text+0x1392): undefined reference to `__umoddi3'
   lib/nodemask.o: In function `node_random':
   nodemask.c:(.text+0x102): undefined reference to `__umoddi3'
   lib/vsprintf.o: In function `vsscanf':
   vsprintf.c:(.text+0xac62): undefined reference to `__udivdi3'

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 6360 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/2] kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)
@ 2019-08-27  1:36   ` kbuild test robot
  0 siblings, 0 replies; 15+ messages in thread
From: kbuild test robot @ 2019-08-27  1:36 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: linux-arm-kernel, x86, Michal Marek, linux-kbuild, Marc Zyngier,
	Russell King, linux-kernel, Masahiro Yamada, Ingo Molnar,
	Borislav Petkov, kbuild-all, Andy Lutomirski, H. Peter Anvin,
	Thomas Gleixner, kvmarm

[-- Attachment #1: Type: text/plain, Size: 12184 bytes --]

Hi Masahiro,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[cannot apply to v5.3-rc6 next-20190826]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Masahiro-Yamada/kbuild-change-FLAGS_-basetarget-o-to-take-the-path-relative-to-obj/20190827-071627
config: ia64-allnoconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 7.4.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.4.0 make.cross ARCH=ia64 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   arch/ia64/kernel/efi.o: In function `find_memmap_space':
   efi.c:(.text+0x2402): undefined reference to `__udivdi3'
   arch/ia64/kernel/time.o: In function `ia64_init_itm':
   time.c:(.text+0xa32): undefined reference to `__udivdi3'
   time.c:(.text+0xae2): undefined reference to `__udivdi3'
   time.c:(.text+0xb62): undefined reference to `__udivdi3'
   time.c:(.text+0xd62): undefined reference to `__udivdi3'
   arch/ia64/kernel/time.o:time.c:(.text+0xe12): more undefined references to `__udivdi3' follow
   kernel/ptrace.o: In function `ptrace_request':
   ptrace.c:(.text+0x3262): undefined reference to `__umoddi3'
   kernel/sched/core.o: In function `to_ratio':
   core.c:(.text+0x2c32): undefined reference to `__udivdi3'
   kernel/sched/cputime.o: In function `cputime_adjust':
   cputime.c:(.text+0xd72): undefined reference to `__udivdi3'
   kernel/sched/fair.o: In function `__calc_delta':
   fair.c:(.text+0x362): undefined reference to `__udivdi3'
   kernel/time/timekeeping.o: In function `scale64_check_overflow':
   timekeeping.c:(.text+0x42): undefined reference to `__umoddi3'
   timekeeping.c:(.text+0x62): undefined reference to `__udivdi3'
   timekeeping.c:(.text+0x1b2): undefined reference to `__udivdi3'
   kernel/time/timekeeping.o: In function `timekeeping_advance':
   timekeeping.c:(.text+0x1552): undefined reference to `__udivdi3'
   kernel/time/timekeeping.o: In function `tk_setup_internals.constprop.6':
   timekeeping.c:(.text+0x19b2): undefined reference to `__udivdi3'
   kernel/time/timekeeping.o: In function `get_device_system_crosststamp':
   timekeeping.c:(.text+0x3f52): undefined reference to `__umoddi3'
   timekeeping.c:(.text+0x3f72): undefined reference to `__udivdi3'
   timekeeping.c:(.text+0x3f92): undefined reference to `__udivdi3'
   kernel/time/clocksource.o: In function `clocks_calc_mult_shift':
   clocksource.c:(.text+0x4b2): undefined reference to `__udivdi3'
   kernel/time/clocksource.o: In function `clocks_calc_max_nsecs':
   clocksource.c:(.text+0xaa2): undefined reference to `__udivdi3'
   kernel/time/clocksource.o: In function `__clocksource_update_freq_scale':
   clocksource.c:(.text+0xb72): undefined reference to `__udivdi3'
   kernel/time/clocksource.o:clocksource.c:(.text+0xb82): more undefined references to `__udivdi3' follow
   mm/percpu.o: In function `pcpu_setup_first_chunk':
>> percpu.c:(.init.text+0xa02): undefined reference to `__moddi3'
>> percpu.c:(.init.text+0xae2): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0xb22): undefined reference to `__moddi3'
   percpu.c:(.init.text+0xc32): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0xc72): undefined reference to `__moddi3'
   percpu.c:(.init.text+0xd52): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0xd92): undefined reference to `__moddi3'
   percpu.c:(.init.text+0xe72): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0xeb2): undefined reference to `__moddi3'
   percpu.c:(.init.text+0xf92): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0xfd2): undefined reference to `__moddi3'
   percpu.c:(.init.text+0x10b2): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0x1132): undefined reference to `__moddi3'
   percpu.c:(.init.text+0x1242): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0x12c2): undefined reference to `__moddi3'
   percpu.c:(.init.text+0x1672): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0x16e2): undefined reference to `__moddi3'
   percpu.c:(.init.text+0x1812): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0x1882): undefined reference to `__moddi3'
   percpu.c:(.init.text+0x1a72): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0x1ae2): undefined reference to `__moddi3'
   percpu.c:(.init.text+0x1bc2): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0x1c32): undefined reference to `__moddi3'
   mm/page_alloc.o: In function `setup_per_zone_lowmem_reserve':
   page_alloc.c:(.text+0x572): undefined reference to `__udivdi3'
   mm/page_alloc.o: In function `__setup_per_zone_wmarks':
   page_alloc.c:(.text+0xb42): undefined reference to `__udivdi3'
   mm/page_alloc.o: In function `pageset_set_high_and_batch':
   page_alloc.c:(.text+0x15e2): undefined reference to `__udivdi3'
   mm/page_alloc.o: In function `find_zone_movable_pfns_for_nodes':
   page_alloc.c:(.init.text+0x9f2): undefined reference to `__udivdi3'
   page_alloc.c:(.init.text+0xa72): undefined reference to `__udivdi3'
   mm/page_alloc.o:page_alloc.c:(.init.text+0x2d82): more undefined references to `__udivdi3' follow
   mm/dmapool.o: In function `dma_pool_create':
   dmapool.c:(.text+0x3e2): undefined reference to `__umoddi3'
   mm/mempolicy.o: In function `offset_il_node':
   mempolicy.c:(.text+0x412): undefined reference to `__umoddi3'
   mm/slub.o: In function `__kmem_cache_create':
   slub.c:(.text+0x6ff2): undefined reference to `__udivdi3'
   slub.c:(.text+0x7042): undefined reference to `__udivdi3'
   slub.c:(.text+0x7302): undefined reference to `__udivdi3'
   slub.c:(.text+0x7392): undefined reference to `__udivdi3'
   slub.c:(.text+0x7732): undefined reference to `__udivdi3'
   slub.c:(.text+0x7752): undefined reference to `__umoddi3'
   slub.c:(.text+0x77b2): undefined reference to `__umoddi3'
   slub.c:(.text+0x77d2): undefined reference to `__udivdi3'
   slub.c:(.text+0x7932): undefined reference to `__umoddi3'
   slub.c:(.text+0x7992): undefined reference to `__umoddi3'
   slub.c:(.text+0x7a52): undefined reference to `__umoddi3'
   slub.c:(.text+0x7ab2): undefined reference to `__umoddi3'
   mm/quicklist.o: In function `quicklist_trim':
   quicklist.c:(.text+0x142): undefined reference to `__udivdi3'
   fs/super.o: In function `super_cache_scan':
   super.c:(.text+0x1ca2): undefined reference to `__udivdi3'
   super.c:(.text+0x1cc2): undefined reference to `__umoddi3'
   super.c:(.text+0x1cf2): undefined reference to `__udivdi3'
   super.c:(.text+0x1d42): undefined reference to `__udivdi3'
   super.c:(.text+0x1dc2): undefined reference to `__udivdi3'
   fs/inode.o: In function `timespec64_trunc':
   inode.c:(.text+0x5172): undefined reference to `__moddi3'
   fs/inode.o: In function `current_time':
   inode.c:(.text+0x52b2): undefined reference to `__moddi3'
   lib/bitmap.o: In function `bitmap_remap':
   bitmap.c:(.text+0x24c2): undefined reference to `__umoddi3'
   lib/bitmap.o: In function `bitmap_bitremap':
   bitmap.c:(.text+0x2682): undefined reference to `__moddi3'
   lib/bitmap.o: In function `bitmap_fold':
   bitmap.c:(.text+0x2982): undefined reference to `__umoddi3'
   lib/kfifo.o: In function `kfifo_copy_from_user.isra.1':
   kfifo.c:(.text+0x232): undefined reference to `__udivdi3'
   kfifo.c:(.text+0x312): undefined reference to `__udivdi3'
   lib/kfifo.o: In function `kfifo_copy_to_user.isra.2':
   kfifo.c:(.text+0x582): undefined reference to `__udivdi3'
   lib/kfifo.o: In function `__kfifo_init':
   kfifo.c:(.text+0x1302): undefined reference to `__udivdi3'
   lib/kfifo.o: In function `__kfifo_from_user':
   kfifo.c:(.text+0x1672): undefined reference to `__udivdi3'
   lib/kfifo.o:kfifo.c:(.text+0x17a2): more undefined references to `__udivdi3' follow
   lib/string_helpers.o: In function `string_get_size':
   string_helpers.c:(.text+0x282): undefined reference to `__umoddi3'
   lib/hexdump.o: In function `hex_dump_to_buffer':
   hexdump.c:(.text+0x682): undefined reference to `__umoddi3'
   hexdump.c:(.text+0x6a2): undefined reference to `__udivdi3'
   lib/kstrtox.o: In function `_parse_integer':
   kstrtox.c:(.text+0x2e2): undefined reference to `__udivdi3'
   lib/math/lcm.o: In function `lcm':
   lcm.c:(.text+0x62): undefined reference to `__udivdi3'
   lib/math/lcm.o: In function `lcm_not_zero':
   lcm.c:(.text+0x122): undefined reference to `__udivdi3'
   lib/math/reciprocal_div.o: In function `reciprocal_value':
   reciprocal_div.c:(.text+0xd2): undefined reference to `__udivdi3'
   lib/math/reciprocal_div.o:reciprocal_div.c:(.text+0x1e2): more undefined references to `__udivdi3' follow
   drivers/pci/pci.o: In function `pci_set_cacheline_size':
   pci.c:(.text+0xb7e2): undefined reference to `__umoddi3'
   drivers/pci/setup-bus.o: In function `pci_bus_distribute_available_resources':
   setup-bus.c:(.text+0x1ec2): undefined reference to `__udivdi3'
   setup-bus.c:(.text+0x1f42): undefined reference to `__udivdi3'
   setup-bus.c:(.text+0x1fc2): undefined reference to `__udivdi3'
   setup-bus.c:(.text+0x21a2): undefined reference to `__udivdi3'
   setup-bus.c:(.text+0x2212): undefined reference to `__udivdi3'
   drivers/pci/setup-bus.o:setup-bus.c:(.text+0x2282): more undefined references to `__udivdi3' follow
   drivers/acpi/acpica/exfldio.o: In function `acpi_ex_insert_into_field':
   exfldio.c:(.text+0x812): undefined reference to `__umoddi3'
   drivers/acpi/acpica/exfldio.o: In function `acpi_ex_extract_from_field':
   exfldio.c:(.text+0x1222): undefined reference to `__udivdi3'
   exfldio.c:(.text+0x1332): undefined reference to `__udivdi3'
   exfldio.c:(.text+0x1362): undefined reference to `__umoddi3'
   drivers/acpi/acpica/tbutils.o: In function `acpi_tb_parse_root_table':
   tbutils.c:(.init.text+0x462): undefined reference to `__udivdi3'
   drivers/acpi/acpica/utmath.o: In function `acpi_ut_short_divide':
   utmath.c:(.text+0x152): undefined reference to `__udivdi3'
   utmath.c:(.text+0x192): undefined reference to `__umoddi3'
   drivers/acpi/acpica/utmath.o: In function `acpi_ut_divide':
   utmath.c:(.text+0x262): undefined reference to `__udivdi3'
   utmath.c:(.text+0x2a2): undefined reference to `__umoddi3'
   drivers/tty/tty_port.o: In function `tty_port_close_start.part.1':
   tty_port.c:(.text+0x5a2): undefined reference to `__udivdi3'
   drivers/char/random.o: In function `add_device_randomness':
   random.c:(.text+0x39d2): undefined reference to `__umoddi3'
   drivers/char/random.o: In function `randomize_page':
   random.c:(.text+0x4f82): undefined reference to `__umoddi3'
   drivers/base/swnode.o: In function `software_node_read_int_array':
   swnode.c:(.text+0x12f2): undefined reference to `__udivdi3'
   drivers/firmware/efi/memmap.o: In function `__efi_memmap_init':
>> memmap.c:(.init.text+0x112): undefined reference to `__udivdi3'
   arch/ia64/hp/common/sba_iommu.o: In function `sba_init':
   sba_iommu.c:(.init.text+0x982): undefined reference to `__udivdi3'
   arch/ia64/sn/kernel/bte.o: In function `bte_copy':
   bte.c:(.text+0x3b2): undefined reference to `__moddi3'
   arch/ia64/sn/pci/tioca_provider.o: In function `tioca_bus_fixup':
   tioca_provider.c:(.text+0x662): undefined reference to `__udivdi3'
   tioca_provider.c:(.text+0x772): undefined reference to `__udivdi3'
   tioca_provider.c:(.text+0xab2): undefined reference to `__udivdi3'
   arch/ia64/sn/pci/tioca_provider.o: In function `tioca_dma_map':
   tioca_provider.c:(.text+0x1392): undefined reference to `__umoddi3'
   lib/nodemask.o: In function `node_random':
   nodemask.c:(.text+0x102): undefined reference to `__umoddi3'
   lib/vsprintf.o: In function `vsscanf':
   vsprintf.c:(.text+0xac62): undefined reference to `__udivdi3'

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 6360 bytes --]

[-- Attachment #3: Type: text/plain, Size: 151 bytes --]

_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/2] kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)
@ 2019-08-27  1:36   ` kbuild test robot
  0 siblings, 0 replies; 15+ messages in thread
From: kbuild test robot @ 2019-08-27  1:36 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: linux-arm-kernel, x86, Michal Marek, linux-kbuild, Marc Zyngier,
	Suzuki K Poulose, Russell King, linux-kernel, Masahiro Yamada,
	Ingo Molnar, Borislav Petkov, kbuild-all, Andy Lutomirski,
	H. Peter Anvin, James Morse, Thomas Gleixner, kvmarm,
	Julien Thierry

[-- Attachment #1: Type: text/plain, Size: 12184 bytes --]

Hi Masahiro,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[cannot apply to v5.3-rc6 next-20190826]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Masahiro-Yamada/kbuild-change-FLAGS_-basetarget-o-to-take-the-path-relative-to-obj/20190827-071627
config: ia64-allnoconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 7.4.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.4.0 make.cross ARCH=ia64 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   arch/ia64/kernel/efi.o: In function `find_memmap_space':
   efi.c:(.text+0x2402): undefined reference to `__udivdi3'
   arch/ia64/kernel/time.o: In function `ia64_init_itm':
   time.c:(.text+0xa32): undefined reference to `__udivdi3'
   time.c:(.text+0xae2): undefined reference to `__udivdi3'
   time.c:(.text+0xb62): undefined reference to `__udivdi3'
   time.c:(.text+0xd62): undefined reference to `__udivdi3'
   arch/ia64/kernel/time.o:time.c:(.text+0xe12): more undefined references to `__udivdi3' follow
   kernel/ptrace.o: In function `ptrace_request':
   ptrace.c:(.text+0x3262): undefined reference to `__umoddi3'
   kernel/sched/core.o: In function `to_ratio':
   core.c:(.text+0x2c32): undefined reference to `__udivdi3'
   kernel/sched/cputime.o: In function `cputime_adjust':
   cputime.c:(.text+0xd72): undefined reference to `__udivdi3'
   kernel/sched/fair.o: In function `__calc_delta':
   fair.c:(.text+0x362): undefined reference to `__udivdi3'
   kernel/time/timekeeping.o: In function `scale64_check_overflow':
   timekeeping.c:(.text+0x42): undefined reference to `__umoddi3'
   timekeeping.c:(.text+0x62): undefined reference to `__udivdi3'
   timekeeping.c:(.text+0x1b2): undefined reference to `__udivdi3'
   kernel/time/timekeeping.o: In function `timekeeping_advance':
   timekeeping.c:(.text+0x1552): undefined reference to `__udivdi3'
   kernel/time/timekeeping.o: In function `tk_setup_internals.constprop.6':
   timekeeping.c:(.text+0x19b2): undefined reference to `__udivdi3'
   kernel/time/timekeeping.o: In function `get_device_system_crosststamp':
   timekeeping.c:(.text+0x3f52): undefined reference to `__umoddi3'
   timekeeping.c:(.text+0x3f72): undefined reference to `__udivdi3'
   timekeeping.c:(.text+0x3f92): undefined reference to `__udivdi3'
   kernel/time/clocksource.o: In function `clocks_calc_mult_shift':
   clocksource.c:(.text+0x4b2): undefined reference to `__udivdi3'
   kernel/time/clocksource.o: In function `clocks_calc_max_nsecs':
   clocksource.c:(.text+0xaa2): undefined reference to `__udivdi3'
   kernel/time/clocksource.o: In function `__clocksource_update_freq_scale':
   clocksource.c:(.text+0xb72): undefined reference to `__udivdi3'
   kernel/time/clocksource.o:clocksource.c:(.text+0xb82): more undefined references to `__udivdi3' follow
   mm/percpu.o: In function `pcpu_setup_first_chunk':
>> percpu.c:(.init.text+0xa02): undefined reference to `__moddi3'
>> percpu.c:(.init.text+0xae2): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0xb22): undefined reference to `__moddi3'
   percpu.c:(.init.text+0xc32): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0xc72): undefined reference to `__moddi3'
   percpu.c:(.init.text+0xd52): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0xd92): undefined reference to `__moddi3'
   percpu.c:(.init.text+0xe72): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0xeb2): undefined reference to `__moddi3'
   percpu.c:(.init.text+0xf92): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0xfd2): undefined reference to `__moddi3'
   percpu.c:(.init.text+0x10b2): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0x1132): undefined reference to `__moddi3'
   percpu.c:(.init.text+0x1242): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0x12c2): undefined reference to `__moddi3'
   percpu.c:(.init.text+0x1672): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0x16e2): undefined reference to `__moddi3'
   percpu.c:(.init.text+0x1812): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0x1882): undefined reference to `__moddi3'
   percpu.c:(.init.text+0x1a72): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0x1ae2): undefined reference to `__moddi3'
   percpu.c:(.init.text+0x1bc2): undefined reference to `__udivdi3'
   percpu.c:(.init.text+0x1c32): undefined reference to `__moddi3'
   mm/page_alloc.o: In function `setup_per_zone_lowmem_reserve':
   page_alloc.c:(.text+0x572): undefined reference to `__udivdi3'
   mm/page_alloc.o: In function `__setup_per_zone_wmarks':
   page_alloc.c:(.text+0xb42): undefined reference to `__udivdi3'
   mm/page_alloc.o: In function `pageset_set_high_and_batch':
   page_alloc.c:(.text+0x15e2): undefined reference to `__udivdi3'
   mm/page_alloc.o: In function `find_zone_movable_pfns_for_nodes':
   page_alloc.c:(.init.text+0x9f2): undefined reference to `__udivdi3'
   page_alloc.c:(.init.text+0xa72): undefined reference to `__udivdi3'
   mm/page_alloc.o:page_alloc.c:(.init.text+0x2d82): more undefined references to `__udivdi3' follow
   mm/dmapool.o: In function `dma_pool_create':
   dmapool.c:(.text+0x3e2): undefined reference to `__umoddi3'
   mm/mempolicy.o: In function `offset_il_node':
   mempolicy.c:(.text+0x412): undefined reference to `__umoddi3'
   mm/slub.o: In function `__kmem_cache_create':
   slub.c:(.text+0x6ff2): undefined reference to `__udivdi3'
   slub.c:(.text+0x7042): undefined reference to `__udivdi3'
   slub.c:(.text+0x7302): undefined reference to `__udivdi3'
   slub.c:(.text+0x7392): undefined reference to `__udivdi3'
   slub.c:(.text+0x7732): undefined reference to `__udivdi3'
   slub.c:(.text+0x7752): undefined reference to `__umoddi3'
   slub.c:(.text+0x77b2): undefined reference to `__umoddi3'
   slub.c:(.text+0x77d2): undefined reference to `__udivdi3'
   slub.c:(.text+0x7932): undefined reference to `__umoddi3'
   slub.c:(.text+0x7992): undefined reference to `__umoddi3'
   slub.c:(.text+0x7a52): undefined reference to `__umoddi3'
   slub.c:(.text+0x7ab2): undefined reference to `__umoddi3'
   mm/quicklist.o: In function `quicklist_trim':
   quicklist.c:(.text+0x142): undefined reference to `__udivdi3'
   fs/super.o: In function `super_cache_scan':
   super.c:(.text+0x1ca2): undefined reference to `__udivdi3'
   super.c:(.text+0x1cc2): undefined reference to `__umoddi3'
   super.c:(.text+0x1cf2): undefined reference to `__udivdi3'
   super.c:(.text+0x1d42): undefined reference to `__udivdi3'
   super.c:(.text+0x1dc2): undefined reference to `__udivdi3'
   fs/inode.o: In function `timespec64_trunc':
   inode.c:(.text+0x5172): undefined reference to `__moddi3'
   fs/inode.o: In function `current_time':
   inode.c:(.text+0x52b2): undefined reference to `__moddi3'
   lib/bitmap.o: In function `bitmap_remap':
   bitmap.c:(.text+0x24c2): undefined reference to `__umoddi3'
   lib/bitmap.o: In function `bitmap_bitremap':
   bitmap.c:(.text+0x2682): undefined reference to `__moddi3'
   lib/bitmap.o: In function `bitmap_fold':
   bitmap.c:(.text+0x2982): undefined reference to `__umoddi3'
   lib/kfifo.o: In function `kfifo_copy_from_user.isra.1':
   kfifo.c:(.text+0x232): undefined reference to `__udivdi3'
   kfifo.c:(.text+0x312): undefined reference to `__udivdi3'
   lib/kfifo.o: In function `kfifo_copy_to_user.isra.2':
   kfifo.c:(.text+0x582): undefined reference to `__udivdi3'
   lib/kfifo.o: In function `__kfifo_init':
   kfifo.c:(.text+0x1302): undefined reference to `__udivdi3'
   lib/kfifo.o: In function `__kfifo_from_user':
   kfifo.c:(.text+0x1672): undefined reference to `__udivdi3'
   lib/kfifo.o:kfifo.c:(.text+0x17a2): more undefined references to `__udivdi3' follow
   lib/string_helpers.o: In function `string_get_size':
   string_helpers.c:(.text+0x282): undefined reference to `__umoddi3'
   lib/hexdump.o: In function `hex_dump_to_buffer':
   hexdump.c:(.text+0x682): undefined reference to `__umoddi3'
   hexdump.c:(.text+0x6a2): undefined reference to `__udivdi3'
   lib/kstrtox.o: In function `_parse_integer':
   kstrtox.c:(.text+0x2e2): undefined reference to `__udivdi3'
   lib/math/lcm.o: In function `lcm':
   lcm.c:(.text+0x62): undefined reference to `__udivdi3'
   lib/math/lcm.o: In function `lcm_not_zero':
   lcm.c:(.text+0x122): undefined reference to `__udivdi3'
   lib/math/reciprocal_div.o: In function `reciprocal_value':
   reciprocal_div.c:(.text+0xd2): undefined reference to `__udivdi3'
   lib/math/reciprocal_div.o:reciprocal_div.c:(.text+0x1e2): more undefined references to `__udivdi3' follow
   drivers/pci/pci.o: In function `pci_set_cacheline_size':
   pci.c:(.text+0xb7e2): undefined reference to `__umoddi3'
   drivers/pci/setup-bus.o: In function `pci_bus_distribute_available_resources':
   setup-bus.c:(.text+0x1ec2): undefined reference to `__udivdi3'
   setup-bus.c:(.text+0x1f42): undefined reference to `__udivdi3'
   setup-bus.c:(.text+0x1fc2): undefined reference to `__udivdi3'
   setup-bus.c:(.text+0x21a2): undefined reference to `__udivdi3'
   setup-bus.c:(.text+0x2212): undefined reference to `__udivdi3'
   drivers/pci/setup-bus.o:setup-bus.c:(.text+0x2282): more undefined references to `__udivdi3' follow
   drivers/acpi/acpica/exfldio.o: In function `acpi_ex_insert_into_field':
   exfldio.c:(.text+0x812): undefined reference to `__umoddi3'
   drivers/acpi/acpica/exfldio.o: In function `acpi_ex_extract_from_field':
   exfldio.c:(.text+0x1222): undefined reference to `__udivdi3'
   exfldio.c:(.text+0x1332): undefined reference to `__udivdi3'
   exfldio.c:(.text+0x1362): undefined reference to `__umoddi3'
   drivers/acpi/acpica/tbutils.o: In function `acpi_tb_parse_root_table':
   tbutils.c:(.init.text+0x462): undefined reference to `__udivdi3'
   drivers/acpi/acpica/utmath.o: In function `acpi_ut_short_divide':
   utmath.c:(.text+0x152): undefined reference to `__udivdi3'
   utmath.c:(.text+0x192): undefined reference to `__umoddi3'
   drivers/acpi/acpica/utmath.o: In function `acpi_ut_divide':
   utmath.c:(.text+0x262): undefined reference to `__udivdi3'
   utmath.c:(.text+0x2a2): undefined reference to `__umoddi3'
   drivers/tty/tty_port.o: In function `tty_port_close_start.part.1':
   tty_port.c:(.text+0x5a2): undefined reference to `__udivdi3'
   drivers/char/random.o: In function `add_device_randomness':
   random.c:(.text+0x39d2): undefined reference to `__umoddi3'
   drivers/char/random.o: In function `randomize_page':
   random.c:(.text+0x4f82): undefined reference to `__umoddi3'
   drivers/base/swnode.o: In function `software_node_read_int_array':
   swnode.c:(.text+0x12f2): undefined reference to `__udivdi3'
   drivers/firmware/efi/memmap.o: In function `__efi_memmap_init':
>> memmap.c:(.init.text+0x112): undefined reference to `__udivdi3'
   arch/ia64/hp/common/sba_iommu.o: In function `sba_init':
   sba_iommu.c:(.init.text+0x982): undefined reference to `__udivdi3'
   arch/ia64/sn/kernel/bte.o: In function `bte_copy':
   bte.c:(.text+0x3b2): undefined reference to `__moddi3'
   arch/ia64/sn/pci/tioca_provider.o: In function `tioca_bus_fixup':
   tioca_provider.c:(.text+0x662): undefined reference to `__udivdi3'
   tioca_provider.c:(.text+0x772): undefined reference to `__udivdi3'
   tioca_provider.c:(.text+0xab2): undefined reference to `__udivdi3'
   arch/ia64/sn/pci/tioca_provider.o: In function `tioca_dma_map':
   tioca_provider.c:(.text+0x1392): undefined reference to `__umoddi3'
   lib/nodemask.o: In function `node_random':
   nodemask.c:(.text+0x102): undefined reference to `__umoddi3'
   lib/vsprintf.o: In function `vsscanf':
   vsprintf.c:(.text+0xac62): undefined reference to `__udivdi3'

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 6360 bytes --]

[-- Attachment #3: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2019-08-27  1:39 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-25 17:28 [PATCH 1/2] kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj) Masahiro Yamada
2019-08-25 17:28 ` Masahiro Yamada
2019-08-25 17:28 ` Masahiro Yamada
2019-08-25 17:28 ` [PATCH 2/2] kconfig: split util.c out of parser.y Masahiro Yamada
2019-08-26  9:17 ` [PATCH 1/2] kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj) Marc Zyngier
2019-08-26  9:17   ` Marc Zyngier
2019-08-26  9:17   ` Marc Zyngier
2019-08-27  0:29 ` kbuild test robot
2019-08-27  0:29   ` kbuild test robot
2019-08-27  0:29   ` kbuild test robot
2019-08-27  0:29   ` kbuild test robot
2019-08-27  1:36 ` kbuild test robot
2019-08-27  1:36   ` kbuild test robot
2019-08-27  1:36   ` kbuild test robot
2019-08-27  1:36   ` kbuild test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.