/meeting-notes

Notes from our meeting every other week.

Clang-Built Linux Meeting Notes

Notes from our meeting every other week. See our homepage for links to the calendar invite and meet link.

Send to: llvm@lists.linux.dev

May 01, 2024

Apr 17, 2024

Apr 03, 2024

Mar 20, 2024

Mar 6, 2024

Feb 21, 2024

Jan 24, 2024

Jan 10, 2024

Nov 29, 2023

Nov 1, 2023

  • (Maxim) Protecting Compiler Optimizations with Linaro Benchmarking CI
  • bcachefs -Wframe-larger-than 32b arm report from linaro
  • (Nathan) -Wsometimes-uninitialized in bcachefs
  • (Nathan) -Wc23-extensions in mainline due to ~3 days in -next
  • (Nathan) loongarch breakage
  • (Bill) __attribute__((counted_by())) has landed, Bill working on fixups
    • GCC folks mentioned potential data dependency issues
  • (Mark) LTO and ARM64 discussion on IRC about the use of ALTERNATIVES in READ_ONCE
    • acceptable to remove upgrading to rcpc when available?
  • Has the Itanium sunk?
  • (Nick) distracted with "rm"
  • (Tom) llvm-17 release
  • (Nathan) 17.0.4 binaries on kernel.org

Oct 18, 2023

  • arm64 boot failure
    • looking like a compiler bug
  • bug scrub last week
  • llvm dev conf last week
    • discussions around stack usage, -fbounds-safety
  • riscv LTO has an issue with LLD not respecting relaxation
  • header refactoring
    • circular includes
  • (Nick) inline asm "rm" work

Jul 26, 2023

Jul 12, 2023

Jun 28, 2023

Jun 14, 2023

May 31, 2023

May 17, 2023

May 3, 2023

Apr 19, 2023

  • llvm 16.0.2 released
    • Nathan posted builds to kernel.org
  • llvm regression related to shrink-wrapping backed out.
  • (Nick) Dealing with fallout from CHOP attack paper
    • add no_stack_protector fn attr to kernel
  • (Nick) improving diagnostics for FORTIFY
  • (Jiaxun) MIPS improvements
  • (Sami) kCFI for RISCV
  • (Fangrui) update linker flags for RELR
  • clangd discussion
  • plumbers planning starting
    • Toolchain MC again, start thinking about ideas
    • Nov 13-15 (Mon-Wed)
    • Richmond, VA (Venue announced)
    • clangbuiltlinux will be adjacent (maybe before, maybe)
  • __builtin_object_size changes planned for GCC, need similar changes for clang
  • (Arnd) build fails cross compiling 32b x86 targets for arm64 hosts in the samples/ directory
    • Maybe a patch to test reverting
  • (Maxim) reworking notification of kernel+llvm testing

Apr 5, 2023

Mar 22, 2023

Mar 8, 2023

Feb 22, 2023

Feb 8, 2023

Jan 25, 2023

Jan 11, 2023

Dec 14, 2022

Nov 30, 2022

Nov 2, 2022

Oct 19, 2022

  • (Nick) asm goto w/ outputs along indirect edges
  • (Nick) backporting debug info for dwarf
    • watch for conflicts w/ Nathan's backports for riscv debug info.
  • (Paul) working on more info when -Wframe-larger-than= are encountered
  • Discussions with tuxsuite/Linaro on docker containers
  • kernel.org clang binaries
    • helpdesk kernel.org ticket
  • ICC support removed from kbuild
  • (Bill) PGO new format, compiler-ABI implications
  • (Bill) AutoFDO testing/WIP
  • (Bill) -fstrict-flex-arrays=3
  • kCFI
    • ASAN
    • ftrace
    • FineIBT patchset inbound (new version in the works)
    • constant blinding bpf
  • x86 PKS (kernel changes)
  • glibc w/ clang skunkworks
  • (Craig) improving division by constant
    • Clang will be missing support for signed divisions

Oct 5, 2022

Sep 21, 2022

Sep 7, 2022

Aug 24, 2022

Aug 10, 2022

July 27, 2022

July 13, 2022

June 29, 2022

June 15, 2022

June 1, 2022

May 18, 2022

May 4, 2022

Apr 20, 2022

Apr 6, 2022

Mar 23, 2022

Mar 9, 2022

Feb 23, 2022

Feb 9, 2022

Jan 26, 2022

Jan 12, 2022

Dec 29, 2021

Dec 15, 2021

Dec 1, 2021

Nov 17, 2021

Nov 3, 2021

  • (Serge) LTO+FORTIFY fix has landed in LLVM.
  • GCC SCS aarch64 WIP
  • (Ard) Working on 32b ARM per task stack canaries 0, 1, 2, 3, 3.
  • (Phoebe) x86 llvm patches for -mno-fp-ret-in-387, -mskip-rax-setup, and -maccumulate_outgoing_args.
  • Removing CROSS_COMPILE_COMPAT causing issues for Linaro TCWG CI since they disable 32b arm support in llvm for their 64b arm kernel builds.
    • clang -print-targets
  • Met with Nemanja and Sean at IBM regarding PPC. MPE@ couldn't make it this week, but perhaps next time due to timezone changes in AU. MPE mentions via IRC "we're a bit wedged on the EFLv2 ppc64be thing, because the gcc/binutils folks don't support it"
  • Met with Intel
    • Need to find out more about SLS
  • LLVM Bay Area meetup went well. Nick presented about CBL; mostly folks unaware of the project asking basic questions.
    • LLVM meetup coming up in two weeks, register now
  • Android specific perf tests? Binder throughput tests.
  • CFI redesign x86 questions on LKML / Aarch64 static calls blocked by CFI issue related to asm labels on declarations in C.

