DF-0003 / setup_env.sh
#!/bin/sh # DF-0003 guest setup: install kernel headers + forwarder + symlinks needed to # build a kld module on a guest that lacks /usr/src/sys. Idempotent. set -eu # 1. Kernel source headers (shipped from the audited host tree). if [ ! -f /usr/src/sys/conf/kmod.mk ]; then echo ">>> extracting kernel headers" mkdir -p /usr/src tar -xzf /tmp/dfsys_headers.tar.gz -C /usr/src ln -sfn /usr/src/sys /sys fi # 2. machine/X.h -> #include <cpu/X.h> forwarders (mimics kern.fwd.mk). FWD=/usr/obj/fwd_x86_64/include/machine if [ ! -d "$FWD" ]; then echo ">>> generating machine forwarders" mkdir -p "$FWD" for h in /usr/src/sys/cpu/x86_64/include/*.h; do b=$(basename "$h") gu=$(echo "$b" | tr ".[:lower:]" "_[:upper:]") printf "/* CONFIG-GENERATED */\n#ifndef _MACHINE_%s_\n#define _MACHINE_%s_\n#include <cpu/%s>\n#endif\n" \ "$gu" "$gu" "$b" > "$FWD/$b" done fi echo ">>> setup complete: $(ls "$FWD" | wc -l) forwarders, kmod.mk at /usr/src/sys/conf/kmod.mk" |