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
- kexec regression now fixed in -next
- UBSAN handlers do not respect
-mregparm=3
(KSPP issue, upstream LLVM issue, proposed fix) - kCFI for
ARCH=arm
merged (and should be in -next shortly) - More work on building kselftests with clang
- Discussion around adding a label for issues or changes that impact the Linux kernel on the upstream LLVM issue tracker
- (Arnd) More warnings on by default in -next, watch for regressions
- KernelCI and others working on building kselftests with clang
- LoongArch folks resolved recent
-Wframe-larger-than
instance - v6 of kCFI for
ARCH=arm
- (Nathan) Investigating recently reported kexec regression
- (Nathan) Workaround sent and accepted for
__bad_copy_from()
error - Warning and compiler crash when attempting to enable
CONFIG_USE_X86_SEG_SUPPORT
: ClangBuiltLinux/linux#2013 - (Nathan)
__typeof_unqual__
: llvm/llvm-project#87392 - (Arnd) Turning on more warnings/groups
- LLVM 18.1.1 and 18.1.2 released and uploaded to kernel.org
- Fedora build issue resolved: ClangBuiltLinux/linux#2006
__bad_copy_from()
not eliminated withCONFIG_KCSAN
: ClangBuiltLinux/linux#2007- Short mainline regression with
-Wstring-compare
in__assign_str()
tracing macro: https://lore.kernel.org/CAHk-=wjxX16kWd=uxG5wzqt=aXoYDf1BgWOKk+qVmAO0zh7sjA@mail.gmail.com/ - Discussion from KernelCI around compiler versions: https://lore.kernel.org/42c7f5a3e07c274c2a9d2e45a973c6306b2ba74f.camel@collabora.com/
- LLVM 18.1.0 released (kernel.org build WIP)
- Started using kernel.org LLVM toolchains in continuous integration (pull request)
-Wenum-enum-conversion
and-Wenum-compare-conditional
- issue tracker
- patch to move warnings to
W=1
- instances need investigation to see if real bugs or not
- Initial series for
ARCH=arm CONFIG_CFI_CLANG=y
posted - (Tom) Hitting build failure when upgrading from LLVM 17 to 18 in Fedora, will file issue for further investigation
- SystemZ support for
ld.lld
andllvm-objcopy
landed inmain
andrelease/18.x
- (Nathan) Kernel side changes for full
ARCH=s390 LLVM=1
support landed - LLVM 18.1.0-rc2 and LLVM 18.1.0-rc3 released and uploaded to kernel.org for testing
- (Arnd) Fixes for
-Wcast-function-type-strict
CONFIG_LD_DEAD_CODE_DATA_ELIMINATION
support forARCH=arm
(currently broken forld.lld
)
- (Nathan) UML breakage with
clang-18
- s390
ld.lld
support - (Nathan, Justin) Tree updates in continuous-integration (drop 4.14, add new ChromeOS branches)
- RISC-V LTO accepted
- LLVM tip of tree is now 19,
release/18.x
branched
- (Fangrui) RISC-V LLVM main boot regression (issue, fix)
- (Justin) Continuous integration caching
- (Nathan) RFC for bumping minimum supported version to 13.0.1 (mailing list, GitHub)
- LoongArch can now build without any disabled configurations with LLVM main because
__attribute__((model("extreme")))
is now supported inclang
- New fortify warning in
fs/smb/client/cifsencrypt.c
- New instance of
-Wenum-enum-conversion
in# drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_dpia_bw.c
in -next (fix) release/18.x
is scheduled to be created in two weeks, get changes landed ASAP targettingclang-18
- RISC-V linker failure around
R_RISCV_{SET,SUB}_ULEB128
- LoongArch
CONFIG_RELOCATABLE
fix - (Nathan)
__muloti4
generation issue - (Nathan) LLVM 17.0.6 released and uploaded to kernel.org (last 17.x release for the time being)
- (Justin) Continuous integration v3
- (Nick) Work on
rm
constraints - (Bill) Work on
__counted_by
- Plumbers videos live
- (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
- arm64 boot failure
- looking like a compiler bug
- bug scrub last week
- llvm dev conf last week
- discussions around stack usage,
-fbounds-safety
- discussions around stack usage,
- riscv LTO has an issue with LLD not respecting relaxation
- header refactoring
- circular includes
- (Nick) inline asm "rm" work
- asm goto error diagnostic fixed
- improving constant expression evaluation
- perf LTO
- LoongArch LLD support landed in clang-17
- tuxmake work for CI; hexagon prior-art?
- qemu x86 tcg issue
- powerpc missing instruction
- Discussion around promoting W=1 warnings to always on, even if some architectures have lingering instances
- release/17.x branched
-fbounds-safety
video published- KASAN + LTO fixes
- indirect/computed goto error diag
- reduce scripts
--gc-sections
for RISCV- no update
- Loongarch support for LLD is close and necessary to start kernel builds with LLVM=1
-fstrict-flex-arrays=3
triggering-Warray-bounds
in SCSI code in mainline- Arnd's fix accepted
- James Bottomley confirms in private email thread that PR will be sent Friday-ish
- (Nathan) PPC64 (BE) now building with LLVM=1
- (Sami) kCFI for RISCV
- (Space) working on moving syzbot builds to LLVM=1
- (Yonghong) fix for livepatch + LTO
- EuroLLVM videos being posted
- CFP for Toolchains Track at Linux Plumbers 2023
- ClangBuiltLinux meetup 2023
- RISC-V ld.lld dead code elimination performance regression
- Continued fallout from
clang
changing certain options to be target specific - s390 link error in decompressor (issue, patch)
- LoongArch building with certain configurations disabled as of
next-20230628
- Further discussion around Apple's
-fbounds-safety
LLVM proposal- Proposed competing
__element_count__
attribute merged for 6.5-rc1
- Proposed competing
- Group diagnostics & specificity differences
- (Nathan) "kbuild: Update assembler calls to use proper flags and language target" backports
- (Nathan)
-Wunused-variable
and__attribute__((cleanup()))
fix - (Nathan) boot-utils images moved to GH releases
- ftrace disabled for 32b ppc
- riscv MEDLOW
- disable for COMPILE_TEST?
- CONFIG_ARM_MODULE_PLTS might do something similar
- disable for COMPILE_TEST?
- s390 series
- ppc allmod stack frame - due to sanitizers?
- (Arnd) lots of W=1 warning fixes
- (Anders) QEMU 7.2 regression?
-Wstrict-flex-arrays=3
-Wbuiltin-macro-redefined
- arm64be vdso ClangBuiltLinux/linux#1859
- stack protector issue ClangBuiltLinux/linux#1854
- (Nathan) rewrite boot-utils to DL initrd images
- LLVM meetup planning before plumbers
- US LLVM dev conf announced
- (Yonghong, Song) LTO
- improvements in perf (ThinLTO only tested so far) webserver 0.3%
- Live patch
- issue with strings being promoted to globals, non-deterministic hash value
- Let's meet with Pete Swain
- (Maksim) BOLT
- post-link optimizations
- good perf gains over LTO+PGO depends on the workload though
- kernel is booting in vm and now on hardware
- interesting perf workloads?
- not full optimizations enabled yet (safety) maybe only ~50%
- how is perf collected?
- test cases?
- a few unlikely/likely are wrong
- Boot failures
- PIE issues x86
- No debug info for stack guard checks
- x86 stack protector code references
@GOTPCREL
and@PLT
even when built with-fno-pic
or-fno-pie
. - inefficient segment register relative access
- Inline asm P output template
- (Arnd) 140 patches sent for fixing missing prototypes
- (Fangrui) SFrame
- (Fangrui) arm64 linker script fixup
- (Nathan) PPC allmodconfig building!
- (Nick) android-4.19 boot failure fix
- (Yonghong) pahole fix for DW_ATE_unsigned_1024
- (Bill) element_count prototype
- (Bill) CBL meetup Nov 11 Saturday before Plumbers
- x86 pie patches mention some issue with clang
- KASAN stack option discussion
- (Arnd) missing prototype W=1 fixes
- Sframe
- will clang support be necessary?
- riscv assembler .option directive
- 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
- Tom working on cleaning up unused inline functions and unused but set variables (archive)
- Nick continuing to investigate LTO boot issue on android-4.14-stable
ARCH=powerpc allmodconfig
in continuous-integration (Nathan)- Stable versions of LLVM now on kernel.org (Nathan)
- MIPS positional parameter warning fix (Nathan)
- Adjust dependencies for dynamic ftrace for RISC-V (Nathan)
- 5.10 backports for RISC-V
zifencei
andzicsr
(Nathan)- It appears LLVM has no intention of matching binutils behavior around
zifencei
andzicsr
.
- It appears LLVM has no intention of matching binutils behavior around
- kexec regression with LLVM 16+ (mailing list not CC'd, found by browsing lore)
- Masahiro looking to remove
CROSS_COMPILE
determining--target
- RISC-V enabling ACPI, exposing old issue in Hisilicon crypto driver (patch, bug)
- Arnd looking into fixing
-Wmissing-prototypes
for ARM and x86
- (Nathan) PPC64 (BE) + LLD support
- additional issue related to CROSS_COMPILE being set to 32b target?
- (Nathan) boot-qemu and tc-build rewrites
- (Nick) improving backend diagnostics
- (Nick)
-Wfunction-fallthrough
- (Bill) s390 fortify issue
- clang-16 officially released
- (Nick) backend term issue https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=efbcbb12ee99f750c9f25c873b55ad774871de2a
- Linus asked about maybe eliminating ARCH and CC and adding those to kconfg
- (Kees) call used regs paravirt case has come up again, now with GCC
- (Nathan/Connor) mixed toolchain riscv issue
- (Marco) remove -g for kfence tests
- (Nick) scaling down CI
- (Nick/Bill) "p" constraint
- (Conor) riscv breakages due to extensions moving out of I spec
- ICC support is gone
- (Nathan) ppc mtune flags
- ppc64 (BE) elfv2 testing possible now
- MIPS issue w/
beqcz
- s390 and hexagon ioport support optional allmodconfig null ptr deref series being rebased
- (Nick) asm goto with outputs on indirect edges landed in clang-17
- One bug report so far: llvm/llvm-project#60855
- (Nick) KASAN +
CONFIG_FORTIFY_SOURCE=y
fix - (Nathan)
clang-16
in continuous integration - (Nathan)
CONFIG_PPC64_BIG_ENDIAN_ELF_ABI_V2
series - clang conditional tail call static call fixes merged
- (Nathan) backports for stable
- RISC-V ISA extensions causing interop issues with binutils
- (Connor) Recent issue reported on 5.10 (likely needs Linux fix)
- Older issue (getting fixed in LLVM/
ld.lld
)
- PowerPC
-mtune
issue - (Nathan) Python utility updates using classes for better organization and flow, testing appreciated!
- Revisting caching in continuous integration
- (Bill) randstruct fix - report
- FOSDEM (2 clang built kernels)
- Chimera Linux - 22:00 timestamp
- Fedora Asahi - 13:13 timestamp
- fortify issue
- boot failure report
- (Serge)auto-init optimization
- objtool memory reduction patch set
- (Nick)
- yet another issue with
-fzero-call-used-regs
: https://reviews.llvm.org/D138757 - get more aggressive about inlining functions containing
__builtin_constant_p
- CrOS' toolchain wrapper is setting
-fdebug-info-for-profiling
, which changes the behavior of inlining in non-obvious ways
- CrOS' toolchain wrapper is setting
- blog post on debugging
-Wframe-larger-than=
- converted by blog to hugo
- Discussion with HJL (GCC) about asm goto and endbr
- yet another issue with
- (Nathan)
- (Kees)
- LWN article about 4.9.y EOL
- Who's hiring
- clang-16 branched
- file todo about CI
- (Arnd) DebVM
- (Nathan)
- remove
-Qunused-arguments
- 2022 ClangBuiltLinux Retrospective
- remove
- (Sami) kCFI fixes
- 15.0.7 release for
-fzero-call-used-regs
issue - (Nick)
- (Bill) validating profile data from sampling
- (Arnd)
- LKFT regressions reported
- link not converging repro
- stable 4.9.y is EOL
- (Lee) AMDGPU driver disabled for non-32b targets
- ppc boot failure
- zero call used regs llvm patch
- difficulties w/ randconfig testing due to CONFIG_DEBUG_INFO increasing build times
- perhaps we need a dedicated KCONFIG option for ALLYESCONFIG/ALLMODCONFIG or RANDCONFIG
- kCFI
- Rust interop
- (sami) kCFI seal
- (Joao) ibt-seal disabling w/ thinLTO
- (Nathan) Fix for
__thumb2__
warnings accepted - (Nathan) Fix for lack of modpost warnings with LTO
- (Nathan) Investigating -tip
objtool
memory usage regression - (Kees + Bill)
SIGPIPE
handler revert merged into LLVM main and released in 15.0.6 objtool
build system improvementsARCH=arm allmodconfig -Werror
- (Sami)
-Wincompatible-function-pointer-types-strict
- (Nathan) Fixes for
-Wincompatible-function-pointer-types-strict
- (Nick) support for
-gz=zstd
- (Nick) asm goto with outputs along indirect edges, which found a GCC bug
- (Bill)
-fstrict-flex-arrays=3
landed - (Joao) emitting
0xcc
for-fpatchable-function-entry
- arm64 AMDGPU
-Wframe-larger-than
- LoongArch asm fixes, might be able to compile Linux soon?
- FineIBT queued in
x86/core
- s390 misaligned symbol linker errors
- s390 requiring clang 15.0.0
- New instance of recordmcount issue
- Initial glibc clang patches submitted, slimmed down v2
- (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
- x86 PKS (kernel changes)
- glibc w/ clang skunkworks
- Let's talk w/ Bero about https://github.com/OpenMandrivaAssociation/glibc
- (Craig) improving division by constant
- Clang will be missing support for signed divisions
- (Nick) Android toolchain upgrades
- i386
- arm
- uldivmod in nwfp
.fnstart
issue (reverted)
- riscv LTO CI
- website formatting for build matrix
- rust, kcfi, kunit, and hardening updates for this merge window
- (Nathan) riscv binutils interop bug w/ DWARF
-gsplit-dwarf=single
might be interesting to use in the kernel- clangd folks put a dent in top perf issue
- Yonghong Song from Meta stopped by to discuss Meta using ClangBuiltLinux + PGO in production at Meta as alluded to at Linux plumbers conf.
- Bill is seeking feedback on the ClangBuiltLinux Meetup, check your emails.
- PPC xor autovectorization issue.
- Joao is working on JCC tail calls to thunks in llvm.
- overflow_kunit issue.
- s390 qemu issue fixed.
- kCFI long tail fixes.
- Nathan has been fixing multiple -Wframe-larger-than= instances in AMDGPU. 01\
- Nick tracking register exhaustion blocking Android toolchain upgrade.
- ChromeOS dealing with AutoFDO-related issues blocking their toolchain upgrade.
- Discussions being held about additional Rust and RISCV CI testing.
- 6.1 merge window to open in ~2-3 weeks
- Matthew Wilcox gave a talk on 128b pointers at plumbers.
- CBL meetup is this weekend
- plumbers is next week
- clang-15 has been released!
- (Nick) fixing up debug info for asm, split debug info
- (Kees) fixup for FORTIFY
- (Bill) ZERO_CALL_USED_REGS and paravirt
- (Nick)
-Wformat
back on - (Masahiro) might be bumping binutils min version to 2.25.1
- (Nathan) AMDGPU stack useage fixes
- (Anders) qemu boot timeouts
- (Craig) div by constant
- (Saleem) fixing RISCV regression
- (Nick) asm goto cleanups
- (Nick)
-Wformat
cleanups - (Nathan) Remove
-Wno-format-zero-length
- TODO: Enable subflags of
-Wformat
if-Wno-format
is set
- TODO: Enable subflags of
- (Nick) remove CONFIG_CC_HAS_ASM_GOTO
- (Nathan) chasing lots of
-Wsometimes-uninitialized
in -next (issues) clang-15
in CI- (Nathan) x86/build: Move '-mindirect-branch-cs-prefix' out of GCC-only block
- Required by this series, which landed in 5.16
- (Nathan) New instance of
-Wbitfield-constant-conversion
- (Bill) Looking into reg stack clearing boot failure with paravirt
- (Justin) 2.1% speedup in build time
- (Craig) dword division by constant
- Nick setup chat with Eli
- riscv boot failure report
- ppc ftrace regression
- (Nick) exec stack (BFD 2.39)
- (Phoebe)
-mindirect-branch-cs-prefix
- Need kernel side fix to use this
- (Yuanfang) UBSAN fix for setcc inline asm
- (Nathan) rewrote boot-utils in python
- (Remi) rewrote CI to use tuxsuite plans
- New AOSP clang
- Do we need to let tuxsuite know?
clang-15
for CI- timetable for toolchain track at plumbers is live
- Wednesday Sept 14 2022
- (Justin)
-Wformat
should be headed to mainline this merge window
- (Nick)
blockaddress
/callbr
- (Justin)
-Wformat
- retbleed fixes / kcfi changes
- mips 32b 64b o32
- X32
- llvm-15 release
- aeabi_ulmoddiv
- cbl meetup before plumbers
- Retbleed
- (Nick) llvm patch
- (Nathan) 0day randconfig fix
- (Nathan) reported issue with sanitizers
- Nick will be focused on LLVM backports for Android, need help from testers to report issues
- backports queued back to 5.10.y, Nick needs to know if 5.4 or older is attempted
- (Nick) coresight patch picked up
- (Arnd) mentioned its probably better to fix this differently in the long run, perhaps "i" constrained inputs to inline asm
- (Fangrui) implement -mrelax on lld!
- (Justin) lots of -Wformat fixes, time to remove -Wno-format for clang?
- callbr rework, need time to test
-mstack-protector-guard-symbol
- (Peter) is function attribute "keep" arch specific?
- (Nick) Yes
- ubsan divide by zero, need to disable this config for clang for now
- (Arnd) x86-64-v2 might be a good minimum target for static clang builds
- Patches for gen_compile_commands 12
- (Nick) axe CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3
- (Nick) coresight fix for UBSAN_TRAP
- (Nick) issue with objtool fallthough
- (Nick)
-Wunused-but-set-variable
building perf - (Nick) PGO done for static clang, but musl profiles hurt perf
- (Nathan) fix for downstream incfs
- (Nathan) sigpipe with
grep -q
- (Nathan) chasing cros ci build timeouts
- (Nathan) lld-11 breakage in -next
- (Arnd) need musl cross libs for hostcc
- (Tom) gcc target triples aren't necessarily the same behavior for clang
- (Tom) fedora links with -z,now
- Upstream link against libclang-cpp.so
- PGO experiments
- (Justin)
-Wformat
warning fixes
- CBL Meetup attend form
- LLVM Bay Area Monthly Meetup (Mon July 11 '22 6pm)
- (Nick) Coresight assembler issue v4
- (Nathan) container builds ported to self hosted actions, aarch64 host builds working.
- (Justin)
-Wformat
fixes 012 - (Nick) toolchain
- TODO: is there an s390 gnu binutils multiarch package on alpine?
- (Nathan) testing ChromeOS kernels again
- CI patch application failing
- (Mark) kselftest cross compilation wired up
- (Nathan)
-Wframe-larger-than
in sound/soc/intel/avs/path.c __aeabi_uldivmod
in drivers/mtd/parsers/scpart.o
- (Phoebe) x86 SLS patch landed
- (Nick) kernel.org toolchain work
- (Nathan) s390 LLVM_IAS=1 in ci
- (Nick) ARCH=arm
-Wunused-command-line
will need compiler change. - (Nathan) libvert blog post
- build timeouts?
- (Kees) BOS
- ppc vdso lld patch is merged, LTO next?
- merge window open
- riscv asm patch needed
- meetups (CBL & Plumbers)
- loongarch did the llvm patches go in?
- LTO for riscv
- cbl meetup 3 location
- plumbers location
- (Nick) ARCH=arm -Wunused-command-line
- (Nick) statically linked clang image for kernel.org
- regression from 64b div on 32b arm for old versions of clang.
- Dropped
- (Nathan) working towards enabling chromeos kernel config testing in ci
- 390 LLVM_IAS patches, LTO next?
- (Nathan) wire up CI support
- (Nick) fixed blocker for removing
-ffreestanding
from i386, for FORTIFY_SOURCE - download url blank for some tuxsuite builds
- (Nathan) ppc vdso LLD fixes
- interesting builtin patches
- riscv 9th arg calling convention issue reported
- (Bill) AArch64 Add support for -fzero-call-used-regs
- objtool regression, patch pending
- arm eabi -next regression
- (Mark) clang cross compile kselftest doesn't work correctly
- kCFI
- LTO for ppc64le and arm
-fzero-call-used-regs
- randstruct
- KMSAN
- cbl meetup 3 CFP
- (Bill) randstruct in phoronix
- (Sami) kCFI
- (Joao)
-mibt-seal
- (Joao) Fine IBT support
- (Nick) Plumbers planning
- (Nick) finally fixed LTO blockaddress issue in llvm
- (Nick) Paperwork on restarting LLVM Bay Area Meetup
- (Nick) LLVM+BOLT kernel measurements
- (Nick)
-ffreestanding
on i386 higher priority - (Bill) Meetup CBL
- (Nick) docker image in the works
- (Tom) new llvm release cycle
- (Bill) randstruct
- (Nathan)
ARCH=um
in CI - (Nick)
CONFIG_UAPI_HEADER_TEST=y
with bionic sysroot, Masahiro agrees we should pursue-nostdinc
. - (Nathan)
-Wdeclaration-after-statement
kernel fix - (Sami) cfi aarch64
__builtin_function_start
- (Joao)
-mibt-seal
LTO -Wno-gnu
fixes- (Nathan) aarch64 qemu FEAT_LPA
- (Nathan) debugging paravirt -fzero-call-saved
- Meetup Date Sept 10-11, announcement posts incoming, CFP too. Dublin, Ireland.
- https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.18-More-Flexible-LLVM
- bootconfig LTO issue reported.
- llvm-14 released.
- 5.18 merge window is open
-std=gnu11
change in Kbuild tree, PR not yet sent.-Wdeclaration-after-statement
fixed inarm_neon.h
ARCH=arm BE in clang-15, need kernel fix
- (Nick) Android CONFIG_UAPI_HEADER_TEST w/ Bionic sysroot WIP, Android kernel toolchain upgrade
- ARCH=um support! Nathan wiring up CI coverage and boot-utils.
- (Bill)
__builtin_read_eflags
DOA. - (Bill)
-Wformat
patches in the works. - (Bill) randstruct work refreshed.
- (Bill) cr4/0 pinning
- CFP season (plumbers MC CFP, Kernel security, EuroLLVM).
- More kernel IBT discussions with Intel.
- João Moreira has done a lot of research in the area.
- https://github.com/intel/fineibt_glibc/commits/fineibt
- https://github.com/samitolvanen/llvm-project/commits/kcfi
- clangify-glibc https://sourceware.org/git/?p=glibc.git;a=shortlog;h=refs/heads/azanella/clang
- Spectre-BHB fallout
- (Nathan) aarch64+LTO header inclusion issue
- (Nathan) arm semicolon
- arm lld error
- arm operand
- (Nick) "Never resolved function from blockaddress" fix
-std=gnu11
early 5.18 merge window- (Nathan) make LLVM= more flexible
- CONFIG_UAPI_HEADER_TEST
__diag
support- (Fangrui) ppc lld fix
- (Nick) mips sp register
- GCC added SCS support :)
- x86 IBT working with clang
- tuxrun WIP, might be nice to have musl to cross compile various tests for
(NOLOAD)
error/warning__alloc_size(1)
issue with__kmalloc_track_caller
- NULL pointer dereference in
net/core/rtnetlink.c
: - Continuous integration now supports
clang-14
after workflow split - Support for
ARCH=um
- Mitigating kernel risks on 32-bit ARM
- GCC warnings with
-std=gnu11
, clang does not warn due to-fno-strict-overflow
, which implies-fwrapv
, which makes signed integer overflow "defined"
- (Kees) FORTIFY_SOURCE clang patches
- (Nick) ARCH=i386 kinda depends on
-ffreestanding
atm
- (Nick) ARCH=i386 kinda depends on
- (Sami) kCFI clang patch posted
- TODO: llvm patches for x86 Ibt
- (Nathan) has good summaries for enabling CONFIG_WERROR for arm64 and x86
- in particular DMA_BIT_MASK patch kind of deprioritizes ClangBuiltLinux/linux#92 again.
- (Bill) landed initial support for
-fzero-call-used-regs
option - (Nick) a fix for objtool warnings for configs that set
-march
- (Nick) rebased eflags patch, still don't really understand redzone concerns.
- (Nick) chasing a clang-14+ objtool warning
- ppc lld boot regression
- ideas for intern project?
- meetup?
- (Arnd) -ffreestanding per arch may have just needed to be on lib/string.h (only 4 are x86, mips, xtensa, m68k)
- mips mentions something in additon to string.h functions
- (Arnd) 10% build time improvement by making atomics extern functions rather than macros
- plumbers 2022 will be in Dublin, uConf CFP is open
- (Ard) fixups for ARCH=arm ftrace
- (Nick) focused on objtool warnings regarding
asm volatile
- Probably going to add -Wasm-volatile to warn when
volatile
does nothing (ie.asm goto
or no outputs)
- Probably going to add -Wasm-volatile to warn when
- Met with Intel to discuss kernel IBT, PeterZ has patches
- (Sami) working on "kcfi"
- CFI issue reported with blake2s
- issue with false positive warnings on globals coming up again.
- sysroot
- arnd header cleanup randconfigs for ARCH=arm ARCH=arm64 1.7x speedup with clang
- clang noundef analysis
- CrOS analysing most used headers in LLVM
- Kees' LCA talk
-Wshorten-64-to-32
- (Nick) asm goto fixes
- issue reported with asm volatile?
- no_stack_protector + always_inline changing, likely to resurface issues with LTO + suspend/resume
- _attribute_(deallocator) clang feature request
- Need to focus on global warnings again
- LLD feature request for "pass through" of sections for -ffunction-sections -fdata-sections
- Should be filed as a feature request to gnu binutils
- https://maskray.me/blog/2020-11-15-explain-gnu-linker-options#z-unique-symbol
- Ingo's fast header series
-dM with -E
together or differenced?
- Linux Conf AU coming up, see Kees' talk
- probably will be an -rc8 release to delay 5.16 until after new years.
- (Alexey) ARCH=powerpc LLVM_IAS=1 patches
- (Ard) XOR_NEON fixes in the works (marking parameters as
__restrict
) - (Ard) out of range fixup
- (Nathan) clang fix for -mno-outline-atomics
- (Nathan) updated bugzilla links to github
- (Nathan) Adding Links to Issues
- (Nick) asm goto fixes
- a few new LTO bugs filed
- (Bill) builtin eflags
- hyperv tickling ClangBuiltLinux/linux#92 (comment).
- (Nathan) playing with containers for boot testing
- GKH stopped by to say hello
- ARCH=arm allmodconfig warnings making it difficult to enable CONFIG_WERROR
- ClangBuiltLinux/linux#496
- LLVM issue tracker has moved from bugzilla to github
- kernel meta bug
- Issue numbers aren't 1:1
- You can visit llvm.org/PRXXXX where XXXX is the OLD PR number to get redirected to the new github issue number, ie. llvm.org/PR4068
- We should:
- update our bug tracker links
- update links in kernel source
- update links in LLVM source
- (Nathan) LTO breakage with .macro redefinitions fixed
- (Nathan) Change TuxSuite targets
- MIPS LTO support
- Asks about ARCH=arm LTO
- whole bunch of new mips bugs filed recently
- (Marco)
-ftrivial-auto-var-init=
and allocas - (Kees) deprecating -fsanitize=object-size
- (Nick) asm goto w/ outputs breakage with "+r" constraints - fix updated
- Probably going to look at ClangBuiltLinux/linux#1439 next.
- (Nick) Android work
- Upgrading kernel toolchain
- minimizing
make
invocation for Android T - VTS tests
- u-boot 32b ARM+LLD
- RISC-V relocation R_RISCV_HI20 out of range with CONFIG_CMODEL_MEDLOW=y
- (Arnd) unaligned access (siphash?) (Ard has a draft reply)
CONFIG_UBSAN_ALIGNMENT
+HAVE_EFFICIENT_UNALIGNED_ACCESS
- (Arnd) header file dependencies - Linus had feedback
- interesting glibc abi project
- reminiscent of tendra?
- (Nathan) Reducing an LTO Linux kernel bug with cvise
- (Nathan) raise llvm min version to 11
- (Bill) asm goto -Wunitialized - fix
- (Nick) asm goto w/ outputs breakage with "+r" constraints - fix
- (Nick) arm32 stack guard CrOS test failure - fix
- (Phoebe) re-enabling float/double support even for -mno-x87
- LTO breakage with .macro redefinitions
- (Maz) CFI breakage
- (Nathan) Long double literals
- Time to upgrade to clang-11?
- (Nick) patch for armv6 hard thread pointer
- (Nathan) linux-5.15.y CI coverage wired up
- (Phoebe) -mno-fp-ret-in-387, -mskip-rax-setup
- (Ulrich) commented on open s390 LLVM_IAS=1 bugs, Ilie sent a patch
- (Anders) has been sending patches fixing warnings from the kselftests
- Interesting thread: RFC: adding support to GCC for detecting trust boundaries
- LLVM dev meeting
- (Arnd) mentioned build time regression on IRC
- Sami's x86_64 mainline CFI branch red
- (Tom) BUILD_BUG -> _Static_assert and typeof(x) -> __auto_type clang-tidy
- (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.
- 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
- regression in next
- (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
- Meeting notes moved to github
- Meetup in Oct
- (Nick): Working on ClangBuiltLinux/linux#1302 in LLVM.
- BLK_DEV_NBD issue all resolved ClangBuiltLinux/linux#1438
- (Serge, Nick): small fixes for inline https://reviews.llvm.org/D111009, https://reviews.llvm.org/D107872
- Collabora blog post on glibc+llvm:
- https://www.collabora.com/news-and-blog/blog/2021/09/30/a-tale-of-two-toolchains-and-glibc/
- "Glibc built by LLVM should be achievable if we consider the successful effort to add first-class Clang support to the Linux kernel which is also a complex and historically tied-to GCC project." "Even without a big concentrated effort like the Linux kernel had..."
- https://sourceware.org/bugzilla/show_bug.cgi?id=28376
- (Nick) thumb2 boot failure in qemu 6.1.0+ fix: https://lore.kernel.org/llvm/20210929190810.1597399-1-ndesaulniers@google.com/
- (Kees, Nathan) CI problem matcher updates:
- exponential backoff
- (Sami) CFI x86 v4: https://lore.kernel.org/lkml/20210930180531.1190642-1-samitolvanen@google.com/
- kselftests broken
- muloti4
- should disable for linux (not android, cros?) and windows (not cygwin)
- https://bugs.llvm.org/show_bug.cgi?id=52043
- -Wframe-larger-than= discussion
- why does GCC use less stack than Clang with the same KASAN features enabled?
- dynamic tools team saying not a bug
- Can we limit inlining for kasan?
- Can we disable -Wframe-larger-than= for KASAN_STACK?
- Minimize the warnings from allmodconfig/allyesconfig
- Avoiding disabling KASAN_STACK w/ clang.
- Too much padding between objects in KASAN_STACK w/ clang?
- Can we tune the inline cost model for KASAN (not ASAN)?
- TBD next week; Arnd to pull a few interesting use cases (very high stack useage) from all*configs, Marco, Glider, and Nick to analyzer a few individual cases.
- Bill describing difficulties in implementation of zeroing callee used regs.
- Plumbers (Toolchain MC Friday)
- Almost back to green in CI now that we can apply patch files
- TODO: re-enable -Werror for allmodconfig builds
- Arnd’s randconfig W=1 builds almost green for GCC and Clang
- Kees had QEMU buffering fixes for ci
- Nick bootstrapping llvm against musl
- https://reviews.llvm.org/D109837
- Try -DLLVM_HOST_TRIPLE=
- Need attribute error warning kernel fixes to be picked up by Miguel
- __mulodi4 llvm fixes in, need to do kernel fixes
- Todo file bug against gcc for mulodi4?
- Switch bit test fixes landed in llvm fixes LTO boot
- -Werror
- Sanitizer vs frame-larger-than=
- Stable vs compiler version checks
- TODO Disable WERROR in CI
- LLVM_IAS=1 CROSS_COMPILE landed in mainline
- 5.15 merge window open
- Conf cfps
- Kasan s390 ci coverage added to our CI
- Nearing Github Actions CI matrix limit
- Kees fortify patches (being split into 2 series)
- New mailing list and IRC
- TODO update mailmap
- llvm@lists.linux.dev
- #clangbuiltlinux on irc.libera.chat
- Sami CFI patches
- Bill finding shadowing and scev issues
- b/198158061
- Talk to Miguel if you’re interested in Rust+kernel
- (Nick) tailcall optimizations for fortified routines
- Error+warning attributes landed
- 30 years of Linux!
- -Wimplicit-fallthrough for 5.15?
- ThinLTO regression in LLVM
- CFI x86_64 v2 series
- Currently limited to clang-14 but compiler side fix should be going in clang-13.
- -falign-jumps=0 warning
- clang-13 and sanitizer coverage in CI merged
- cc-option-yn removal
- -Wbool-operation enhancement
- PowerPC '-z notext' fix for CONFIG_RELOCATABLE
- Getting help from Intel on certain bugs
- llvm@lists.linux.dev
- LTO kbuild patches
- Fortify source series for 5.15 then 5.16?
- Bill looking into zero call registers
- ARMv4 LLD support discussion
--fix-v4bx
- cc-option-yn necessary?
- Blog Posts
- Oops! Can’t require LLD for Android R…
- Death to CROSS_COMPILE
- Death to LLVM_IAS=1
__attribute__((error(“”))) __attribute__((warning(“”)))
(Nick) for BUILD_BUG and friends- Distro configs now in CI (Fedora, Suse, Arch)
- CFI fix for inline asm references to static functions
- LLVM13 CI coverage WIP
- Sanitizer build+boot CI coverage WIP
- CFI remove
__typeid__
symbols from JT to aid debugging (Nick) - ASAN ctor/dtor needed to boot test aarch64
__builtin_object_size
questions (Kees)- How to determine if something is a flexible array member?
- int foo [0]; // no size, just a marker/symbol that’s addressable
- int foo []; // flexible array member, malloc + additional size
- Why can’t flex arrays be in union, or alone in anonymous struct?
- https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h=kspp/memcpy/next-20210803/v2-devel&id=8725f84346c1be20ccb21aedb3e46f25e3ab9f3a
- https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git/commit/?h=kspp/memcpy/next-20210803/v2-devel&id=0f28d9daf643a1110bc7536f590e60035ba17635
- How to determine if something is a flexible array member?
- Fortify Source (Kees)
- Phoronix benchmarked LTO
- Intel 0 day bot now running clang static analyzer continuously
- RISCV + LTO patches sent
- Attr Error + Warning (Nick) WIP
- TODO (Nick): send v3 of CROSS_COMPILE
- TODO (Nick): Nathan had feedback on one patch
__error__
- LLVM14 to branch
- Max TCWG IRC libaro #linaro-tcwg on libera.chat
- Static analysis
- Sept 21 tentative clang-13 ship
- Death to CROSS_COMPILE!
- Death to LLVM_IAS=1
- Mips can now be built with LLVM_IAS=1
- Ppc and s390 left
- ?=
- RISCV
- (Nick)
__attribute__((error(“”))) __attribute__((warning(“”)))
- ThinLTO inline asm
- Hexagon allyesconfig almost ready
- Linaro Connect CFP
- Rust support? LLVM?
- Fallthrough edge case
- Abigail complex types
- PGO on the rocks
- Should be able to enable LLVM_IAS=1 on mips soon
- Still some warnings
- Should we flip LLVM_IAS=1 to on when LLVM=1?
- PPC
- S390
- Toolchain MC has been accepted at plumbers
- More Nest devices switching to clang built kernels
- Leaving freenode IRC
- Send LLVM Revert Checker tool to Tom
- Fortify source (Kees)
- -Wrestrict (Kees, Arnd)
- We can build more 32b ARM? Should we add more to CI?
- https://tinyurl.com/linux-architectures
- RISCV
- LTO
- PGO
- GCOV
- Bunch of objtool fixes last week (3)
- https://www.phoronix.com/scan.php?page=news_item&px=Clang-PGO-For-Linux-Next
- Working through last minute approvals for plumbers MC
- Started discussion internally about “hardware for hackers”
- Distributors conf & CBL meetup 2
- https://lists.llvm.org/pipermail/llvm-dev/2021-March/149234.html
- #clang-built-linux on LLVM Discord
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
(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
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.
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!
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
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
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
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:
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?
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
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
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
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/
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
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
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)
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/
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.
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.
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
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
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
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
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)
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)
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.
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
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
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.