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 <[email protected]>
---
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
On Sun, 25 Aug 2019 18:28:32 +0100,
Masahiro Yamada <[email protected]> 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 <[email protected]>
> ---
>
> 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 <[email protected]>
Thanks,
M.
--
Jazz is not dead, it just smells funny.
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 <[email protected]>
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 <[email protected]>
:::::: CC: Daniel Vetter <[email protected]>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
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 <[email protected]>
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