# git rev-parse -q --verify aa9581108f498991e309c4a90b1af0805d2e41b5^{commit} aa9581108f498991e309c4a90b1af0805d2e41b5 already have revision, skipping fetch # git checkout -q -f -B kisskb aa9581108f498991e309c4a90b1af0805d2e41b5 # git clean -qxdf # < git log -1 # commit aa9581108f498991e309c4a90b1af0805d2e41b5 # Author: Masahiro Yamada # Date: Wed Nov 6 20:23:57 2019 +0900 # # modpost: add an option to suppress 'exported twice' warnings # # Since commit "modpost: do not set ->preloaded for symbols from # Module.symvers", the modpost always warns about symbols exported # multiple times. # # Generally, I believe it is a good thing to show a warning when the # same symbol name is exported twice. This avoids the accidental symbol # conflict. # # However, in some cases, we build an external module to provide a # different version/variant of the in-kernel module, overriding the # same set of exported symbols. # # At least, there is one use-case in the upstream code; # tools/testing/nvdimm/libnvdimm.ko replaces drivers/nvdimm/libnvdimm.ko # in order to link it against mocked version of core kernel symbols. # # Now, this emits a lots of 'exported twice' warnings: # # https://lkml.org/lkml/2019/10/31/627 # # To suppress those, add a new option KBUILD_MULTI_EXPORT_NO_WARN. # # If you intentionally override the existing symbols, you can pass it # from the command line: # # make M=tools/testing/nvdimm KBUILD_MULTI_EXPORT_NO_WARN=1 # # Or, more conveniently, you can add it to the module Makefile, so # you can still do: # # make M=tools/testing/nvdimm # # without sprinkling the warnings. # # Reported-by: Jeff Moyer # Signed-off-by: Masahiro Yamada # Tested-by: Jeff Moyer # < /opt/cross/kisskb/gcc-4.6.3-nolibc/x86_64-linux/bin/x86_64-linux-gcc --version # < /opt/cross/kisskb/gcc-4.6.3-nolibc/x86_64-linux/bin/x86_64-linux-ld --version # < git log --format=%s --max-count=1 aa9581108f498991e309c4a90b1af0805d2e41b5 # < make -s -j 48 ARCH=x86_64 O=/kisskb/build/kbuild_x86_64-allnoconfig_x86_64-gcc4.6 CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/x86_64-linux/bin/x86_64-linux- allnoconfig # make -s -j 48 ARCH=x86_64 O=/kisskb/build/kbuild_x86_64-allnoconfig_x86_64-gcc4.6 CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/x86_64-linux/bin/x86_64-linux- /kisskb/src/tools/objtool /kisskb/src/arch/x86/kernel/apic/io_apic.c: In function 'mp_map_pin_to_irq': /kisskb/src/arch/x86/kernel/apic/io_apic.c:1037:6: warning: 'irq' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/kernel/printk/printk.c: In function 'devkmsg_sysctl_set_loglvl': /kisskb/src/kernel/printk/printk.c:204:16: warning: 'old' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/arch/x86/kernel/e820.c: In function 'e820__setup_pci_gap': /kisskb/src/arch/x86/kernel/e820.c:664:16: warning: 'gapstart' may be used uninitialized in this function [-Wuninitialized] Completed OK # rm -rf /kisskb/build/kbuild_x86_64-allnoconfig_x86_64-gcc4.6 # Build took: 0:00:14.718607