ref: 88b8b9bdb46acee827b0c5efac1eb90583c9c26a
parent: 480dcc22e7f305502939ef7ec91fa3527769463f
author: Ori Bernstein <ori@eigenstate.org>
date: Sat Sep 25 12:57:58 EDT 2021
vmx: update openbsd kernel heuristics in OpenBSD 6.9 and up, the kernel (bsd, bsd.mp) still has the ostype symbols, but bsd.rd appears to have lost them, even when decompressed. so, as a result, we should use what we have, which isn't much.
--- a/sys/src/cmd/vmx/ksetup.c
+++ b/sys/src/cmd/vmx/ksetup.c
@@ -728,7 +728,7 @@
static int
tryelf(void)
{
- char *s;
+ char *s, *t;
if(!elfheaders()) return 0;
elfdata();
@@ -735,6 +735,11 @@
if(!elfsymbols()) return 0;
s = symaddr(elfsym("ostype"));
if(s != nil && strcmp(s, "OpenBSD") == 0)
+ return obsdload();
+ /* from 6.9 up, bsd.rd has just these syms */
+ s = symaddr(elfsym("rd_root_image"));
+ t = symaddr(elfsym("rd_root_size"));
+ if(s != nil && t != nil)
return obsdload();
return 0;
}
--
⑨