Subject: Re: Solaris emulation problems
To: Eduardo Horvath <eeh@turbolinux.com>
From: Alexander Strauss <strauss@astracom.net>
List: port-sparc
Date: 06/08/2000 21:43:46
Eduardo Horvath wrote:
>
> On Thu, 8 Jun 2000, Alexander Strauss wrote:
>
> > Hi there,
> >
> > I've setup a Sparc Classic with Solaris emulation as described in
> > compat_svr4(8) - the Solaris files are located in /emul/svr4, and my
> > kernel build includes the options "COMPAT_SVR4" and "EXEC_ELF32".
> > Anyway, if I try to execute a simple Solaris 7 program, the kernel fails
> > to execute it:
> >
> > alex@modena:/mnt/bin:(5)> ./less
> > ./less: Exec format error. Binary file not executable.
> > alex@modena:/mnt/bin:(6)>
> >
> > Any suggestions?
>
> Make sure it's a 32-bit ELF executable and not 64-bit ELF:
>
> file ./less
>
> You cannot run 64-bit binaries on a 32-bit machine.
>
> If that checks out, then try ldd to make sure all the libraries can be
> found and ktrace to find out where it's dying.
>
> If it dies inside one execve then try using objdump on it to dump the ELF
> headers.
>
> Eduardo Horvath
alex@modena:/tmp:(17)> file /mnt/bin/less
/mnt/bin/less: ELF 32-bit MSB executable, SPARC, version 1, dynamically
linked (uses shared libs), not stripped
alex@modena:/tmp:(18)> ldd /mnt/bin/less
ldd: /mnt/bin/less: not a dynamic executable
alex@modena:/tmp:(19)> ktrace /mnt/bin/less
/mnt/bin/less: 1: Syntax error: "(" unexpected
alex@modena:/tmp:(20)> objdump --section-headers /mnt/bin/less
/mnt/bin/less: file format elf32-sparc
Sections:
Idx Name Size VMA LMA File off Algn
0 .interp 00000011 000100d4 000100d4 000000d4 2**0
CONTENTS, ALLOC, LOAD, READONLY, DATA
1 .hash 00000e1c 000100e8 000100e8 000000e8 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
2 .dynsym 00001bc0 00010f04 00010f04 00000f04 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
3 .dynstr 00001f47 00012ac4 00012ac4 00002ac4 2**0
CONTENTS, ALLOC, LOAD, READONLY, DATA
4 .SUNW_version 00000040 00014a0c 00014a0c 00004a0c 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
5 .rela.bss 00000018 00014a4c 00014a4c 00004a4c 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
6 .rela.plt 0000030c 00014a64 00014a64 00004a64 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
7 .text 0000f59c 00014d70 00014d70 00004d70 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
8 .init 0000001c 0002430c 0002430c 0001430c 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
9 .fini 00000014 00024328 00024328 00014328 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
10 .rodata 000045c3 00024340 00024340 00014340 2**3
CONTENTS, ALLOC, LOAD, READONLY, DATA
11 .got 00000020 00038904 00038904 00018904 2**2
CONTENTS, ALLOC, LOAD, DATA
12 .plt 00000340 00038924 00038924 00018924 2**2
CONTENTS, ALLOC, LOAD, CODE
13 .dynamic 000000c0 00038c64 00038c64 00018c64 2**2
CONTENTS, ALLOC, LOAD, DATA
14 .data 00000a64 00038d28 00038d28 00018d28 2**3
CONTENTS, ALLOC, LOAD, DATA
15 .ctors 00000008 0003978c 0003978c 0001978c 2**2
CONTENTS, ALLOC, LOAD, DATA
16 .dtors 00000008 00039794 00039794 00019794 2**2
CONTENTS, ALLOC, LOAD, DATA
17 .eh_frame 00000154 0003979c 0003979c 0001979c 2**2
CONTENTS, ALLOC, LOAD, DATA
18 .bss 00001fa0 000398f0 000398f0 000198f0 2**3
ALLOC
19 .comment 000009d6 00000000 00000000 0001e6ec 2**0
CONTENTS, READONLY
20 .stab.index 00000024 00000000 00000000 0001f0c4 2**2
CONTENTS, READONLY, DEBUGGING
21 .stab 0002af00 00000000 00000000 0001f0e8 2**2
CONTENTS, READONLY, DEBUGGING
22 .stab.indexstr 00000171 00000000 00000000 0004a0c6 2**0
CONTENTS, READONLY, DEBUGGING
23 .stabstr 00046c4e 00000000 00000000 0004a237 2**0
CONTENTS, READONLY, DEBUGGING
Interesting, eh? Probably a kernel configuration problem, but I couldn't
find one...same behaviour with any other Solaris binary I've tested.
Thanks,
Alex
--
best regards,
Alexander Strauss <strauss@astracom.net>