public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
* [Linux-ia64] 2.4.16 + ia64-011128: Unable to execute a "rwx" program
@ 2001-12-27  9:45 Ville Herva
  2002-01-05  5:06 ` Jim Wilson
  2002-01-05 10:41 ` Ville Herva
  0 siblings, 2 replies; 3+ messages in thread
From: Ville Herva @ 2001-12-27  9:45 UTC (permalink / raw)
  To: linux-ia64

whale% pwd
/tmp
whale% df -hT .
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/sda1     ext3    3.4G  3.0G  248M  93% /
whale% ls -l ./prog
-rwxrwxr-x    1 vherva   vherva    4899088 Dec 27 10:56 ./prog
whale% stat ./prog
  File: "./prog"
  Size: 4899088         Blocks: 9600       IO Block: 16384  Regular File
Device: 801h/2049d      Inode: 309989      Links: 1    
Access: (0775/-rwxrwxr-x)  Uid: (  501/  vherva)   Gid: (  504/  vherva)
Access: Thu Dec 27 11:19:54 2001
Modify: Thu Dec 27 10:56:15 2001
Change: Thu Dec 27 11:21:25 2001

whale% file ./prog
./prog: ELF 64-bit LSB executable, IA-64 (Intel 64 bit architecture) version
1 (SYSV), dynamically linked (uses shared libs), stripped
whale% id
uidP1(vherva) gidP4(vherva) groupsP4(vherva)
whale% ./prog
zsh: no such file or directory: ./prog
whale% strace ./prog
execve("./prog", ["./prog"], [/* 14 vars */]) = 0
strace: exec: No such file or directory
whale% ldd ./prog
/usr/bin/ldd: ./prog: No such file or directory
whale% cat /proc/version  
Linux version 2.4.16 (root@whale) (gcc version 2.96 20000731
(Mandrake Linux 8.1 2.96-0.62mdk)) #1 SMP Thu Dec 6 14:18:27 EET 2001

This is a c++ program I compiled with the Intel compiler.

with 2.4.17rc2 + ia64-011214 an the symptoms are similar, but "strace ldd
./prog" crashes the machine (hard lockup, only alt-sysrq-b works.) With
2.4.16+011128 it doesn't crash, but gives

/usr/bin/ldd: ./prog: No such file or directory

Any ideas?

 
-- v --

v@iki.fi


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Linux-ia64] 2.4.16 + ia64-011128: Unable to execute a "rwx" program
  2001-12-27  9:45 [Linux-ia64] 2.4.16 + ia64-011128: Unable to execute a "rwx" program Ville Herva
@ 2002-01-05  5:06 ` Jim Wilson
  2002-01-05 10:41 ` Ville Herva
  1 sibling, 0 replies; 3+ messages in thread
From: Jim Wilson @ 2002-01-05  5:06 UTC (permalink / raw)
  To: linux-ia64

>whale% ./prog
>zsh: no such file or directory: ./prog

This usually means that the program specifies an interpreter, and the
interpreter can not be found.

For a shell script, the interpreter is in the first line.  For instance,
if I create a shell script called prog, and put in it two lines
	#!/bin/foo
	exit 0
and then run it, I get the error "bash: ./prog: no such file or directory".
The missing file is "/bin/foo" not "prog".

For an ELF executable, the interpreter is stored in the PT_INTERP field.
"readelf -l prog" will print out the value of the PT_INTERP field along
with a bunch of other stuff.

On my system, readelf -l /usr/bin/zip prints out
  INTERP         0x0000f4 0x080480f4 0x080480f4 0x00013 0x00013 R   0x1
      [Requesting program interpreter: /lib/ld-linux.so.2]

>This is a c++ program I compiled with the Intel compiler.

My guess is that you have an old OS with a new executable, or an old
executable with a new OS, in which case the executable is looking
for different version of ld.so than the one that comes with the OS.

Another possibility is that you are missing one of the libraries that comes
with the Intel compiler.  Or perhaps, you need an environment variable set
before it will work correctly.

Jim


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Linux-ia64] 2.4.16 + ia64-011128: Unable to execute a "rwx" program
  2001-12-27  9:45 [Linux-ia64] 2.4.16 + ia64-011128: Unable to execute a "rwx" program Ville Herva
  2002-01-05  5:06 ` Jim Wilson
@ 2002-01-05 10:41 ` Ville Herva
  1 sibling, 0 replies; 3+ messages in thread
From: Ville Herva @ 2002-01-05 10:41 UTC (permalink / raw)
  To: linux-ia64

On Fri, Jan 04, 2002 at 09:06:51PM -0800, you [Jim Wilson] claimed:
> 
> This usually means that the program specifies an interpreter, and the
> interpreter can not be found.
> 
> For a shell script, the interpreter is in the first line.  For instance,
> if I create a shell script called prog, and put in it two lines
> 	#!/bin/foo
> 	exit 0
> and then run it, I get the error "bash: ./prog: no such file or directory".
> The missing file is "/bin/foo" not "prog".

Surely. I just hadn't seen that happen with a compiled c file...
 
> For an ELF executable, the interpreter is stored in the PT_INTERP field.
> "readelf -l prog" will print out the value of the PT_INTERP field along
> with a bunch of other stuff.
> 
> On my system, readelf -l /usr/bin/zip prints out
>   INTERP         0x0000f4 0x080480f4 0x080480f4 0x00013 0x00013 R   0x1
>       [Requesting program interpreter: /lib/ld-linux.so.2]

./fob2          
zsh: no such file or directory: ./fob2
readelf -l ./fob2  
                                                                    
