linux-arm-kernel.lists.infradead.org archive mirror
 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
  2019-08-26  9:17 ` Marc Zyngier
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ 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] 4+ messages in thread

* Re: [PATCH 1/2] kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)
  2019-08-25 17:28 [PATCH 1/2] kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj) Masahiro Yamada
@ 2019-08-26  9:17 ` Marc Zyngier
  2019-08-27  0:29 ` kbuild test robot
  2019-08-27  1:36 ` kbuild test robot
  2 siblings, 0 replies; 4+ 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] 4+ messages in thread

* Re: [PATCH 1/2] kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)
  2019-08-25 17:28 [PATCH 1/2] kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj) Masahiro Yamada
  2019-08-26  9:17 ` Marc Zyngier
@ 2019-08-27  0:29 ` kbuild test robot
  2019-08-27  1:36 ` kbuild test robot
  2 siblings, 0 replies; 4+ 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] 4+ messages in thread

* Re: [PATCH 1/2] kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)
  2019-08-25 17:28 [PATCH 1/2] kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj) Masahiro Yamada
  2019-08-26  9:17 ` Marc Zyngier
  2019-08-27  0:29 ` kbuild test robot
@ 2019-08-27  1:36 ` kbuild test robot
  2 siblings, 0 replies; 4+ 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] 4+ messages in thread

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

Thread overview: 4+ 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-26  9:17 ` Marc Zyngier
2019-08-27  0:29 ` kbuild test robot
2019-08-27  1:36 ` kbuild test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).