Files
LithosAnanke/.claude
rajamesandClaude Opus 5.5 d6ea592c08 fix(amd64): the image runs wherever the firmware loads it -- -fpie, every symbol hidden; qemu-stick-high in acceptance
The SER5 stopped at the loader's "Loading kernel from ESP...": built -fno-pic -fno-pie with
ImageBase 0, the image carried ~9,000 32-bit absolute addresses, and the firmware loaded it above
2 GiB, where the sign-extended ones (R_X86_64_32S) point into unmapped memory -- a page fault in
debug_checkpoint() before [CKPT 001]. Reproduced on QEMU's pc machine at 3 GiB (#PF, CR2 =
FFFFFFFFBD316542, the right address sign-extended); q35 always loads it below 2 GiB, so no QEMU
boot ever showed it.

amd64 now builds -fpie with kernel/include/starkernel/pie_hidden.h force-included (#pragma GCC
visibility push(hidden)), so globals are RIP-relative and none is reached through a GOT -- the
2026-08-06 bug that put -fno-pic there. The link refuses any object carrying a 32-bit absolute or
GOT relocation (4,531 on the old objects, none now). test_runner.c's visibility("default") on
global_test_stats is kept for the -fPIC ISAs only. make -f kernel/Makefile ARCH=amd64
qemu-stick-high boots the PC stick on pc with 3 GiB and is part of acceptance (.claude/CLAUDE.md).
Captain Bob, 2026-10-29; FABRIC-3.md XLIV.

Verified: qemu-stick-high with Zuse's pair, ok> and 7 ok, RIP sampled inside .text at base
0xBD297000 (logs/20261029-070253); acceptance amd64 -070508, aarch64 -070715, riscv64 -071138,
PARITY:V4_POST tests=538 pass=538 fail=0, POST: PASSED, dict_hash=0xfec8c47cfc6f437f on all;
make -C v4 test-32, 39 suites, 0 failures. Not yet booted on the SER5.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 07:34:11 -04:00
..

.claude/

Project-level configuration and instructions for Claude Code (claude.ai/code) when working in this repository.

  • CLAUDE.md — the authoritative reference for how an AI agent should work in this codebase: hard rules (branch discipline, never work on master without permission, never stash without permission, report bugs rather than fixing them unprompted), build commands for both the hosted VM and the LithosAnanke kernel, architecture summaries, and pointers into the rest of the documentation tree. docs/CLAUDE.md is an older, hosted-only snapshot kept for historical reference — this file supersedes it.
  • TRIPOD.md — architectural constraints for the Tripod: the three-VM fleet (Hera the governor, Hermes the messenger, Artemis the memory/ storage owner) that LithosAnanke boots. Defines each VM's contract and what NOT to put in each one (e.g. no storage logic in Hermes, no event routing in Artemis).
  • HERMES.md — Hermes VM architecture: the message-routing VM. Read in full before touching any Hermes-related code.
  • ARTEMIS.md — Artemis VM architecture: the block-storage/persistence VM, including its free-map allocator. Read in full before touching any Artemis-related code.
  • settings.json — Claude Code session/tooling configuration for this repository.

All four .md files here are binding constraints, not suggestions — they are read in full before any work on the subsystem they cover, per this project's own stated policy.