Port-i386 archive

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

Re: Running Old a.out x86 Binaries on NetBSD



In article 
<CAOD8Yqr9VS45B0d4drL+EvQ+f6QRu+fDKLiGuRzwUaOD_dkUnA%mail.gmail.com@localhost>,
Dan Plassche  <dplassche%gmail.com@localhost> wrote:
>Hello,
>
>I have a NetBSD 6.2 32-bit system setup to run old x86 a.out binaries
>directly.  I'm currently running NetBSD 1.4 binaries, but now looking
>to target release 0.9 as well.  Some binaries from release 0.9 are
>producing significant errors (ls causes a kernel crash), so I am
>trying to identify the issue.
>
>The kernel compatability options and the pkgsrc compat libraries seem
>to be setup correctly.  I have a kernel compiled with the relevant
>COMPAT options (COMPAT_43, COMPAT_NOMID, COMPAT_09, COMPAT_1[0-4], and
>COMPAT_BSDPTY).  The compat libraries from
>/usr/pkgsrc/emulators/compat1[2-4]* are installed.  I made sure to run
>ldconfig on the newly installed libraries at
>/emul/aout/usr/lib:/emul/aout/X11R6/lib.  I also have the kernel
>COMPAT options and the pkgsrc compat libraries installed for later
>releases as well.
>
>Most release 0.9 binaries work correctly.  However, I'm seeing errors
>with ls and pwd during testing.  The ls command produces no output
>when given only a path as an argument (eg "ls /"), but crashes the
>kernel when called with the -l flag for a list.  The pwd command also
>shows only a "no such file or directory" error.  Incidentally, the
>same problem occurs with the ls and pwd binaries from NetBSD 1.0, 1.1,
>and 1.2 (later verions starting with 1.3 work).
>
>I have run ktrace and kdump on these commands in addition to reviewing
>at the kernel crash log, but could not find an obvious error in my
>setup.  The error I receive when the kernel crashes is as follows:
>
>     uvm_fault(0xc1a21510, 0, 1) -> 0xe
>     fatal page fault in supervisor mode
>     trap type 6 code 0 eip c08828a6 cs 8 eflags 282 cr2 4c ilevel 0
>     panic: trap
>     cpu0: Begin traceback...
>     printf_nolog(c0b76347,d8b81ac4,c08828a6,8,282,4c,0,d8b81b08,c085947c)
>at netbsd:printf_nolog
>     trap_tss() at netbsd:trap_tss
>     --- trap via task gate ---
>     6:
>     cpu0: End traceback...
>
>Please let me know if any further information, such as the kdump on a
>command or the kernel crash debug results, would be helpful.  I have a
>test system available.

I fixed a whole bunch of bugs on HEAD, and I've tested 1.0 i386 binaries
on amd64. Most of them work now. If you either run head or pull up my
changes on netbsd-6 things will work again. There is one more change
that I might need on i386 a.out (open NULL != open ".") and that
makes binaries that use multiple dynamic libraries to fail. Perhaps
you'll also run into the mmap issue which again I fixed only in compat32.
Let me know and I can supply patches for those too.

christos



Home | Main Index | Thread Index | Old Index