Recently we have setup clang build and found that, MIPS + clang-11 + allnoconfig build failed MIPS + clang-11 + tinyconfig build failed
MIPS + clang-10 + allnoconfig build failed MIPS + clang-10 + tinyconfig build failed
We have noticed these build failures on - stable-4.19 - stable-5.4 - stable-5.9 - mainline - next-master
FYI, The defconfig builds are successful. BTW, May I know what are the configs you build often ?
Steps to reproduce build failure: ----------------------------------------- # sudo pip3 install -U tuxmake # tuxmake --runtime docker --target-arch mips --toolchain clang-11 --kconfig allnoconfig # tuxmake --runtime docker --target-arch mips --toolchain clang-11 --kconfig tinyconfig
Build failed log: ake --silent --keep-going --jobs=16 O=/home/tuxbuild/.cache/tuxmake/builds/2/tmp ARCH=mips CROSS_COMPILE=mips-linux-gnu- 'HOSTCC=sccache clang' 'CC=sccache clang' allnoconfig make --silent --keep-going --jobs=16 O=/home/tuxbuild/.cache/tuxmake/builds/2/tmp ARCH=mips CROSS_COMPILE=mips-linux-gnu- 'HOSTCC=sccache clang' 'CC=sccache clang' /builds/1kl9SVppm6wRdzlQ3UcQKIBaUrx/arch/mips/vdso/elf.S:14:1: warning: DWARF2 only supports one section per compilation unit .pushsection .note.Linux, "a",@note ; .balign 4 ; .long 2f - 1f ; .long 4484f - 3f ; .long 0 ; 1:.asciz "Linux" ; 2:.balign 4 ; 3: ^ /builds/1kl9SVppm6wRdzlQ3UcQKIBaUrx/arch/mips/vdso/elf.S:34:2: warning: DWARF2 only supports one section per compilation unit .section .mips_abiflags, "a" ^ /builds/1kl9SVppm6wRdzlQ3UcQKIBaUrx/arch/mips/lib/uncached.c:45:6: warning: variable 'sp' is uninitialized when used here [-Wuninitialized] if (sp >= (long)CKSEG0 && sp < (long)CKSEG2) ^~ /builds/1kl9SVppm6wRdzlQ3UcQKIBaUrx/arch/mips/lib/uncached.c:40:18: note: initialize the variable 'sp' to silence this warning register long sp __asm__("$sp"); ^ = 0 1 warning generated. WARNING: modpost: vmlinux.o(.text+0x1a124): Section mismatch in reference from the function r4k_cache_init() to the function .init.text:loongson3_sc_init() The function r4k_cache_init() references the function __init loongson3_sc_init(). This is often because r4k_cache_init lacks a __init annotation or the annotation of loongson3_sc_init is wrong. WARNING: modpost: vmlinux.o(.text+0x1f1c8): Section mismatch in reference from the function mips_sc_init() to the function .init.text:mips_sc_probe() The function mips_sc_init() references the function __init mips_sc_probe(). This is often because mips_sc_init lacks a __init annotation or the annotation of mips_sc_probe is wrong. FATAL: modpost: Section mismatches detected. Set CONFIG_SECTION_MISMATCH_WARN_ONLY=y to allow them. make[2]: *** [/builds/1kl9SVppm6wRdzlQ3UcQKIBaUrx/scripts/Makefile.modpost:59: vmlinux.symvers] Error 1
-- Linaro LKFT https://lkft.linaro.org
On Thu, Dec 10, 2020 at 9:18 AM Naresh Kamboju naresh.kamboju@linaro.org wrote:
Recently we have setup clang build and found that, MIPS + clang-11 + allnoconfig build failed MIPS + clang-11 + tinyconfig build failed
MIPS + clang-10 + allnoconfig build failed MIPS + clang-10 + tinyconfig build failed
We have noticed these build failures on
- stable-4.19
- stable-5.4
- stable-5.9
- mainline
- next-master
FYI, The defconfig builds are successful. BTW, May I know what are the configs you build often ?
Hi Naresh, thank you again for these reports; they are invaluable. We were testing malta_kvm_guest_defconfig for ARCH=mips and ARCH=mipsel. We should work to get those configs building/tested as well.
"were testing" past tense, because TravisCI just nuked our builds! https://blog.travis-ci.com/oss-announcement
So we're running with one CI system down at the moment. I'm working with Dan on leveraging tuxbuild and github actions.
Steps to reproduce build failure:
# sudo pip3 install -U tuxmake # tuxmake --runtime docker --target-arch mips --toolchain clang-11 --kconfig allnoconfig # tuxmake --runtime docker --target-arch mips --toolchain clang-11 --kconfig tinyconfig
Build failed log: ake --silent --keep-going --jobs=16 O=/home/tuxbuild/.cache/tuxmake/builds/2/tmp ARCH=mips CROSS_COMPILE=mips-linux-gnu- 'HOSTCC=sccache clang' 'CC=sccache clang' allnoconfig make --silent --keep-going --jobs=16 O=/home/tuxbuild/.cache/tuxmake/builds/2/tmp ARCH=mips CROSS_COMPILE=mips-linux-gnu- 'HOSTCC=sccache clang' 'CC=sccache clang' /builds/1kl9SVppm6wRdzlQ3UcQKIBaUrx/arch/mips/vdso/elf.S:14:1: warning: DWARF2 only supports one section per compilation unit .pushsection .note.Linux, "a",@note ; .balign 4 ; .long 2f - 1f ; .long 4484f - 3f ; .long 0 ; 1:.asciz "Linux" ; 2:.balign 4 ; 3: ^ /builds/1kl9SVppm6wRdzlQ3UcQKIBaUrx/arch/mips/vdso/elf.S:34:2: warning: DWARF2 only supports one section per compilation unit .section .mips_abiflags, "a" ^
So this is likely the vdso resetting KBUILD_CFLAGS (common issue) which is dropping -no-integrated-as, but setting -Wa,-gdwarf-2, which we disabled in the top level Makefile.
/builds/1kl9SVppm6wRdzlQ3UcQKIBaUrx/arch/mips/lib/uncached.c:45:6: warning: variable 'sp' is uninitialized when used here [-Wuninitialized] if (sp >= (long)CKSEG0 && sp < (long)CKSEG2) ^~ /builds/1kl9SVppm6wRdzlQ3UcQKIBaUrx/arch/mips/lib/uncached.c:40:18: note: initialize the variable 'sp' to silence this warning register long sp __asm__("$sp"); ^ = 0
I think we recently discussed this upstream. https://lore.kernel.org/linux-mips/alpine.LFD.2.21.2012061431190.656242@eddi...
1 warning generated. WARNING: modpost: vmlinux.o(.text+0x1a124): Section mismatch in reference from the function r4k_cache_init() to the function .init.text:loongson3_sc_init() The function r4k_cache_init() references the function __init loongson3_sc_init(). This is often because r4k_cache_init lacks a __init annotation or the annotation of loongson3_sc_init is wrong. WARNING: modpost: vmlinux.o(.text+0x1f1c8): Section mismatch in reference from the function mips_sc_init() to the function .init.text:mips_sc_probe() The function mips_sc_init() references the function __init mips_sc_probe(). This is often because mips_sc_init lacks a __init annotation or the annotation of mips_sc_probe is wrong. FATAL: modpost: Section mismatches detected. Set CONFIG_SECTION_MISMATCH_WARN_ONLY=y to allow them. make[2]: *** [/builds/1kl9SVppm6wRdzlQ3UcQKIBaUrx/scripts/Makefile.modpost:59: vmlinux.symvers] Error 1
Anders sent a patch for this, too, IIRC. Once the above fixes land upstream, we probably need to follow up on ensuring they get picked up into the affected branches of stable.