991d05ce2f
Mesa's Intel Anvil Vulkan driver requires dl_iterate_phdr, which relibc lacked (meson cc.has_function fails). Implement it against the dynamic linker's authoritative object list: store each object's program headers on the DSO (new DSO.phdrs, populated in both from_raw and new), add Linker::iter_dsos, and add a src/header/link module exporting dl_iterate_phdr that walks the loaded objects and reports each one's base/name/phdr-table to the callback (stopping early on non-zero return, per spec). Static binaries (no linker) report zero objects. Hand-written include/link.h declares struct dl_phdr_info with a correctly-typed const Elf64_Phdr* dlpi_phdr.