Subject: Re: compat_netbsd32 problems
To: None <port-sparc64@NetBSD.ORG>
From: Greg Earle <earle@isolar.DynDNS.ORG>
List: port-sparc64
Date: 01/09/2005 11:04:01
On Jan 9, 2005, at 4:46 AM, sigsegv@rambler.ru wrote:
> Still, I hit the same problem, binaries under /emul/netbsd32/bin
> execute OK, but the ones under /emul/netbsd32/usr/bin don't.
> Below are the traces for two sample executables (both are 32-bit
> dynamically linked sparc executables), seems to be that for one
> executable the OS knows how to use 32-bit emulation, but for the
> other one it doesn't.  I don't really know what's going on the
> kernel level, so any help/suggestions would be much appreciated :-)
>
> This is what I get from executing /emul/netbsd32/bin/date:
>
> Sun Jan  9 12:19:58 UTC 2005
>    360 ktruss   emul(netbsd)
>    360 ktruss   fktrace                            = 0
>    360 date     emul(netbsd32)
>    360 date     netbsd32_execve("/emul/netbsd32/bin/date", 
> 0xffffffffffffd9e0, 0xffffffffffffd9f0) JUSTRETURN
>
> This is what I get from executing /emul/netbsd32/usr/bin/id:
>
>  754 ktruss   emul(netbsd)
>    754 ktruss   fktrace                            = 0
>    754 ktruss   execve("/emul/netbsd32/usr/bin/id",
> 0xffffffffffffd9e0, 0xffffffffffffd9f0) Err#8 ENOEXEC

Well, from execve(2):

      [ENOEXEC]     The new process file has the appropriate access 
permission,
                    but has an invalid magic number in its header.

What is the output of

file /emul/netbsd32/bin/date /emul/netbsd32/usr/bin/id

and

ldd /emul/netbsd32/bin/date /emul/netbsd32/usr/bin/id

?

One thing I notice is that "/bin/date" on my 32-bit NetBSD/SPARC (not
NetBSD/SPARC64) system is statically-linked, whereas "/usr/bin/id" is.

	- Greg