Subject: Re: firefox-bin failing
To: Martin Husemann <martin@duskware.de>
From: Ed Gould <ed@left.wing.org>
List: port-i386
Date: 04/12/2006 16:55:09
>> The question is, why isn't the kernel recognizing this as a valid 
>> executable?
> 
> ktrace it - that should tell you the emulation the kernel picks and/or
> if something else fails in the exec call (like missing ld.so in the emul
> directory)

Not much help.  The execve() issued by ktruss (same for ktrace) returns
ENOEXEC, then it falls back to the shell:

$ ktruss /usr/pkg/lib/firefox-linux/firefox-bin 2>/dev/null
 15517      1 ktruss   emul(netbsd)
 15517      1 ktruss   fcntl(0x4, 0x3, 0)          = 1
 15517      1 ktruss   fcntl(0x4, 0x4, 0x1)        = 0
 15517      1 ktruss   execve("/usr/pkg/lib/firefox-linux/firefox-bin", 0xbfbfe564, 0xbfbfe56c) Err#8 ENOEXEC
 15517      1 sh       emul(netbsd)
 15517      1 sh       execve("/bin/sh", 0xbfbfe060, 0xbfbfe56c) JUSTRETURN
 15517      1 sh       mmap(0, 0x8000, 0x3, 0x1002, 0xffffffff, 0, 0, 0) = 0xbbbec000
 15517      1 sh       open("/etc/ld.so.conf", 0, 0xffffffff) = 3
 15517      1 sh       __fstat30(0x3, 0xbfbfe450)  = 0
 15517      1 sh       mmap(0, 0x37, 0x1, 0x1, 0x3, 0, 0, 0) = 0xbbbeb000
 15517      1 sh       close(0x3)                  = 0
 15517      1 sh       munmap(0xbbbeb000, 0x37)    = 0
 15517      1 sh       open("/lib/libedit.so.2", 0, 0) = 3
 15517      1 sh       __fstat30(0x3, 0xbfbfdd30)  = 0
 15517      1 sh       mmap(0, 0x1000, 0x1, 0x1, 0x3, 0, 0, 0) = 0xbbbeb000
 15517      1 sh       munmap(0xbbbeb000, 0x1000)  = 0
 15517      1 sh       mmap(0, 0x1a000, 0x5, 0x2, 0x3, 0, 0, 0) = 0xbbbd2000
 15517      1 sh       mmap(0xbbbea000, 0x2000, 0x3, 0x12, 0x3, 0, 0x17000, 0) = 0xbbbea000
 15517      1 sh       mmap(0xbbbec000, 0, 0x3, 0x1012, 0xffffffff, 0, 0, 0) = 0xbbbec000
 15517      1 sh       close(0x3)                  = 0
 15517      1 sh       open("/lib/libtermcap.so.0", 0, 0xbfbfdd30) = 3
 15517      1 sh       __fstat30(0x3, 0xbfbfdd30)  = 0
 15517      1 sh       mmap(0, 0x1000, 0x1, 0x1, 0x3, 0, 0, 0) = 0xbbbd1000
 15517      1 sh       munmap(0xbbbd1000, 0x1000)  = 0
 15517      1 sh       mmap(0, 0x3000, 0x5, 0x2, 0x3, 0, 0, 0) = 0xbbbcf000
 15517      1 sh       mmap(0xbbbd1000, 0x1000, 0x3, 0x12, 0x3, 0, 0x2000, 0) = 0xbbbd1000
 15517      1 sh       mmap(0xbbbd2000, 0, 0x3, 0x1012, 0xffffffff, 0, 0, 0) = 0xbbbd2000
 15517      1 sh       close(0x3)                  = 0
 15517      1 sh       open("/lib/libc.so.12", 0, 0xbfbfdd30) = 3
 15517      1 sh       __fstat30(0x3, 0xbfbfdd30)  = 0
 15517      1 sh       mmap(0, 0x1000, 0x1, 0x1, 0x3, 0, 0, 0) = 0xbbbce000
 15517      1 sh       munmap(0xbbbce000, 0x1000)  = 0
 15517      1 sh       mmap(0, 0xd3000, 0x5, 0x2, 0x3, 0, 0, 0) = 0xbbafc000
 15517      1 sh       mmap(0xbbbb8000, 0x7000, 0x3, 0x12, 0x3, 0, 0xbb000, 0) = 0xbbbb8000
 15517      1 sh       mmap(0xbbbbf000, 0x10000, 0x3, 0x1012, 0xffffffff, 0, 0, 0) = 0xbbbbf000
 15517      1 sh       close(0x3)                  = 0
 15517      1 sh       issetugid()                 = 0
 15517      1 sh       getpid()                    = 15517
 15517      1 sh       __sysctl(0xbfbfe2f8, 0x2, 0xbfbfe2f0, 0xbfbfe2f4, 0, 0) = 0
 15517      1 sh       readlink("/etc/malloc.conf", 0xbfbfe370, 0x3f) Err#2 ENOENT
 15517      1 sh       mmap(0, 0x1000, 0x3, 0x1002, 0xffffffff, 0, 0, 0) = 0xbbafb000
 15517      1 sh       break(0x8063bd8)            = 0
 15517      1 sh       break(0x8064bd8)            = 0
 15517      1 sh       break(0x8065000)            = 0
 15517      1 sh       break(0x8066000)            = 0
 15517      1 sh       break(0x8067000)            = 0
 15517      1 sh       geteuid()                   = 101
 15517      1 sh       __stat30(".", 0xbfbfe3d0)   = 0
 15517      1 sh       __stat30("/sys/arch/i386/conf", 0xbfbfe360) = 0
 15517      1 sh       open("/usr/pkg/lib/firefox-linux/firefox-bin", 0, 0x3) = 3
 15517      1 sh       fcntl(0x3, 0, 0xa)          = 10
 15517      1 sh       close(0x3)                  = 0
 15517      1 sh       fcntl(0xa, 0x2, 0x1)        = 0
 15517      1 sh       getuid()                    = 101
 15517      1 sh       geteuid()                   = 101
 15517      1 sh       getgid()                    = 101
 15517      1 sh       getegid()                   = 101
 15517      1 sh       __sigaction_sigtramp(0x2, 0, 0xbfbfe3f0, 0, 0) = 0
 15517      1 sh       __sigaction_sigtramp(0x2, 0xbfbfe3e0, 0xbfbfe3c0, 0xbbb5ec0c, 0x2) = 0
 15517      1 sh       __sigaction_sigtramp(0x2, 0, 0xbfbfe3e0, 0, 0) = 0
 15517      1 sh       __sigaction_sigtramp(0x2, 0xbfbfe3e0, 0, 0xbbb5ec0c, 0x2) = 0
 15517      1 sh       __sigprocmask14(0x2, 0xbfbfe440, 0) = 0
 15517      1 sh       __sigaction_sigtramp(0x3, 0, 0xbfbfe3f0, 0, 0) = 0
 15517      1 sh       __sigaction_sigtramp(0x3, 0xbfbfe3e0, 0xbfbfe3c0, 0xbbb5ec0c, 0x2) = 0
 15517      1 sh       __sigprocmask14(0x2, 0xbfbfe440, 0) = 0
 15517      1 sh       __sigaction_sigtramp(0x1, 0, 0xbfbfe3f0, 0, 0) = 0
 15517      1 sh       __sigaction_sigtramp(0x1, 0xbfbfe3e0, 0xbfbfe3c0, 0xbbb5ec0c, 0x2) = 0
 15517      1 sh       __sigprocmask14(0x2, 0xbfbfe440, 0) = 0
 15517      1 sh       __sigaction_sigtramp(0x12, 0, 0xbfbfe3f0, 0, 0) = 0
 15517      1 sh       __sigaction_sigtramp(0x12, 0xbfbfe3e0, 0xbfbfe3c0, 0xbbb5ec0c, 0x2) = 0
 15517      1 sh       __sigprocmask14(0x2, 0xbfbfe440, 0) = 0
 15517      1 sh       __sigaction_sigtramp(0xd, 0, 0xbfbfe3f0, 0, 0) = 0
 15517      1 sh       __sigaction_sigtramp(0xd, 0xbfbfe3e0, 0xbfbfe3c0, 0xbbb5ec0c, 0x2) = 0
 15517      1 sh       __sigprocmask14(0x2, 0xbfbfe440, 0) = 0
 15517      1 sh       read(0xa, 0x8062960, 0x3f8) = 1016
       "\^?ELF\^A\^A\^A\0\0\0\0\0\0\0\0\0\^B\0\^C\0\^A\0\0\0Dq\a\b4\0\0\0\M-T"
 15517      1 sh       break(0x8068000)            = 0
 15517      1 sh       write(0x2, 0x8067000, 0x2b) = 43
       "/usr/pkg/lib/firefox-linux/firefox-bin: 1: "
 15517      1 sh       write(0x2, 0x8067000, 0x1d) = 29
       "Syntax error: "(" unexpected\n"
 15517      1 sh       exit(0x2)


	--Ed