linux-qubasis
linux oasis port as a qubes template
git clone https://9o.is/git/linux-qubasis.git
commit 0dc33d334bf6c7cc6c24a7ec5457ec57b47e3b28 parent da026be86a6e48f1075db2e62788ee9c4ed257c1 Author: Jul <jul@9o.is> Date: Mon, 24 Nov 2025 23:20:25 -0500 build libxenguest.a Diffstat:
| M | pkg/genfn.sh | | | 27 | ++++++++++++++++++--------- |
| M | pkg/xen/gen.sh | | | 44 | ++++++++++++++++++++++++++++++++++++++++++-- |
| M | pkg/xen/tools_headers.sh | | | 16 | ++++++++++++++++ |
3 files changed, 76 insertions(+), 11 deletions(-)
diff --git a/pkg/genfn.sh b/pkg/genfn.sh @@ -157,21 +157,30 @@ compile() { _deps= _hdrs= - while [ $# -gt 0 ] && [ "${1#--}" != "$1" ]; do + while [ $# -gt 0 ] && [ "${1#-}" != "$1" ]; do case $1 in - --cflags) _cflags="$2";; - --src-prefix) _src_prefix=$2/;; + -I*|-W*|-D*) + _cflags="$_cflags $1" + shift + ;; + -iquote|-include) + _cflags="$_cflags $1 $2" + shift 2 + ;; + --cflags) _cflags="$2"; shift 2;; + --src-prefix) _src_prefix=$2/; shift 2;; + -*) error unknown compiler flag $1;; esac - shift 2 done for _src in $*; do case $_src in - *.[cS]) _srcs="$_srcs $_src_prefix$_src";; - *.o) _objs="$_objs $_src";; - *.a) _libs="$_libs $_src";; - *.a.d) _deps="$_deps $_src";; - *.h) _hdrs="$_hdrs $_src";; + \$*.[cS]) _srcs="$_srcs $_src";; + *.[cS]) _srcs="$_srcs $_src_prefix$_src";; + *.o) _objs="$_objs $_src";; + *.a) _libs="$_libs $_src";; + *.a.d) _deps="$_deps $_src";; + *.h) _hdrs="$_hdrs $_src";; *) error unknown file to compile: $_src;; esac done diff --git a/pkg/xen/gen.sh b/pkg/xen/gen.sh @@ -17,7 +17,10 @@ cflags " -Wno-sign-compare " -dep $outdir/prepare_include +dep " + $outdir/prepare_include + zlib/headers +" rule tools_headers 'sh $dir/tools_headers.sh $srcdir && touch $out' bind description 'XEN HEADERS $out' @@ -60,7 +63,7 @@ lib libxendevicemodel.a --src-prefix tools/libs/devicemodel " common.c " -lib libxenctrl.a --src-prefix tools/libs/ctrl --cflags -D__XEN_TOOLS__ " +lib libxenctrl.a --src-prefix tools/libs/ctrl -D__XEN_TOOLS__ " xc_altp2m.c xc_arinc653.c xc_cpu_hotplug.c @@ -94,3 +97,40 @@ lib libxenctrl.a --src-prefix tools/libs/ctrl --cflags -D__XEN_TOOLS__ " xc_vm_event.c xc_vmtrace.c " + +lib libxenguest.a --src-prefix tools/libs/guest -D__XEN_TOOLS__ -iquote $srcdir/tools/libs/ctrl \ + -I$pkgdir/zlib/include -Wno-unused-but-set-variable -Wno-old-style-declaration \ + -Wno-missing-field-initializers " + xg_core.c + xg_core_x86.c + xg_cpuid_x86.c + xg_dom_binloader.c + xg_dom_boot.c + xg_dom_bzimageloader.c + xg_dom_compat_linux.c + xg_dom_core.c + xg_dom_decompress_lz4.c + xg_dom_elfloader.c + xg_dom_hvmloader.c + xg_dom_x86.c + xg_domain.c + xg_offline_page.c + xg_private.c + xg_resume.c + xg_sr_common.c + xg_sr_common_x86.c + xg_sr_common_x86_pv.c + xg_sr_restore.c + xg_sr_restore_x86_hvm.c + xg_sr_restore_x86_pv.c + xg_sr_save.c + xg_sr_save_x86_hvm.c + xg_sr_save_x86_pv.c + xg_suspend.c + $srcdir/xen/common/libelf/libelf-dominfo.c + $srcdir/xen/common/libelf/libelf-loader.c + $srcdir/xen/common/libelf/libelf-tools.c + $srcdir/xen/lib/x86/cpuid.c + $srcdir/xen/lib/x86/msr.c + $srcdir/xen/lib/x86/policy.c +" diff --git a/pkg/xen/tools_headers.sh b/pkg/xen/tools_headers.sh @@ -11,6 +11,22 @@ ln -s ../../../xen/include/public/*/ . ln -s ../xen-sys/Linux sys ln -s ../xen-foreign foreign +mkdir -p libelf +cd libelf +ln -s ../../../../xen/include/xen/libelf.h . +ln -s ../../../../xen/include/xen/elfstructs.h . +cd .. + +# x86 +ln -s ../../../xen/arch/x86/include/asm asm +mkdir -p lib/x86 +cd lib/x86 +for hdr in ../../../../../xen/include/xen/lib/x86/*.h; do + ln -s $hdr . +done +python3 ../../../../../xen/tools/gen-cpuid.py -i ../../../../../xen/include/public/arch-x86/cpufeatureset.h -o cpuid-autogen.h +cd ../.. + cd ../xen-foreign mkheader() {