Hi Naresh,
Thank you for the testing and report.
On Fri, Mar 19, 2021 at 12:50:42PM +0530, Naresh Kamboju wrote:
Linux mainline master build breaks for powerpc defconfig. There are multiple errors / warnings with clang-12 and clang-11 and 10.
- powerpc (defconfig) with clang-12
- powerpc (defconfig) with clang-11
- powerpc (defconfig) with clang-10
The following build errors / warnings triggered with clang-12. make --silent --keep-going --jobs=8 O=/home/tuxbuild/.cache/tuxmake/builds/1/tmp LLVM=1 ARCH=powerpc CROSS_COMPILE=powerpc64le-linux-gnu- 'HOSTCC=sccache clang' 'CC=sccache clang' /builds/linux/arch/powerpc/kvm/book3s_hv_nested.c:264:6: error: stack frame size of 2480 bytes in function 'kvmhv_enter_nested_guest' [-Werror,-Wframe-larger-than=] long kvmhv_enter_nested_guest(struct kvm_vcpu *vcpu) ^ 1 error generated. make[3]: *** [/builds/linux/scripts/Makefile.build:271: arch/powerpc/kvm/book3s_hv_nested.o] Error 1
Reported-by: Naresh Kamboju naresh.kamboju@linaro.org
Yes, unfortunately, this is a clang-12 regression that was exposed by commit 97e4910232fa ("linux/compiler-clang.h: define HAVE_BUILTIN_BSWAP*") and it is being tracked on both our GitHub issue tracker and LLVM's bugzilla:
https://github.com/ClangBuiltLinux/linux/issues/1292 https://bugs.llvm.org/show_bug.cgi?id=49610
Once it has been sorted out, we can potentially work around that by just raising the limit for that particular file (not sure what the PowerPC maintainers will want to do).
The following build errors / warnings triggered with clang-10 and clang-11.
- powerpc (defconfig) with clang-11
- powerpc (defconfig) with clang-10
make --silent --keep-going --jobs=8 O=/home/tuxbuild/.cache/tuxmake/builds/1/tmp LLVM=1 ARCH=powerpc CROSS_COMPILE=powerpc64le-linux-gnu- 'HOSTCC=sccache clang' 'CC=sccache clang'
/usr/bin/powerpc64le-linux-gnu-ld: arch/powerpc/kernel/vdso32/sigtramp.o: compiled for a little endian system and target is big endian /usr/bin/powerpc64le-linux-gnu-ld: failed to merge target specific data of file arch/powerpc/kernel/vdso32/sigtramp.o /usr/bin/powerpc64le-linux-gnu-ld: arch/powerpc/kernel/vdso32/gettimeofday.o: compiled for a little endian system and target is big endian /usr/bin/powerpc64le-linux-gnu-ld: failed to merge target specific data of file arch/powerpc/kernel/vdso32/gettimeofday.o /usr/bin/powerpc64le-linux-gnu-ld: arch/powerpc/kernel/vdso32/datapage.o: compiled for a little endian system and target is big endian /usr/bin/powerpc64le-linux-gnu-ld: failed to merge target specific data of file arch/powerpc/kernel/vdso32/datapage.o /usr/bin/powerpc64le-linux-gnu-ld: arch/powerpc/kernel/vdso32/cacheflush.o: compiled for a little endian system and target is big endian /usr/bin/powerpc64le-linux-gnu-ld: failed to merge target specific data of file arch/powerpc/kernel/vdso32/cacheflush.o /usr/bin/powerpc64le-linux-gnu-ld: arch/powerpc/kernel/vdso32/note.o: compiled for a little endian system and target is big endian /usr/bin/powerpc64le-linux-gnu-ld: failed to merge target specific data of file arch/powerpc/kernel/vdso32/note.o /usr/bin/powerpc64le-linux-gnu-ld: arch/powerpc/kernel/vdso32/getcpu.o: compiled for a little endian system and target is big endian /usr/bin/powerpc64le-linux-gnu-ld: failed to merge target specific data of file arch/powerpc/kernel/vdso32/getcpu.o /usr/bin/powerpc64le-linux-gnu-ld: arch/powerpc/kernel/vdso32/vgettimeofday.o: compiled for a little endian system and target is big endian /usr/bin/powerpc64le-linux-gnu-ld: failed to merge target specific data of file arch/powerpc/kernel/vdso32/vgettimeofday.o clang: error: unable to execute command: Segmentation fault (core dumped) clang: error: linker command failed due to signal (use -v to see invocation) make[2]: *** [/builds/linux/arch/powerpc/kernel/vdso32/Makefile:51: arch/powerpc/kernel/vdso32/vdso32.so.dbg] Error 254 make[2]: Target 'include/generated/vdso32-offsets.h' not remade because of errors.
Reported-by: Naresh Kamboju naresh.kamboju@linaro.org
build link, https://gitlab.com/Linaro/lkft/mirrors/torvalds/linux-mainline/-/jobs/111084...
This is a deficiency in clang that has been fixed in clang-12:
https://github.com/llvm/llvm-project/commit/0a23fbd28c7509f2f980946091e6055b...
but tuxmake can resolve it by using a more appropriate CROSS_COMPILE variable for powerpc64 big-endian (powerpc64-linux-gnu-):
https://gitlab.com/Linaro/tuxmake/-/issues/108
Cheers, Nathan