Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

COMPAT_40 broken in current amd64 kernel?



I've got this one old, statically-linked image that works just fine on a 5.99.24 -current kernel built on Jan 21st

{129} file ~/dnetc/dnetc.x86_64
/home/paul/dnetc/dnetc.x86_64: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, for NetBSD 4.0, stripped
{130}

However, on a kernel built today, it gives me a core dump due to a "bad system call". The backtrace shows that this is the code leading up to the bad syscall:

(gdb) x/10i 0x47a598
0x47a598:       jmpq   0x490ba0
0x47a59d:       data16
0x47a59e:       data16
0x47a59f:       nop
0x47a5a0:       mov    $0x74,%eax
0x47a5a5:       mov    %rcx,%r10
0x47a5a8:       syscall
0x47a5aa:       jb     0x47a598
0x47a5ac:       retq
0x47a5ad:       nop
(gdb)


Both kernels are custom kernels, both build from the identical config file, and both containing COMPAT_40 built-in (ie, NOT is a loadable module).

{130} grep COMPAT_ src/sys/arch/amd64/conf/COMMON
options         COMPAT_40
options         COMPAT_50
options         COMPAT_BSDPTY   # /dev/[pt]ty?? ptys.
options         WSDISPLAY_COMPAT_PCVT           # emulate some ioctls
options         WSDISPLAY_COMPAT_SYSCONS        # emulate some ioctls
options         WSDISPLAY_COMPAT_USL            # VT handling
options         WSDISPLAY_COMPAT_RAWKBD         # can get raw scancodes
{131}


Any clue as to what broke this?


-------------------------------------------------------------------------
|   Paul Goyette   | PGP DSS Key fingerprint: |  E-mail addresses:      |
| Customer Service | FA29 0E3B 35AF E8AE 6651 |  paul at whooppee.com   |
| Network Engineer | 0786 F758 55DE 53BA 7731 | pgoyette at juniper.net |
| Kernel Developer |                          | pgoyette at netbsd.org  |
-------------------------------------------------------------------------


Home | Main Index | Thread Index | Old Index