> % ktrace -d ./9vx -r /n/plan9 -u glenda -g -S > namec #/ > namec #e/terminal > namec #e/cputype > namec #e/rootdir > namec #e/service > namec #e/user > namec #e/sysname > namec #Zplan9/ > namec / > namec #p > namec /proc > namec #~/mntloop > namec #Zplan9/ > namec #s/boot > 9vx panic: vxproc_run: Invalid argument
In src/libvx32/openbsd.c:/vxemu_map int s, sel; struct vxproc *vxp; union descriptor desc; ... /*if(emu->datasel == 0){ if ((s = i386_set_ldt(LDT_AUTO_ALLOC, &desc, 1)) < 0) return -1; */ emu->datasel = (s<<3) + 4 + 3; // 4=LDT, 3=RPL if(i386_set_ldt(emu->datasel >> 3, &desc, 1) < 0) return -1; ... The s variable is used un-initialized because of the commented piece of code, causing EINVAL. And since LDT_AUTO_ALLOC is only on FreeBSD or Darwin, you're going to have to get it another way. At least, that's what I think from reading the code since I don't have access to an OpenBSD box. Anthony