You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This tracks K2, objects and the link. Every unit of x86-64 defconfig compiles and assembles with rucc, and vmlinux links. The section, symvers and vec-audit differentials are clean. Bring-up flags are allowed for -m16 and -m32 only, since those are the i686 parts that K4 delivers. The full text is in docs/plan/15-milestones.md.
Harness
rk sections-diff and rk symvers-diff
rk vec-audit, which finds vector and x87 instructions in objects built without the FPU
rk build 7.2.8 --row X64 --config defconfig with RK_BRINGUP=m16 produces vmlinux and bzImage. All 3042 units compile, and the kernel boots under QEMU with every smoke check passing. The last fixes were Do not count blocks that only jump against the range walk depth rucc#2536, #2537, #2540, #2542 and #2544
rk config-diff and rk flags-diff are clean, with the K1 expected differences gone. On 7.2.8 the config diff has 6 symbols, all explained, and the flags diff has none
The same on 6.12.y and 6.1.y. On 6.12.111 defconfig all 2934 units build, sections-diff has 399 differences and all are explained, kernel-asm is 2934 of 2934 and objtool reports nothing after Write functions in the order gcc writes them rucc#2859. On 6.1.188 defconfig sections-diff has 382 differences, all explained, kernel-asm is 2763 of 2763 and objtool reports nothing
RK_TWICE=1 finds every object identical across two compiles. On 7.2.8 defconfig with --twice, all 3046 compiles wrote the same bytes the second time and all 3042 units built
This tracks K2, objects and the link. Every unit of x86-64
defconfigcompiles and assembles with rucc, andvmlinuxlinks. The section, symvers and vec-audit differentials are clean. Bring-up flags are allowed for-m16and-m32only, since those are the i686 parts that K4 delivers. The full text is in docs/plan/15-milestones.md.Harness
rk sections-diffandrk symvers-diffrk vec-audit, which finds vector and x87 instructions in objects built without the FPUrk modules-auditRK_BRINGUPpath in the shim, used only for-m16and-m32. Done in Retire the as bring-up class and refuse unknown classes #29, where theasclass is retired and unknown classes are refusedrk objtool-report, run early at K2's midpoint to answer open question 2rucc
asm gotowith bodies and outputsR_X86_64_32S, weak symbols without GOT-mgeneral-regs-only,-mno-sseand-mno-80387(-mgeneral-regs-only and -mno-sse as a hard constraint on x86-64 rucc#2277). Done in Keep the vector registers and the x87 stack out under -mno-sse and -mgeneral-regs-only rucc#2318, merged=3is taken with-mno-ssein Keep the vector registers and the x87 stack out under -mno-sse and -mgeneral-regs-only rucc#2318, merged-mcmodel=kernel. AArch64 is K6, as The -mstack-protector-guard flags, and stack protector on AArch64 rucc#2279 says, and stays open there-fno-jump-tables(Retpoline, return thunk, SLS and -fno-jump-tables on x86-64 rucc#2280). The extern thunks landed in Honor the x86-64 speculation hardening flags rucc#2331, and thekeepattributes are in Honor function_return("keep") and indirect_branch("keep") rucc#2344, merged.thunk-inlinefor the vDSO, andthunkwith it, are done in codegen: honor thunk-inline and thunk for -mindirect-branch and -mfunction-return rucc#2350, merged-fzero-call-used-regs=used-gprand the attribute (Implement -fzero-call-used-regs rucc#2281). Done in Honor -fzero-call-used-regs and the zero_call_used_regs attribute rucc#2345, merged. The vector choices, which the kernel does not use, are Zero the vector registers under -fzero-call-used-regs=used and all rucc#2335__builtin_constant_pcontract, global register variables and the missing inline asm modifiers. The contract is done in opt: follow __builtin_constant_p answers to the branches they decide rucc#2347, merged, andcurrent_stack_pointeras a global register variable is done in codegen: the stack pointer as a global register, and three inline asm fixes rucc#2383, merged. The modifiers%V,%a,%z,%nand%Hare done in codegen: the x86-64 inline asm modifiers %V, %a, %z, %n and %H rucc#2386, merged.Corpora
kernel-asmgraded in rucc-compat. The harness is in Add kernel-asm, the assembler differential over an rk build of Linux 7.2.8 rucc-compat#180, merged. The grade itself comes from the nightly against a GCC buildconstant-p-after-inline,asm-goto,asm-local-labels,gas-macros,mcmodel-kernel,general-regs-only. Done in Add the asm-goto, asm-local-labels and gas-macros facets, the inline assembly the kernel writes rucc-corpus#125 and Add the constant-p-after-inline, mcmodel-kernel and general-regs-only facets, the way the kernel is built rucc-corpus#126, mergedExit criterion
rk build 7.2.8 --row X64 --config defconfigwithRK_BRINGUP=m16producesvmlinuxandbzImage. All 3042 units compile, and the kernel boots under QEMU with every smoke check passing. The last fixes were Do not count blocks that only jump against the range walk depth rucc#2536, #2537, #2540, #2542 and #2544rk config-diffandrk flags-diffare clean, with the K1 expected differences gone. On 7.2.8 the config diff has 6 symbols, all explained, and the flags diff has nonerk sections-diffandrk symvers-diffshow no difference outside the rules of 09.4. On 7.2.8 defconfig sections-diff has 200 differences, all explained in sections-divergences.toml (Explain expected sections-diff differences #44), after asm: write each alias just after what it names, as gcc does rucc#2824 and opt: the output of an asm goto is not known to sccp rucc#2825. symvers-diff finds the same exports and CRCsrk vec-auditfinds nothing. Run with--reference, the only hits are the six FPU users that gcc builds the same way.Sunit and every GCC-Soutput assembles byte for byte the same, or has a recorded explanation. kernel-asm is 3042 of 3042 after asm: lay out gas's first round, where a later section's labels are worth their place in their piece rucc#2821 and asm: pad .eh_frame records to four bytes and the last to a pointer, as gas does rucc#2822RK_TWICE=1finds every object identical across two compiles. On 7.2.8 defconfig with--twice, all 3046 compiles wrote the same bytes the second time and all 3042 units built