Skip to content

Releases: tamnd/gcc-kernel

v0.1.23

Choose a tag to compare

@tamnd tamnd released this 10 Oct 00:58
781b0de

Changes

  • A cell that failed because the build machine ran out of disk is no longer counted as a failure in the matrix or the reports. It shows as no result, and a search runs it again (#247).
  • gk bisect-kernel --unit prints why the unit failed under each step, so an endpoint that fails for a different reason is easy to spot (#248).
  • When a link fails and the linker's message doesn't contain the word "error", the classifier now names the cell for what the linker said. Binutils 2.14's vDSO overlap message is one example (#249).

Findings

  • linux-2.6.23 with GCC 3.2.3 on x86_64 is now classified as gcc3-vdso-plt-overlap, the same class as GCC 3.3.6 (#249).
  • The 2.6.22 head.S "missing ')'" failure also happens with binutils 2.19.1, not only 2.14. The multiline-macro fix can't be bisected with GCC 3.2.3 because 2.6.23 fails on the vDSO link.

Results

The next publish drops the cells the 10-10 disk-full spike stopped, and they run again from the queue.

v0.1.22

Choose a tag to compare

@tamnd tamnd released this 09 Oct 22:56
00191b3

A patch release that classifies more of the edges the last publish left unnamed, and fixes two ways the matrix and the classifier misread a cell.

Changes:

  • A build that gk stopped for its budget is now classified as over budget even when its log was cut mid-line. (#242)
  • A cell that only built no longer hides a boot of the same coordinates in the matrix. (#243)
  • A KUnit run that hit its time limit is now named for the timeout, not for every suite it never reached. (#244)
  • over-budget now comes after the other rig signatures, so a boot that sat at a panic until its budget ran out gets the panic's class. (#245)

Findings:

  • A unit bisection confirms d1526e2cda64, "Remove stack unwinder for now", behind binutils-too-old-cfi. (#240)
  • tcg-ioapic-timer now covers 2.6.5 to 6.12 and also matches KUnit boots. (#240, #244)
  • tcg-rcu-timer-wakeup, qemu-assertion and tcg-drm-mm-frag-timing name three more TCG and QEMU faults seen on 6.6 and 6.12. (#244)

Results:

  • A publish with 3118 cells. (#241)

v0.1.21

Choose a tag to compare

@tamnd tamnd released this 09 Oct 21:05
7d6ac68

A patch release with new signatures for old toolchains, two fixes confirmed by bisection, and a KUnit fix that names the suite that actually broke.

Changes:

  • When the KUnit runs of a cell fail in different ways, the first error now comes from the run with the fewest failed suites, and the console shown with it is that run's log. Before, a run that stalled and lost every suite could hide the one suite that really failed. (#236)

Findings:

  • gcc4-incomplete-array-i2c classifies the i2c.h error GCC 4 and newer give on x86_64 2.6.11. (#236)
  • gcc46-m-elf-i386 also matches the "unrecognized command-line option" wording newer GCCs use. (#236)
  • gcc-below-min-on-22 covers the a.out tools that come with GCC 2.6.3 on 2.2, and binutils-too-old-subsection classifies the .subsection the 2.4 spinlocks use, which the binutils 2.8.1 in the egcs 1.1.2 bundle does not know. (#237)
  • Unit bisections confirm the fixes behind binutils-size-undefined (ad2fc2cd9253) and binutils-216-user32-cs (dd2897bf0f4d). The first replaces a whole-build bisection that had named the wrong commit. (#237, #238)

v0.1.20

Choose a tag to compare

@tamnd tamnd released this 09 Oct 17:14
47655a8

A patch release that boots the earliest 2.6 kernels on x86_64, fixes their builds from 2.6.5 to 2.6.8, and stops two machine quirks from looking like compiler results.

Changes:

  • x86_64 kernels before 2.6.4 boot on an AMD cpu with 39 physical address bits. Their setup code checks a CPUID bit only AMD sets, and with fewer than 40 address bits QEMU leaves the HyperTransport hole out of the memory map. 2.6.4 to 2.6.15 keep the Intel vendor. (#230)
  • The NR_CPUS notice a uniprocessor kernel prints for the second cpu is no longer counted as a splat, so those cells can reach L8. (#231)
  • x86_64 2.6.5 to 2.6.8 get the i386 pci headers linked into their output tree, which their Makefile looks for there under O=. (#232)

Findings:

  • tcg-hpet-clock classifies the clock check failing in some boots of x86_64 kernels before 2.6.21, whose time of day is interpolated from the HPET counter or the TSC. (#233)

Results:

  • Publishes 2765 and then 2846 cells. (#229, #234)

v0.1.19

Choose a tag to compare

@tamnd tamnd released this 09 Oct 11:28
c064b23

A patch release that lets bisections run over a chosen binutils and around known unbuildable stretches, forges old binutils, answers the kernel plan's open question 10 in a report, and confirms more fixing commits by bisection.

Changes:

  • gk bisect-kernel takes --binutils B and lays that binutils over the GCC bundle at every step, the way a cell of the binutils sweep does. The record's file name and the runs table name it. (#222)
  • Before the first step a bisection marks as skipped every commit that sits inside a known unbuildable stretch, such as the O= breakage between 2244cbd8a918 and 8c7f75d3257f in 2.6.16. (#219)
  • reports/bisections.md counts each signature's failing cells, from the newest cell of each crossing, and says how many open entries match no cell yet. (#224)
  • A binutils-only bundle uses gcc-3.4 where the forge has it, so binutils 2.14 forges in etch. (#226)
  • reports/question-10.md answers open question 10, which 3.x and 4.x branches a later GCC builds, from the last point of each branch, and reports/eras.md links to it. (#227)

Findings:

  • gcc48-ptrace-asmregparm (1b4ac2a935aa), gcc-min-81 on arm64 (118c40b7b503) and gcc-min-49 (6ec4476ac825) are confirmed by bisection. gcc3-0-1-refused cannot be, and its note says why. (#220)
  • gcc3-vdso-plt-overlap (c65916fe3586) and gcc43-no-unit-at-a-time (9ab34fe76114) are confirmed. (#221)
  • gcc-min-32 is fd285bb54d8a, not a136564 as the catalog had it, and gcc-296-frame-pointer names the same commit. (#223)
  • gcc42-proxy-pda (1bac3b383a93) is confirmed. (#225)

sweep-2026-10-09-2215

Choose a tag to compare

@tamnd tamnd released this 09 Oct 22:15
15e8fab

The result store as of sweep-2026-10-09-2215, for publish.yml, without the build logs.

sweep-2026-10-09-1623

Choose a tag to compare

@tamnd tamnd released this 09 Oct 16:24
c9a5030

The result store as of sweep-2026-10-09-1623, for publish.yml, without the build logs.

sweep-2026-10-09-1157

Choose a tag to compare

@tamnd tamnd released this 09 Oct 12:00
c064b23

The result store as of sweep-2026-10-09-1157, for publish.yml, without the build logs.

v0.1.18

Choose a tag to compare

@tamnd tamnd released this 08 Oct 12:14
v0.1.18
b3d9e33

A patch release that fixes how old 2.6 kernels are configured, makes unit bisections work on refusals, and confirms more fixing commits by bisection.

Changes:

  • The M4 and M5 fragments turn the RAM disk on. Up to 2.6.16 BLK_DEV_INITRD depends on BLK_DEV_RAM=y, which i386's defconfig leaves off, so 2.6.6 to 2.6.16 on i386 were built without initramfs support and stopped at L4 looking for a root disk. (#208)
  • The M5 fragment gives BLK_DEV_RAM_COUNT and BLK_DEV_RAM_SIZE their Kconfig defaults, since the conf of 2.6.16 stops with "Console input is closed" when oldconfig has a question and no input. (#213)
  • Every make for kernels 2.6.0 to 3.6 reads empty lines from yes '', which oldconfig takes as the default. Trees between releases in the 2.6.16 cycle often have new symbols even without a fragment, and their bisection steps could not configure. (#216)
  • matrix/frontiers.json and matrix/ranges.json are published beside matrix.json, as spec 10.2 lists. (#206)
  • sweep.yml has a weekly history job that runs gk history update on the self hosted runner. The runner is not registered yet. (#205)
  • GCC 4.7.2 is forged in the squeeze container, as its own build segfaults in jessie. Era M7 now has its GCC. (#211)
  • Bisection records keep the first error of each commit that misses. (#210)
  • A unit bisection says why a tree does not configure (#212), counts a #error in make prepare as the unit failing so that refusals can be bisected through a unit (#217), and no longer leaves a defunct git behind on every step (#215).

Findings:

  • gcc34-this-ip-label: the fix arrives with the slab merge a45b0616e7ee. (#209)
  • distro-ssp: eb2cafa1d902 in v2.6.18-rc4. (#207)
  • gcc-min-51 (76ae847497bc), gcc-min-81 on x86 (a3e8fe814ad1), gcc44-setup-dil (811a0fff5d6e) and binutils-range-ok-cmp (722f4f5b2600) are confirmed by bisection. The smpboot.o bisection for gcc32-directive-in-macro-args lands on 1c5b0eb66d74 instead, because GCC 3.2 hits a second error in the same unit, and the entry's note says so. (#214)

v0.1.17

Choose a tag to compare

@tamnd tamnd released this 07 Oct 15:44
v0.1.17
6faaa70

A patch release with a fix for tiny cells on 32-bit platforms and two more fixing commits confirmed by bisection.

Changes:

  • A tiny configuration also takes configs/tiny.<platform> after configs/tiny.gk when the platform has one. configs/tiny.i386 and configs/tiny.arm turn COMPAT_32BIT_TIME back on. gk-init reads the clock through the 32-bit time calls there, and tinyconfig switches them off, so the first i386 tiny cell failed its clock check. 7.2.9 i386 tinyconfig with GCC 16.2.0 now runs at L6. x86_64 and arm64 tiny cells keep their digests. (#200)
  • The workspace version is 0.1.17. 0.1.15 and 0.1.16 were tagged without a bump. (#204)

Findings:

  • distro-cf-protection: bisecting 5.2..5.3 with Ubuntu eoan GCC 9 on x86_64, building scripts/mod/devicetable-offsets.s alone on each commit, names 29be86d7f9cb in v5.3-rc1, in 14 steps and about 80 minutes. An earlier full bisection named a perf merge because it ran while the disk was full, and its record is gone from the store. (#201)
  • distro-pie: bisecting 4.8..4.9 with Debian stretch GCC 6 on x86_64, building kernel/bounds.s alone, names 8ae94224c9d7 in v4.9-rc6. (#203)
  • The matrix has 2406 cells. Among the newest cell of each coordinate, 114 of the 1592 that do not work have no class yet. (#202)