#!/bin/sh
# DF-2853 build (run inside the DragonFly guest as root; needs /usr/src
# and a kernel build dir /usr/obj/usr/src/sys/X86_64_GENERIC for headers).
# NB: link with ld.bfd -- ld.gold produces a .ko the kernel cannot
# relocate (panics with "lost base for relatab").
set -e
cd "$(dirname "$0")"
[ -e machine ]    || ln -s /usr/src/sys/platform/pc64/include machine
[ -e cpu ]        || ln -s /usr/src/sys/cpu/x86_64/include cpu
[ -e machine_base ] || ln -s /usr/src/sys/platform/pc64 machine_base
[ -e cpu_base ]   || ln -s /usr/src/sys/cpu/x86_64 cpu_base
cc -c -O2 -g -std=c99 -DKLD_MODULE -D_KERNEL -nostdinc \
    -I. -I/usr/obj/usr/src/sys/X86_64_GENERIC \
    -I/usr/obj/usr/src/sys/X86_64_GENERIC/include -I/usr/src/sys \
    -mno-red-zone -mcmodel=kernel -fno-common rman_overlap.c
ld.bfd -d -warn-common -r -o rman_overlap.ko rman_overlap.o
ls -l rman_overlap.ko