Oct 20, 2021

  • Lots of patches around -Wbitwise-instead-of-logical, Linus not thrilled with note diagnostic.
  • (Nick) eliminated CROSS_COMPILE_COMPAT for LLVM=1 arm64 compat vdso.
  • (Serge) fix for LTO+FORTIFY.
  • arm64 .cfi_negate_ra_state+PAC LLVM patch.
  • (Nick) thinLTO+CFI .cfi_jt fixup LLVM patch.
  • (Ard) arm32 IRQ stacks and vmapped stacks.
    • regression in next __eabi_read_tb
  • (Nick) working on propagating tail calls for fortify.
  • 32b unwinder fixes for kprobes.
  • (Miguel) mark __compiletime_assert noreturn.
  • MPE and Nemanjai looking into LLVM_IAS=1 for ppc.
  • (Rasmus) switch container_of from BUILD_BUG_ON to static_assert.
  • kasan excessive stack useage, interesting case fron Arnd.
    • -fno-sanitize-address-use-after-scope and -fsanitize-address-use-after-return=never (gcc's --param asan-use-after-return=1)
    • large padding for small locals?
  • LLVM bay area meetup tonight. 5pm CBL round table.
    • ppc & s390 assembler, kasan stack useage, ARC + m68k
  • atom cpu tuning is bad; leads to frequent register exhaustion. (TODO: Nick, talk to Intel): ClangBuiltLinux/linux#1483
  • rust tentative clang flags removed from rustforlinux kbuild modifications
  • ClangBuiltLinux/linux#1315: argument unused during compilation: '-march=armv6k' #1315

Oct 6, 2021

Sep 22, 2021

Sep 8, 2021

Aug 25, 2021

Aug 11, 2021

July 28, 2021

July 14, 2021

June 30, 2021

June 16, 2021

June 2, 2021

Planning second meetup: Friday September 17 2021 Planning LLVM Distributors Conf: Thursday September 16 2021 Series of fixes for PGO being posted (Nathan) fixes for Hexagon https://lore.kernel.org/lkml/20210521011239.1332345-1-nathan@kernel.org/ Riscv boot failure ClangBuiltLinux/linux#1389 Strange PGO failure ClangBuiltLinux/linux#1388 (Nathan) PPC breakage ClangBuiltLinux/linux#1386 Upstream regression reverted (worth chasing a reproducer?) ClangBuiltLinux/linux#1385 CFI boot failure on WSL2 ClangBuiltLinux/linux#1384 (Nick) PGO crash (will ask upstream LLVM to revert) ClangBuiltLinux/linux#1383 M68k making progress ClangBuiltLinux/linux#1387 (Nick) still looking into section mismatch warnings ClangBuiltLinux/linux#1302 commit 4a3893d069b7 ("modpost: don't emit section mismatch warnings for compiler optimizations") (Nick) Reverting android patches for -fuse-ld=lld and -rtlib=compiler-rt ClangBuiltLinux/linux#479 (Jian) -Wa,-march (Bill) KASAN KVM crashes, potentially a fix on llvm to backport to 12.0.1 release (Tom) June 8 tentative cutoff date for clang 12.0.1 (Gustavo) -Wimplicit-fallthrough down to ~25 patches on -next https://redshirtjeff.com/listing/linux-recompile-shirt?product=211

May 19, 2021

(Nick) Per task stack canaries on arm64 (broke LTO) https://reviews.llvm.org/D102742 (Nick) __builtin_constant_p fix for flexible arrays https://reviews.llvm.org/D102367 (Nick) removing GAS from Android kernels (Nathan) AMDGPU LTO fix (Nathan) problem matchers in github actions now! M68k backend has inline asm support https://reviews.llvm.org/D102585 No san cov attr https://reviews.llvm.org/D102772 Arnd https://lore.kernel.org/lkml/20210514100106.3404011-1-arnd@kernel.org/ Randconfig turning off COMPILE_TEST is problematic (0day bot) Can we move some checks from sparse into clang proper? (or clang-tidy) Broonie LTP build w/ clang recently failed https://release.debian.org/bullseye/arch_policy.html Debian’s arch policy Tstellar Rebuilding parts of Fedora with Clang Fangrui: https://maskray.me/blog/2021-05-16-elf-interposition-and-bsymbolic#the-last-alliance-of-elf-and-men

May 5, 2021

Bug scrub burned down ⅓ of bugs! Aarch64 full LTO boot failure fixed ClangBuiltLinux/linux#1368 Issues with LTO+TRIM_UNUSED_KSYMS ClangBuiltLinux/linux#1369 S390 allmodconfig build failures ClangBuiltLinux/linux#1370 New warnings from opening merge window ARCH=hexagon support imminent https://groups.google.com/g/clang-built-linux/c/OvG71CL1KWc/m/MUBfBmCJAwAJ Aarch64 per task stack canaries (Nick): https://reviews.llvm.org/D100919 Alignment issue for blk has a fix, needs a v2 https://lore.kernel.org/lkml/20210429150940.3256656-1-arnd@kernel.org/ Plumbers is virtual Sept 20-24 https://www.linuxplumbersconf.org/blog/2021/ Arnd mentioned this gcc bug report: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100363 I agree with the GCC maintainers that use of underaligned pointers is undefined behavior. https://trust-in-soft.com/blog/2020/04/06/gcc-always-assumes-aligned-pointer-accesses/ is an interesting read linked from the gcc bug report.

April 21, 2021

Ppc32 boot failures ClangBuiltLinux/linux#1345 (comment) Debian LLVM patches causing issues ClangBuiltLinux/linux#1355 Gcov shenanigans https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7af08140979a6e7e12b78c93b8625c8d25b084e2 KCOV issues resolved CFI feedback Aarch64 per task stack canaries (Nick): https://reviews.llvm.org/D100919 Alignment issue in blk still not resolved ClangBuiltLinux/linux#1328 Double CI, oops! Fortify source Merge window opening Bug scrub tomorrow!

April 7, 2021

KCOV broken for CFI (Nick) Missing debug info, but __sanitizer_cov_trace_pc should probably also be __noinline. ClangBuiltLinux/linux#1338 Working on 2 fixes for LLVM. GCOV broken in clang-11+ (Nick) https://lore.kernel.org/lkml/20210407185456.41943-1-ndesaulniers@google.com/ Arm32 IAS patch (Jian) https://reviews.llvm.org/D98916 Pahole patches https://lore.kernel.org/dwarves/YG3SYoNWqb8DlP61@kernel.org/ RISC-V riscv-non-isa/riscv-elf-psabi-doc#183 R_RISCV_ALIGN Alignment issue in blk ClangBuiltLinux/linux#1328 Plumbers Submitted MC proposal for “Toolchains and Kernel MC” with Jose Marchesi from Oracle’s GCC team. Drop clang-10 support? Clang-12 maybe released next week? Can next debian still include clang-10 for kernel builds? Can tuxsuite fetch clang-10 from apt.llvm.org for now? CFI needs help testing V5: https://lore.kernel.org/lkml/20210401233216.2540591-1-samitolvanen@google.com/ Gcc implemented support for asm goto w/ outputs! W00t https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=e3b3b59683c1 Compare_exchange https://godbolt.org/ https://lore.kernel.org/lkml/YG2fQ1tGDIMhyIHe@hirez.programming.kicks-ass.net/ Building perf with clang has some issues

March 24, 2021

LLVM_IAS=1 ARCH=arm landing in Android Probably going to skip 4.19.y, one last assembler bug won't be ready in time, 27 kernel backports required. https://reviews.llvm.org/D98916 https://lore.kernel.org/stable/be846d89-ab5a-f02a-c05e-1cd40acc5baa@roeck-us.net/ https://lore.kernel.org/stable/CAKwvOdm6FXWVu-9YkQNNyoYmw+hkj1a7MQrRbWyUxsO2vDcnQA@mail.gmail.com/ 32b PPC BE builds spun down in CI ClangBuiltLinux/continuous-integration2#111 ClangBuiltLinux/linux#1292 https://bugs.llvm.org/show_bug.cgi?id=49610 Riscv crash on -next, requires earlycon to get more info (or GDB) CFI patches need help review+test V3: https://lore.kernel.org/lkml/20210323203946.2159693-1-samitolvanen@google.com/ PGO patches need help review+test https://lore.kernel.org/lkml/20210226222030.3718075-1-morbo@google.com/ Wenlei, Hongtao, Yonghong (ThinLTO+pahole) https://reviews.llvm.org/D80765 Duplicate type info, skip emitting it for cross TU defined types? (TODO: Nick: talk with dblaikie@) Inlining of global functions means they can’t be traced; __no_inline_for_lto attribute((noinline))? Prevent inlining in LLVM? Rémi, Antonio TuxTest, TuxRun demo https://gitlab.com/Linaro/tuxsuite#tuxtest TuxRun not yet ready, stay tuned Would allow us to drop distributing QEMU, simplify workers in CI Plan file support to be added to tuxsuite, months out though (Arnd) warning promotions Warnings were disabled in top level Makefile, but not enable-able via W=123 j

March 10, 2021

Integrated as (Nick) working on enabling for arm in Android. Will do another pass for THUMB2. 32b ARM boot failures CrOS .text.unlikely. https://bugs.chromium.org/p/chromium/issues/detail?id=1184483 LTO crashes Try disabling CONFIG_SYSCTL_SYSCALL Next is red? (unrelated) Ipsccp https://reviews.llvm.org/D97971 kernelci Spin down clang-11 builds? SGTM Compile times with sanitizers https://bugs.llvm.org/show_bug.cgi?id=38809#c16 ClangBuiltLinux/linux#1314 Arnd ran some stats: https://docs.google.com/spreadsheets/d/1EoKc3ploXakwVHx_Pz8D5-1fMU2xiJHLiySvaeJpBgk/edit#gid=0

Feb 24, 2021

Integrated as (THUMB2) Final blocker to build: ClangBuiltLinux/linux#1286 LTO has landed upstream! Arm64: https://lore.kernel.org/lkml/CAHk-=wgQ=oaLD_ybzhOP+8LFNZH3Qzpc-dp4XB4cXxXLReCdnQ@mail.gmail.com/ X86_64: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=414eece95b98b209cef0f49cfcac108fd00b8ced BTF support? Curious inlining changes from NPM (ipsccp) ClangBuiltLinux/linux#1302 Using qemu from ubuntu for riscv ClangBuiltLinux/linux#1293 causing x86_64 allmodconfig to fail to build w/ clang-10. Can’t fix clang-10. Turn down build or bump minor version? Kconfig depends on clang-11+ https://lore.kernel.org/lkml/c0ff7dba14041c7e5d1cae5d4df052f03759bef3.1613243844.git.luto@kernel.org/ missing stack protector for 32b x86: https://bugs.llvm.org/show_bug.cgi?id=49209 Kpatch clang support: dynup/kpatch#1156 Boot test Debian images: ClangBuiltLinux/boot-utils#35 http://cdn.kernel.org/pub/linux/kernel/people/will/docs/qemu/qemu-arm64-howto.html

ClangBuiltLinux/linux#1269 LTO issue blocking toolchain upgrades ETM related arm64 IAS Rust for linux: https://github.com/Rust-for-Linux/linux/issues Testers wanted: PGO: Polly:

Feb 10, 2021

Integrated as Arm32 patches https://reviews.llvm.org/D95872 https://reviews.llvm.org/D96285 https://reviews.llvm.org/D96304 Arnd filed a ton of bugs via randconfigs Need https://lore.kernel.org/linux-arm-kernel/20210205223557.3097894-1-ndesaulniers@google.com/T/#u reviewed. 0day bot GCC report X86 (64b & 32b) and aarch64 enabled for Android S 4.19+, CrOS 5.4+ (Bill) pahole + LTO Different stack sizes objtool ClangBuiltLinux/linux#612 (Nick) DWARFv5 https://lore.kernel.org/bpf/20210207071726.3969978-1-yhs@fb.com/ BTF fix V9 is probably final version: https://lore.kernel.org/lkml/20210205202220.2748551-1-ndesaulniers@google.com/ Requires integrated assembler for old GNU binutils. LLD BE support! https://lore.kernel.org/lkml/20210209005719.803608-1-nathan@kernel.org/T/#u 32b ARM, s390, ppc? Mips be enable https://youtu.be/GpiWVXKs9Z0 : "ClangBuiltLinux: What's Next?" - Nick Desaulniers (LCA 2021 Online) 32b ARM LLD bug fixed https://lore.kernel.org/linux-arm-kernel/20210205085220.31232-1-ardb@kernel.org/T/#u vfs_truncate BTF BTI ClangBuiltLinux/linux#1297 NPM causing one issue for ppc, -Werror though ClangBuiltLinux/linux#1292 Tuxsuite working well, adding many tests PGO? (needs chasing upstream) Inlining kasan experiment Mailing list?

Jan 27, 2021

Integrated as Reverted for x86_64 for 4.19 due to ltp nanosleep 32b test https://android-review.googlesource.com/c/kernel/common/+/1559459 Arm32b blocked on ClangBuiltLinux/linux#1195, https://bugs.llvm.org/show_bug.cgi?id=48894. LTO bugs Debug info growth out of control thinLTO duplicates CU entries New objtool series for x86 https://lore.kernel.org/lkml/cover.1611263461.git.jpoimboe@redhat.com/ PGO bugs https://lore.kernel.org/lkml/20210122101156.3257143-1-morbo@google.com/ Reported issues with hash mismatches? -Wno-error=backend-plugin Dwarfv5??? CI work https://github.com/ClangBuiltLinux/continuous-integration2 https://gitlab.com/cki-project/pipeline-definition/-/merge_requests/1085 LinuxConfAU report Slides: https://lca-kernel.ozlabs.org/2021-Desaulniers-ClangBuiltLinux_Whats_Next.pdf Parsing bug Linus+Will https://reviews.llvm.org/D95408 Fixed infinite loop observed on s390 build https://goto.google.com/llvm-cr/D94996 Ubsan bug_on (need to chase these) allmodconfig failures llvm 10 and llvm11 next ClangBuiltLinux/continuous-integration2#58 ClangBuiltLinux/continuous-integration2#57 -Wunreachable-code-* ClangBuiltLinux/linux#1180 Objtool arm64 Requires a GCC plugin? https://lore.kernel.org/lkml/a3393eb3-03a5-e4dd-f40c-b801cc60778e@linux.microsoft.com/T/#m44b90dc4ff63f86e76ac4ee68710dfe61b69720e

Jan 11, 2021

PGO patch: https://lore.kernel.org/lkml/20210113061958.886723-1-morbo@google.com/
Regressions! Arm: https://lore.kernel.org/stable/20210113185758.GA571703@ubuntu-m3-large-x86/T/#u Modules: ClangBuiltLinux/linux#1250 Ubsan: https://github.com/ClangBuiltLinux/linux/issues?q=is%3Aissue+is%3Aopen+UBSAN CI back online https://github.com/ClangBuiltLinux/continuous-integration2 CKI: https://gitlab.com/cki-project/pipeline-definition/-/issues/1 Linuxconf au Thoughts on mixing matching + still supporting CC=clang even after moves to LLVM=1. https://linux.conf.au/schedule/presentation/107/ Dwarf5 https://lore.kernel.org/lkml/20210113003235.716547-1-ndesaulniers@google.com/ LLVM_IAS=1 enabled for 4.19+ for aarch64 in android. Objtool IAS issue: https://github.com/ClangBuiltLinux/linux/issues?q=is%3Aissue+is%3Aopen+label%3A%22%5BTOOL%5D+objtool%22+label%3A%22%5BTOOL%5D+integrated-as%22 Llvm-objcopy cros Gentoo build system runs as root https://reviews.llvm.org/D93881 Polly https://github.com/lazerl0rd/tryme_redbull/commit/c2da3277cc0143c1351b9e49f15e918041c9aef1 Reliable stack traces for arm64 Objtool: https://lore.kernel.org/linux-arm-kernel/20200109160300.26150-1-jthierry@redhat.com/ 32b LLVM_IAS=1 arm Likely usual issues with CC=clang and ARMv4 S390 Looking great, just need qemu fixes to get merged and packaged. History tree: https://git.kernel.org/pub/scm/linux/kernel/git/tglx/history.git/ “Clang LTO Support Looks Like It Could Land For Linux 5.12”: https://www.phoronix.com/scan.php?page=news_item&px=Clang-LTO-Linux-Next-Queue

Dec 16, 2020

https://lwn.net/Articles/838807/ https://meet.google.com/linkredirect?authuser=0&dest=https%3A%2F%2Fdocs.google.com%2Fspreadsheets%2Fd%2F1QxMvW5jpVG2jb4RM9CQQl27-wVpNYOa-_3K2RVKifb0%2Fedit%23gid%3D596881437

Dec 1, 2020

LLVM_IAS=1 .ascii directive almost ready to land https://reviews.llvm.org/D91460 Issue unwinding possibly due to ARMv8.3 PAC? LTO v8 patches need help testing https://lore.kernel.org/lkml/20201201213707.541432-1-samitolvanen@google.com/ KernelCI reports are back now that orphan section warnings are fixed. ld --cref, ClangBuildAnalyzer for dependency tracking https://github.com/aras-p/ClangBuildAnalyzer Arnd’s header changes speed up Clang builds significantly more than GCC builds. Needs to be rebased. Tuxbuild github action demo: https://github.com/danrue/tuxbuild-demo Tuxbuild testing sparc tinyconfig Arnd recommends only focus on sparc64, not sparc32. Nick emailed TravisCI about builds being offline since Nov 20. %hh treewide cleanups for -Wformat. Clang-tidy for treewide cleanups? ClangBuiltLinux/linux#378 (comment) TODO(Nick): update DWARFv5 patches Linaro Connect ‘21 March 23 virtual https://connect.linaro.org/cfp/

Nov 18, 2020

Orphan Section Warning patches up for lld-10. ClangBuiltLinux/linux#1187 LLVM_IAS=1 IWMMXT arm32 LLVM_IAS=1 patch submitted. ClangBuiltLinux/linux#975 -Wa,-march=armv7-a issue ClangBuiltLinux/linux#1195 .ascii directive issue ClangBuiltLinux/linux#1196 Bill sending PPC LLVM_IAS=1 patches https://lore.kernel.org/linuxppc-dev/20201017004752.415054-1-morbo@google.com/ Stack protector LTO inlining bug affecting x86 suspend/resume. https://bugs.llvm.org/show_bug.cgi?id=47479 barrier_data fallout still landing; needs backports. ClangBuiltLinux/linux#1202 Android kernels updated; minor LTO related regression for 4.19 from unmerged sections. https://android-review.googlesource.com/c/kernel/common/+/1511434 -Wimplicit-fallthrough LKML discussions https://lore.kernel.org/lkml/cover.1605896059.git.gustavoars@kernel.org/ -Wformat LKML discussions https://lore.kernel.org/lkml/26052c5a0a098aa7d9c0c8a1d39cc4a8f7915dd2.camel@perches.com/ CI: gitlab pipelines vs github actions

Nov 4, 2020

Tom Rix clang-tidy for tree wide fixits https://reviews.llvm.org/D90180 Prodkernel rollout underway DWARF5 WIP https://lore.kernel.org/lkml/20201104005343.4192504-1-ndesaulniers@google.com/T/#u Pixel tracing issue https://lore.kernel.org/lkml/20180725202238.165314-1-salyzyn@android.com/ Re-fixing again now via SELinux Pixel upgrading clang version -Wvoid-pointer-to-int-cast SYM_FUNC_START_WEAK integrated assembler breakage. https://lore.kernel.org/stable/20201103012358.168682-1-maskray@google.com/ ^ x86_64 specific. There’s another patch already in mainline for arm64, and another sent for perf. Stack protector https://reviews.llvm.org/D90194 https://reviews.llvm.org/D90348 https://reviews.llvm.org/D90353 LLD offset bug https://reviews.llvm.org/D90520 IWMMXT https://sourceware.org/legacy-ml/binutils/2006-07/msg00324.html http://read.pudn.com/downloads78/ebook/297953/WirlessMMX251669_devguide.pdf CrOS thumb fp unwind bug (userspace specific) GKH bug report related to io_vec https://lore.kernel.org/lkml/20201102135202.GA1016272@kroah.com/ Probably not the last we’ve seen of this bug Kees is streaming on twitch! https://www.twitch.tv/keescook/about https://www.youtube.com/channel/UC6zmTkbgwe2q6l6TNjABSCg

Oct 21, 2020

Android common kernels have moved to LLVM=1, GNU binutils (modulo GAS) removed. LLVM_IAS=1 is next, CrOS has similar patch staged (but CrOS is still using the rest of GNU binutils). -gdwarf-2 warnings Fixing aarch64 compat vdso hardcoding ld.bfd was a big help. Android toolchain upgrade is causing CTS failures for bionic. Working on a fix for -fstack-protector and LTO: https://reviews.llvm.org/D87956 Clang-11 released! KernelCI upgrading now. KSelftests hard coding GCC? We might need to upgrade our CI once clang-12 branch is created. Internal report that LLD is corrupting data in .bss due to ALIGN statements. S390 buildroot minor release not good enough, need to wait for next release in November. LinuxConfAU CFP: https://lwn.net/Articles/834440/ LLVM Dev Conf is a wrap barrier_data bug: https://lore.kernel.org/lkml/20201014212631.207844-1-nivedita@alum.mit.edu/T/#u Twitch Stream? Fix -Wformat -Wunreachable-code-loop-increment, -Wunreachable-code-break, and -Wunreachable-code-return Userspace W=123 warnings Build bug on sucks: ClangBuiltLinux/linux#1173 Fortify source (Kees)

Sep 23, 2020

CrOS boot failure in 4.4 fixed just in time for clang-11. Thanks Jian and James! https://bugs.chromium.org/p/chromium/issues/detail?id=1123683 https://reviews.llvm.org/rGf7a53d82c0902147909f28a9295a9d00b4b27d38 https://bugs.llvm.org/show_bug.cgi?id=47468 LLVM=1 (Nick) in Android KernelCI moved over Binutils for Android kernel deprecation schedule: https://android-review.googlesource.com/c/platform/prebuilts/clang/host/linux-x86/+/1405387 Backported to 5.4, Working on backport to 4.19 (Mark): can we even eliminate LLVM=1? Syzbot stray 4B write https://groups.google.com/g/clang-built-linux/c/b4Obxq5w6hw S390 buildroot support being added, should be able to boot test s390 soon ClangBuiltLinux/continuous-integration#232 (comment) Llvm dev conf coming up, anyone want to moderate my session? LTO stack protector bug (Nick): https://reviews.llvm.org/D87956 Arm32 adrl patches get us much closer to assembling arm32 w/ clang ClangBuiltLinux/linux#430 (comment) Thanks Jian for fixing ClangBuiltLinux/linux#742 Saving eflags via builtins is slow Missing lore thread :( https://bugs.llvm.org/show_bug.cgi?id=47530 https://bugs.llvm.org/show_bug.cgi?id=47531 pac/bti compiler generated functions may not correctly have the proper fn attr’s. Momchill and Daniel @ ARM are working on this in LLVM. Open mandriva clang kernels look good in tests. Looking to default to Clang in their next release. Ppc vdso @local24pc assembler suffix LTO patches need help testing https://lore.kernel.org/lkml/20200918201436.2932360-1-samitolvanen@google.com/

Sep 9, 2020

Plumbers talks + notes: https://github.com/ClangBuiltLinux/plumbers-2020-slides CrOS boot failure in 4.4 https://bugs.chromium.org/p/chromium/issues/detail?id=1123683 https://bugs.llvm.org/show_bug.cgi?id=47468 Cros stpcpy https://bugs.chromium.org/p/chromium/issues/detail?id=1125877 https://ozlabs.org/~akpm/mmotm/broken-out/lib-stringc-implement-stpcpy.patch Android emulator LTO + stack protector failure on 5.4 suspend/resume https://lore.kernel.org/lkml/20200909184001.GB28786@gate.crashing.org/T/#t “I've been running it privately now for several months.“ Looks like patch actually using the feature may not have been attached. LLVM Dev meeting, BoF + talks (sign up now!) https://llvm.org/devmtg/2020-09/ LTO patches resent (please help test + review) https://lore.kernel.org/lkml/20200903203053.3411268-1-samitolvanen@google.com/ Trying to fix builtins https://reviews.llvm.org/D86508 Orphan handling warn in linux-next TODO: vdso’s need this linker flag, too “rm” (No list was cc’ed that provides archives…) Relaxation patches; pay down the debt https://github.com/ClangBuiltLinux/continuous-integration/blob/master/patches/llvm-12/5.4/x86_64/0001-x86-boot-compressed-Disable-relocation-relaxation.patch TODO(Nick): send to stable with more info why it’s necessary and less risky than 6 patch series. Clang-10 in Ci Clang-9 might be interesting to test for stable, but we’re not yet testing stable branches with clang. TODO(Mark): is this useful for nightly llvm builds? https://github.com/ClangBuiltLinux/dockerimage TODO(Nick): contact Syvestre Ledru about clang 10.1 debian packaging.

Aug 12, 2020

Plumbers Tentatively Thursday Aug 27 7am PDT This is still subject to change 11 talks proposed; likely will cut this down and publish the MC soon. BoF proposed in addition to MC, both accepted. i386 now buildable+bootable as of 5.9! ClangBuiltLinux/linux#194 -Wa,-mrelax-relocations=no related boot failures on x86_64 ClangBuiltLinux/linux#1121 Performance wins targeting x86_64 https://reviews.llvm.org/D85257 https://reviews.llvm.org/D85807 Clang-tidy / clang-build patches https://lore.kernel.org/lkml/20200812173958.2307251-1-masahiroy@kernel.org/T/#t S390 Issues: https://github.com/ClangBuiltLinux/linux/issues?q=is%3Aopen+is%3Aissue+label%3A%22%5BARCH%5D+s390%22 CI: ClangBuiltLinux/continuous-integration#232 Dropped buildroot support: https://github.com/buildroot/buildroot/commit/b24c3215c13b0f25979c744af4b2e58359b5723b Initial build in CI: ClangBuiltLinux/continuous-integration#229 Fixed: ClangBuiltLinux/continuous-integration#152 Linuxone community cloud: https://developer.ibm.com/components/ibm-linuxone/gettingstarted/ Preferred to trying to get a machine for development. KernelCI has debootstrap images we might be able to use instead of buildroot. Thanks for guests Ulrich Weigand, Vasily Gorbik, and Ilya Leoshkevich (all from IBM in Germany) for attending and support.

July 29. 2020

I386 patches in -next Need folks to chime in/test lld patches https://www.google.com/url?q=https://lore.kernel.org/lkml/20200717201801.3661843-2-nivedita@alum.mit.edu/T/%23u&sa=D&usg=AFQjCNHkUMej_U5gXbJRktNeaN-UOutzjw Plumbers arch talk (may be of interest to discuss which backends need llvm support) LTO fix for networking https://lore.kernel.org/lkml/20200708230402.1644819-1-ndesaulniers@google.com/ Tracepoint strings fix for /tracing/printk_formats https://lore.kernel.org/lkml/20200723205341.1099742-2-ndesaulniers@google.com/T/#t Save_stack fixes accepted Another bug in UNWINDER_FRAME_POINTER https://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=8992/1 clang-tidy / clang-analyzer v7 GTG Hint clang-tidy finds a couple bugs in arm arm64 (testers, bugfixers wanted) https://lore.kernel.org/lkml/20200728004736.3590053-1-nhuck@google.com/ Plumbers accepted but not published Riscv boot failure due to stack protector ClangBuiltLinux/linux#1092 Clang-11 released Need to get ci coverage Known issues with PAC + old binutils At least 2 new fixes for asm goto backported to clang-11 https://reviews.llvm.org/rG1da9834557cd4302a5183b8228ce063e69f82602 https://reviews.llvm.org/D83708 (tcmalloc developers are making use of asm goto w/ outputs) LTO merging compoundliterals for kernel modules reverted Boot failures reported by an Android OEM, haven’t had time to debug. Replacing compound literals with named global static structs fixes the boot, so there is a problem merging them via linker script https://android-review.googlesource.com/c/kernel/common/+/1361089 Structures with holes and information data leaks from the kernel? (Arnd) (Kees) See: lib/test_stack_init.c Orphan section warn Needs rebasing with asserts for zero size

July 15, 2020

i386 patches sent to Linus Plumbers may have an LLVM MC Asm goto regression needs to get cherry picked to new clang-11 branch Assembler fixes; Hyperv, x86 crypto. Arm64 regressed Riscv regressed - still broken though reported upstream? Will check again tomorrow Add Maxim to Linux Plumbers CI Kernelci doing boot tests w/ clang-10 linux next Clang-tidy/static-analyzer patches sent upstream Orphan section handling uncovering all kinds of bugs Old binutils causing issues w/ clang-10 and PAC Apt.llvm.org may going away

June 17, 2020

Tom Stellar doing github integration for backports for point releases CrOS issues R7 thumb (fixed) https://lore.kernel.org/lkml/20200608205711.109418-1-ndesaulniers@google.com/T/#u .text.hot. .text.unlikely. (TODO) https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/2236871/ Integrated as Ppc32 should be back online after quick LLVM fix ClangBuiltLinux/linux#1044 Riscv booting (nhuck) ClangBuiltLinux/linux#867 save_stack_trace for arm32 fixed (nhuck) ClangBuiltLinux/linux#912 -Wformat is due to narrowing conversions. Too many to fix right now. Lots of easy fixes. (nhuck) ClangBuiltLinux/linux#378 Qemu requires -cpu max for pac/bti testing RELR breaks GDB? Reworking asm goto, has multiple boot failures https://reviews.llvm.org/D79794 Quick UBSan fixes on aarch64 https://lore.kernel.org/lkml/20200608203818.189423-1-ndesaulniers@google.com/T/#u Nick reviewed a bunch of i386 patches for clang, not sure if they got picked up. https://lore.kernel.org/lkml/CAKwvOdnj4M6xy3DhqE9U05bBhNEHR7-o8CM0T-KoQFRck0o39g@mail.gmail.com/T/#m1402c54af9c26679397be024244fa6148608742c US LLVM dev meeting CFP is up (Nick) Everything I know about debugging LLVM (Nick) ClangBuiltLinux BoF (Bill+Nick) asm goto w/ outputs https://lists.llvm.org/pipermail/llvm-dev/2020-June/142224.html Linaro CFP Sept 22-24 July 1st CFP deadline https://sessionize.com/LVC20/ unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 via aarch64 PAC ClangBuiltLinux/linux#1054 Kcsan clang-11 only for now Tons of CFI issues in sysfs ClangBuiltLinux/linux#1051

June 3, 2020

Atomisp fixes (Arnd, Nathan) R7 warnings, compat vdso Should the compat vdso be configurable? Clang ia patches (Arnd) ODR patch from Bob, waiting on x86 folks to pick up https://lore.kernel.org/lkml/20200515180544.59824-1-inglorion@google.com/T/#mafd13fc1faf858832f30ea09c7ad3678c81ce75b Huck intro Focusing on compile time measurement -fno-eliminate-unused-debug-types (Nick WIP) https://reviews.llvm.org/D80242 -gz=zlib in kernel https://lore.kernel.org/lkml/20200526171830.151966-1-ndesaulniers@google.com/ 32b x86 reviewed https://lore.kernel.org/lkml/CAKwvOdkB0J8oMjG-NsM6O6BCnodmY8UeYqCyeR-c6NSa5paYfQ@mail.gmail.com/T/#m1402c54af9c26679397be024244fa6148608742c Sroa bug https://bugs.llvm.org/show_bug.cgi?id=40776 Pattern init found a bug in overlayfs Rust working in the kernel (Nick) TODO: loadable kernel module support, dynamic allocation, crates Compat vdso on arm64 hardcodes bfd, doesn’t work right when linked with LLD ClangBuiltLinux/linux#1033

May 18, 2020

Cuttlefish ODR violation (Bob): https://lore.kernel.org/lkml/20200515180544.59824-1-inglorion@google.com/T/#u Compressed debug info (Nick): https://lore.kernel.org/lkml/20200504031340.7103-1-nick.desaulniers@gmail.com/ x86 32b series (Nick reviewing): https://lore.kernel.org/lkml/CAKwvOdmak_L9Rp8FQ+N6-N9vWGH3M-jjP+XJTGUTeYCG9N_dBQ@mail.gmail.com/T/#t x86 akpm patch: https://ozlabs.org/~akpm/mmots/broken-out/x86-bitops-fix-build-regression.patch ppc qemu: https://groups.google.com/g/clang-built-linux/c/6W3Ee6PByyg/m/bVt-VkJ6AwAJ -Wmissing-prototypes (0day bot has enabled W=1) Kcsan moving to clang-11 only Builtin memcpy -Winline-asm r7 waiting on input from gcc but blocking CrOS upgrade Libabigail -fno-eliminate-unused-debug-types: https://reviews.llvm.org/D80242 Aarch64 assembler issue with expressions being treated as absolut (Jian)

May 6, 2020

Welcome to Arnd, Randy. (Linaro) Fortify disabled (Kees, George, Tom) ~2 bugs, primary is that Clang does unusual optimizations around memcpy/strcpy*/…, so this missed some fortify calls in the kernel. Clang-10 had a bug where it was doing full calls to memcpy() instead of inlining down to smaller sequences. This is fixed, but exposed the first problem. Fortify is important for compile-time and potentially run-time bounds checking. GCC is better at issuing diagnostics later during code generation, while Clang struggles with this. Fix will go in a point release for Clang 10. ClangBuiltLinux/linux#1002 Script for filing bugs for Clang releases. llvm/utils/release/merge-request.sh More work needs to be done on the kernel side for fortify as well. X86 LTO 4.19- not booting (Nick) $local for keeping symbols from being exported. ClangBuiltLinux/linux#852 X86 -next orb (Nick) https://lore.kernel.org/lkml/20200505174423.199985-1-ndesaulniers@google.com/T/#u 32b x86 (Nick) Close to working, just waiting on one patch to be merged to turn this on. per cpu and getuser fixes merged. https://lore.kernel.org/lkml/20200504230309.237398-1-ndesaulniers@google.com/T/#u Compressed debug info patch sent (Nick) Large debug info growth sparked work on this. Dwarf 5 (need to retest w/ gcc, 5 recent fixes to ToT GNU as)(Nick) Rust in tree builds working (Nick) https://lwn.net/Articles/797558/ Plumbers will likely be virtual Should we just merge with Toolchain MC? (Nick thinks yes) movzxw mnemonic/pseudo-op not supported by LLVM (Jian, Diab) Will probably just fix this with an explicit version of the instruction. Pahole + LTO (Bill) Networking slowdown (Bill) Compile bug, missed optimization? https://groups.google.com/g/clang-built-linux/c/ZCwRi6n_jcw 3 bug requests (Arnd) Kcov + boundsan or tsan - kcov gets disabled -Wframe-larger-than can’t be set with a value with a pragma Can’t print all available warning options - Any ideas on how to get all of this? https://clang.llvm.org/docs/DiagnosticsReference.html -Winline-asm warning about any use of r7 in Thumb2 -Wformat (Nick) ClangBuiltLinux/linux#378 (comment)

April 22, 2020

Move meeting up one hour? Sounds like this might benefit at least one attendee. Armv5 boot issue default page alignment https://bugs.llvm.org/show_bug.cgi?id=45632 X86 stack protector https://lore.kernel.org/lkml/20200422192113.GG26846@zn.tnic/T/#t Asm goto w/ outputs https://reviews.llvm.org/D78341 https://reviews.llvm.org/D77849 https://reviews.llvm.org/D78166 https://reviews.llvm.org/D78234 https://reviews.llvm.org/D78520 Kernel size regression debug info Clang-10 ppc and riscv regressions One outstanding pull Hal has approved for Tom to merge. Iwmmxt missing support in LLVM, should implement those instructions. Memcpy fortify Previous regression fixed Clang fortify may never have worked for the kernel, Kees and George looking Zero init cfe-dev thread started by Kees I spoke with Arnd Bergmann about s390 rootfs images. He suggested debian deboot strap. I think we might also be able to cross compile a simple init binary with zig, though I don’t know if s390 support has been well testing in zig.

April 8, 2020

LLVM=1 patch landing in -next LLVM_IAS=1 needed for CI LD is now in /proc/version in -next (Kees). Android backported to 4.14 and wrote a VTS test for this. Nick heads down on “asm goto with outputs” bug reports from Linus. Integrated assembler close Probably can enable now for x86 for next arm64 needs CONFIG_KVM .inst parsing fix arm32 ??? Android had an emergency update to the compiler release clang-r377782d to fix an LLD npd for mainline-x86. Does CrOS have mainline kernel builds? Merge window opened for linux 5.7. ppc nondeterminism issue 0day randconfigs finding lots of issues KernelCI needs to upgrade to clang-10 Test more branches Add more LLVM tools Need to integrate tuxbuild client into ci Fortified memcpy issue using ToT LLVM March 25, 2020 Dtc yylloc patch eye out for stable Will regress our CI when it lands, as we’re carrying it out of tree for now, but backporting as is won’t be sufficient. Syzkaller fix https://lore.kernel.org/lkml/20200323191243.30002-1-ndesaulniers@google.com/ Arm64 ptr auth fix https://lore.kernel.org/linux-arm-kernel/20200319181951.102662-1-ndesaulniers@google.com/T/#u Ci changes KernelCI: kernelci/kernelci-core#340 TODO: enable coverage of mainline and stable now that we have the configs right. CBL CI: tuxbuild prototyping Assembler X86 booting? Blocked on ClangBuiltLinux/linux#913, works otherwise. ClangBuiltLinux/linux#669 becomes an error in linux-next, so that needs to be fixed. Arm64 one llvm bug away for defconfig? Blocked on ClangBuiltLinux/linux#913, ClangBuiltLinux/linux#939 (potentially more for CONFIG_KVM) ClangBuiltLinux/linux#716 isn’t a blocker, but is really annoying and should get fixed. Polly Aosp llvm: https://android-review.googlesource.com/c/toolchain/llvm_android/+/1261718 Kconfig: https://groups.google.com/g/clang-built-linux/c/ZR7kT_Z0kp4/m/RqwkQ0OkAQAJ Linux Plumbers Conf micro conf proposals just opened, plan to do a ClangBuiltLinux micro conference. https://www.linuxplumbersconf.org/blog/2020/ Request for test: https://lore.kernel.org/lkml/20200317215515.226917-1-ndesaulniers@google.com/T/#u

March 11, 2020

Issues with -fno-common flag. Nathan discovered it has to deal with the device tree compiler (dtc). Might be an issue with it being built by the host compiler, and it might be broken for TOT gcc as well. PowerPC patch from Christopher Leroy. Broken compile-time assert for Intel (from last week). Issue with const struct designated initializers. Nick has an idea of how to fix this. Parsing asm inline better - https://reviews.llvm.org/D75563 Nathan submitted his first patch to Clang - https://reviews.llvm.org/D75758. Congrats! :) 491 patches for converting fallthrough comments on the kernel. Richard Smith ripped out comment parsing from Clang. https://reviews.llvm.org/D73852#1901694 Symbol visibility issue for lib-y vs obj-y. Sparc had an issue (Masahiro fixed) Last issue for x86 allmodconfig. Now has hit an issue in MIPS. RISC-V support needed in our CI. 0-day bot and kernelci are both building configs with Clang. Out of tree patches for the CI for -fno-common We do this sometimes to fix really bad situations. 2 operand assembly issue where 2 of them are zero, but can be solved a few different ways. Tuxbuild microservice from Linaro Might convert some of our TravisCI. YAML Local builds

February 26, 2020

Bolt vs. Propeller post-LTO Kees’ linker warning cleanup (less than 100 lines changed) ChromeOS using LLD + Clang everywhere now 4.4 vdso still using bfd due to some missing patch related to a linker script name. ChromeOS kernels 4.14 and 4.19 are now using pattern initialization. One issue still causing crashes. ARM suggests Oliver Stannard as a code reviewer in preference to Peter Smith for issues, especially with integrated assembler bugs. Red Hat meeting 4000+ packages that they want to use as a continuous integration test for LLVM. Curious about userspace switch to Clang/LLVM. Ubuntu director of kernel engineering Adding a Clang built source package would be pretty easy apparently. Portland trip might allow in-person conversations with Canonical and Linus. Linus + asm goto with output constraints Built a Clang with Bill’s patch for output constraints. Used that to build Linux with his patches using it. Responded with a few bugs that were fixed within hours of reporting them. Positive feedback about Clang codegen. Perf showing 2 GCC instances in comment block of executable via objdump One comes from working with glibc. Other one is probably a non-hermetic build issue. Congrats to Bill for asm goto with outputs landing on Monday Register live-in info is unexpected until after register allocation. Terminator form of copy instruction. Phi node choosiness. -Werror for prod kernel builds Primarily in KVM unit tests. Bill sent out a lot of patches for review. First Clang-built prod kernel will be 903. 900 is current one they are working on. So maybe April. :) kselftests seem to all be built with explicit GCC Plea from Nick to remember to CC mailing list on any upstream patches Fangrui mentions being interested in fixing integrated assembler issues, so that he can remove gas. Reserved register r7 warning cleanup Maybe this shouldn’t be emitted if we are using -fomit-frame-pointer. Zero day bot builds with Clang are live! Emails being sent when they break. One x86 maintainer acknowledged fixing a break (probably without knowing it was a Clang issue). KernelCI Documentation patch for building kernel with Clang sent for review Maybe a warning for version < Clang-9 use.