Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
| Comment: | Build on the BQ2 client: fixes for clang 18, libiconv and older Linux headers
Claim: Glint's build and x86_64 boots work on x86-1's BusyBox BQ2 system, where clang is 18.1.7, not the old Alpine host's 21. Four things had relied on that host: - tools/zephyr/flags.cr defines CONFIG_MINIMAL_LIBC. Zephyr's minimal stdint.h needs __UINT64_C, which clang predefines only from 20.1; below that, Zephyr's toolchain/llvm.h supplies it under this symbol. - QEMU's compile and test flags now use its bundled linux-headers with -isystem, as its meson.build (line 790) does. Without it, include/system/host_iommu_device.h needs a newer linux/iommufd.h than this system's. - GLib links -liconv where libiconv is installed, because GNU's iconv.h renames iconv_open to libiconv_open. The QEMU specs' library lists allow it. - tools/c_archive_build.cr fetches with curl, because busybox wget gets "Connection reset by peer" on every HTTPS URL tried here. spec/uboot/uboot_x86_64_spec.cr looks for "clang version", not "Alpine clang version". Passage: PLAN's Build constraints: the BQ2 toolset is enough to build the Glint kernel. Demonstration: - QEMU 11.1.2 for x86_64 and aarch64, and U-Boot for x86_64, rebuild from pinned sources. bin/glint-build x86_64 gives BOOTX64.EFI at 172,544 bytes, the size 3.5 recorded. - bin/glint-run x86_64 passes guest_space (native, and refused hosted), the heap native and hosted, cat, fault, fault "write" (native, and refused hosted) and overflow. - crystal spec: 699 examples, 33 failures, 2 errors, 0 pending; TMPDIR left empty. All 35 trace to this system's X86-only LLVM, which can't target aarch64. 8 of them are x86_64 or general specs that stop at glint-build all or at the aarch64 half of a cross-compile. Before these fixes' spec changes it was 38 and 2. - crystal tool format --check passes. Not shown: aarch64. Nothing here could be built or booted for it, including the CONFIG_MINIMAL_LIBC change on aarch64 past the compiler's target error. bin/glint-qemu needs LD_LIBRARY_PATH=/usr/lib64 here, because libxml2 is in a directory the loader doesn't search; that isn't fixed in this check-in. Size: 18 lines added and 13 removed, no new files. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
3cefc212aac2bd30145b154fdfe9a03c |
| User & Date: | x86-1-glint 2026-11-02 05:17:18.035 |
| Original Comment: | Build on the BQ2 client: fixes for clang 18, libiconv and older Linux headers
Claim: Glint's build and x86_64 boots work on x86-1's BusyBox BQ2 system, where clang is 18.1.7, not the old Alpine host's 21. Four things had relied on that host: - tools/zephyr/flags.cr defines CONFIG_MINIMAL_LIBC. Zephyr's minimal stdint.h needs __UINT64_C, which clang predefines only from 20.1; below that, Zephyr's toolchain/llvm.h supplies it under this symbol. - QEMU's compile and test flags now use its bundled linux-headers with -isystem, as its meson.build (line 790) does. Without it, include/system/host_iommu_device.h needs a newer linux/iommufd.h than this system's. - GLib links -liconv where libiconv is installed, because GNU's iconv.h renames iconv_open to libiconv_open. The QEMU specs' library lists allow it. - tools/c_archive_build.cr fetches with curl, because busybox wget gets "Connection reset by peer" on every HTTPS URL tried here. spec/uboot/uboot_x86_64_spec.cr looks for "clang version", not "Alpine clang version". Passage: PLAN's Build constraints: the BQ2 toolset is enough to build the Glint kernel. Demonstration: - QEMU 11.1.2 for x86_64 and aarch64, and U-Boot for x86_64, rebuild from pinned sources. bin/glint-build x86_64 gives BOOTX64.EFI at 172,544 bytes, the size 3.5 recorded. - bin/glint-run x86_64 passes guest_space (native, and refused hosted), the heap native and hosted, cat, fault, fault "write" (native, and refused hosted) and overflow. - crystal spec: 699 examples, 33 failures, 2 errors, 0 pending; TMPDIR left empty. All 35 trace to this system's X86-only LLVM, which can't target aarch64. 7 of them are x86_64 or general specs that stop at glint-build all or at the aarch64 half of a cross-compile. Before these fixes' spec changes it was 38 and 2. - crystal tool format --check passes. Not shown: aarch64. Nothing here could be built or booted for it, including the CONFIG_MINIMAL_LIBC change on aarch64 past the compiler's target error. bin/glint-qemu needs LD_LIBRARY_PATH=/usr/lib64 here, because libxml2 is in a directory the loader doesn't search; that isn't fixed in this check-in. Size: 18 lines added and 13 removed, no new files. |
|
2026-11-03
| ||
| 03:29 |
Task 3.6: reading a guest image
Claim: docs/tasks/3.6.md states slice 3.6 as a task, with the PE32+ facts it depends on checked against U-Boot 2026.07's include/pe.h, include/asm-generic/pe.h, include/efi.h and lib/efi_loader/efi_image_loader.c, and against Glint's boot/crt0.S. Passage: docs/WORKFLOW.md, Handing out a slice, step 1. Demonstration: each header offset in the task was summed from the struct definitions in include/pe.h. One finding is written into the task: efi_loader_relocate (line 114) bounds a relocation entry's offset, not its 8 bytes, so a DIR64 at SizeOfImage - 1 passes there; Glint's parser must refuse it. Not handed to Codex yet: its spec reads both built images, and aarch64 can't be built on x86-1. Size: one new file, 84 lines. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TUH8KMXZyLk8eDgCjvQ9hX check-in: 8da207a74d user: x86-1-glint tags: trunk | |
|
2026-11-02
| ||
| 05:17 |
Build on the BQ2 client: fixes for clang 18, libiconv and older Linux headers
Claim: Glint's build and x86_64 boots work on x86-1's BusyBox BQ2 system, where clang is 18.1.7, not the old Alpine host's 21. Four things had relied on that host: - tools/zephyr/flags.cr defines CONFIG_MINIMAL_LIBC. Zephyr's minimal stdint.h needs __UINT64_C, which clang predefines only from 20.1; below that, Zephyr's toolchain/llvm.h supplies it under this symbol. - QEMU's compile and test flags now use its bundled linux-headers with -isystem, as its meson.build (line 790) does. Without it, include/system/host_iommu_device.h needs a newer linux/iommufd.h than this system's. - GLib links -liconv where libiconv is installed, because GNU's iconv.h renames iconv_open to libiconv_open. The QEMU specs' library lists allow it. - tools/c_archive_build.cr fetches with curl, because busybox wget gets "Connection reset by peer" on every HTTPS URL tried here. spec/uboot/uboot_x86_64_spec.cr looks for "clang version", not "Alpine clang version". Passage: PLAN's Build constraints: the BQ2 toolset is enough to build the Glint kernel. Demonstration: - QEMU 11.1.2 for x86_64 and aarch64, and U-Boot for x86_64, rebuild from pinned sources. bin/glint-build x86_64 gives BOOTX64.EFI at 172,544 bytes, the size 3.5 recorded. - bin/glint-run x86_64 passes guest_space (native, and refused hosted), the heap native and hosted, cat, fault, fault "write" (native, and refused hosted) and overflow. - crystal spec: 699 examples, 33 failures, 2 errors, 0 pending; TMPDIR left empty. All 35 trace to this system's X86-only LLVM, which can't target aarch64. 8 of them are x86_64 or general specs that stop at glint-build all or at the aarch64 half of a cross-compile. Before these fixes' spec changes it was 38 and 2. - crystal tool format --check passes. Not shown: aarch64. Nothing here could be built or booted for it, including the CONFIG_MINIMAL_LIBC change on aarch64 past the compiler's target error. bin/glint-qemu needs LD_LIBRARY_PATH=/usr/lib64 here, because libxml2 is in a directory the loader doesn't search; that isn't fixed in this check-in. Size: 18 lines added and 13 removed, no new files. check-in: 3cefc212aa user: x86-1-glint tags: trunk | |
|
2026-10-30
| ||
| 02:55 | Tutorial: 3.5 check-in: 437bb241ad user: glint-session tags: trunk | |