phase1: complete syscall work, add triage automation, fix getattrlist ordering
Phase 1 syscall work:
- Add tests/syscall/test_utimensat.c: 16 regression tests for the
touch/utimensat segfault scenario (Task 1.4). Covers MODTIME, ACCTIME,
CRTIME, CHGTIME, combined attrs, FSOPT_NOFOLLOW on symlinks,
utimes/lutimes libc functions, NULL pointers, and kitchen-sink
multi-attribute scenarios.
- Verify Task 1.8 complete: SystemVersion.plist already reports 11.7.4
(Big Sur), CMAKE_OSX_DEPLOYMENT_TARGET=11.0. No changes needed.
Bug fix:
- Fix getattrlist_generic.c attribute buffer ordering: common attrs now
packed in Apple-defined bit-position order (OBJTAG 0x10 -> FNDRINFO
0x4000 -> FLAGS 0x40000) instead of incorrect FNDRINFO -> FLAGS ->
OBJTAG. Dir/file attrs also reordered correctly.
Triage automation (Task 1.7):
- Add scripts/triage-syscalls.sh: automated syscall discovery that runs
Nix operations inside Darling, captures unimplemented syscall messages,
maps syscall numbers to names, and produces a Markdown report.
Plan updates:
- Mark Phase 1 as 'core done, triage ongoing', Phase 2 as 'done'
- Add completed task summary table to PLAN.md
- Update What's Next: build+test -> live triage -> Phase 3 install
- Update syscall-triage.md with new entries and automation docs