Thanks again for all the comments/hints. I have found, and Brad Spencer has replicated, a COMPAT bug. This note attempts to restate all useful information so previous ones can be deleted. First, I'm talking about: i386 wanting full system operation with new kernel and old userland, such as when upgrading a remote machine where the console is not accessible, where that means it comes up multiuser, configures the network, supports remote login over ssh and can be further upgraded Given a machine with netbsd-5 kernel and userland: 6 kernel works 7 kernel works 8 kernel ifconfig fails 9 kernel ifconfig fails The failure appears to be the same for /sbin/ifconfig and /rescue/ifconfig, suggesting that the problem is that the kernel doesn't respond correctly to something, rather than shlib issues. I ran ktrace of ifconfig(netbsd5) on 7 and on 9. I append the 9 trace; the 7 trace has a vast number of lines between the last two lines her. So it seems something is going wrong with these two sysctls. I'm unclear on how they are versioned vs ioctl/etc. PID 1 ktrace EMUL "netbsd" PID 1 ktrace CALL execve(0xbfb6ea67,0xbfb6e548,0xbfb6e554) PID 1 ktrace NAMI "/usr/home/gdt/NETBSD5/./ifconfig" PID 1 ifconfig EMUL "netbsd" PID 1 ifconfig RET execve JUSTRETURN PID 1 ifconfig CALL __sysctl(0xbfb6b514,2,0x87077a0,0xbfb6b51c,0,0) PID 1 ifconfig RET __sysctl 0 PID 1 ifconfig CALL __sysctl(0xbfb6ac88,2,0x8700274,0xbfb6ac90,0,0) PID 1 ifconfig RET __sysctl 0 PID 1 ifconfig CALL __sysctl(0xbfb6abdc,2,0x870207c,0xbfb6abe4,0,0) PID 1 ifconfig RET __sysctl 0 PID 1 ifconfig CALL readlink(0x8464565,0xbfb6ac95,0x400) PID 1 ifconfig NAMI "/etc/malloc.conf" PID 1 ifconfig RET readlink -1 errno 2 No such file or directory PID 1 ifconfig CALL break(0x8800000) PID 1 ifconfig RET break 0 PID 1 ifconfig CALL mmap(0,0x100000,PROT_READ|PROT_WRITE,0x14001002<PRIVATE,ANONYMOUS,ALIGN=1MB>,0xffffffff,0,0,0) PID 1 ifconfig RET mmap -1371537408/0xae400000 PID 1 ifconfig CALL __sysctl(0xbfb6aab0,6,0,0xbfb6aac8,0,0) PID 1 ifconfig RET __sysctl 0 PID 1 ifconfig CALL __sysctl(0xbfb6aab0,6,0xae407800,0xbfb6aac8,0,0) PID 1 ifconfig RET __sysctl 0 PID 1 ifconfig CALL exit(0) Probably nobody wants to fix this. So I upgraded my test clone to 7, and then the real system to 7, with no issues. The next step was to test the 8 and 9 kernels with 7 userland. Both were ok.
Attachment:
signature.asc
Description: PGP signature