Elf file type is EXEC (Executable file)
Entry point 0x40000000000071a0
There are 7 program headers, starting at offset 64

Program Headers:
  Type           Offset             VirtAddr           PhysAddr
                 FileSiz            MemSiz              Flags  Align
  PHDR           0x0000000000000040 0x4000000000000040 0x4000000000000040
                 0x0000000000000188 0x0000000000000188  R E    8
  INTERP         0x00000000000001c8 0x40000000000001c8 0x40000000000001c8
                 0x0000000000000011 0x0000000000000011  R      1
      [Requesting program interpreter: /usr/lib/ld.so.1]
  LOAD           0x0000000000000000 0x4000000000000000 0x4000000000000000
                 0x00000000000dee10 0x00000000000dee10  R E    10000
  LOAD           0x00000000000dee10 0x600000000000ee10 0x600000000000ee10
                 0x000000000000a120 0x000000000000c6a0  RW     10000
  DYNAMIC        0x00000000000e8680 0x6000000000018680 0x6000000000018680
                 0x0000000000000220 0x0000000000000220  RW     8
  NOTE           0x00000000000001dc 0x40000000000001dc 0x40000000000001dc
                 0x0000000000000020 0x0000000000000020  R      4
  IA_64_UNWIND   0x00000000000db738 0x40000000000db738 0x40000000000db738
                 0x00000000000036d8 0x00000000000036d8  R      8

 Section to Segment mapping:
  Segment Sections...
   00     
   01     .interp 
   02     .interp .note.ABI-tag .hash .dynsym .dynstr .gnu.version
.gnu.version_d .gnu.version_r .rela.data .rela.got .rela.sdata
.rela.IA_64.pltoff .init .plt .text .fini .rodata .rdata __libc_atexit
__libc_subinit __libc_subfreeres .opd .IA_64.unwind_info .IA_64.unwind 
   03     .data .ctors .dtors .got .dynamic .sdata .srdata .IA_64.pltoff
.sbss .bss 
   04     .dynamic 
   05     .note.ABI-tag 
   06     .IA_64.unwind 

ls -l /usr/lib/ld.so.1
ls: /usr/lib/ld.so.1: No such file or directory

WORKING program: 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Elf file type is EXEC (Executable file)
Entry point 0x4000000000003bc0
There are 7 program headers, starting at offset 64

Program Headers:
  Type           Offset             VirtAddr           PhysAddr
                 FileSiz            MemSiz              Flags  Align
  PHDR           0x0000000000000040 0x4000000000000040 0x4000000000000040
                 0x0000000000000188 0x0000000000000188  R E    8
  INTERP         0x00000000000001c8 0x40000000000001c8 0x40000000000001c8
                 0x0000000000000018 0x0000000000000018  R      1
      [Requesting program interpreter: /lib/ld-linux-ia64.so.2]
  LOAD           0x0000000000000000 0x4000000000000000 0x4000000000000000
                 0x000000000001b970 0x000000000001b970  R E    10000
  LOAD           0x000000000001b970 0x600000000000b970 0x600000000000b970
                 0x0000000000000af0 0x0000000000000e30  RW     10000
  DYNAMIC        0x000000000001c018 0x600000000000c018 0x600000000000c018
                 0x0000000000000230 0x0000000000000230  RW     8
  NOTE           0x00000000000001e0 0x40000000000001e0 0x40000000000001e0
                 0x0000000000000020 0x0000000000000020  R      4
  IA_64_UNWIND   0x000000000001b1d8 0x400000000001b1d8 0x400000000001b1d8
                 0x0000000000000798 0x0000000000000798  R      8

 Section to Segment mapping:
  Segment Sections...
   00     
   01     .interp 
   02     .interp .note.ABI-tag .hash .dynsym .dynstr .gnu.version
.gnu.version_r .rela.data .rela.IA_64.unwind_info .rela.got .rela.sdata
.rela.IA_64.pltoff .init .plt .text .fini .rdata .opd .IA_64.unwind_info
.IA_64.unwind 
   03     .data .ctors .dtors .got .dynamic .sdata .srdata .IA_64.pltoff
.sbss .bss 
   04     .dynamic 
   05     .note.ABI-tag 
   06     .IA_64.unwind 

ls -l /lib/ld-linux-ia64.so.2
lrwxrwxrwx    1 root     root           11 Dec 28 09:49 /lib/ld-linux-ia64.so.2 -> ld-2.2.4.so

 
> >This is a c++ program I compiled with the Intel compiler.
> 
> My guess is that you have an old OS with a new executable, or an old
> executable with a new OS, in which case the executable is looking
> for different version of ld.so than the one that comes with the OS.
> 
> Another possibility is that you are missing one of the libraries that comes
> with the Intel compiler.  Or perhaps, you need an environment variable set
> before it will work correctly.

Yes.

Gwenole Beauchesne of Mandrake already pointed out to me that ecc hides a
-static switch in ecc.cfg. Unless I take it away, linking dynamic programs
with ecc works, but results in executables that give "no such file or
directory". If I remove the static switch, it works.

What I didn't realize is that the "no such file or directory" comes from
the unability to load suitable ld.so.

(The test program above is just a few line c program that links against few
dynamic X11 libraries.)


thanks for your time,

-- v --

v@iki.fi


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2002-01-05 10:41 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-12-27  9:45 [Linux-ia64] 2.4.16 + ia64-011128: Unable to execute a "rwx" program Ville Herva
2002-01-05  5:06 ` Jim Wilson
2002-01-05 10:41 ` Ville Herva

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox