Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I have a binary that runs on my Debian Squeeze system, but then it doesn't do anything on my Debian Wheezy (kernel Linux 3.2.0-4-amd64) system. Both systems are 64 bit, while the executable is a 32 bit binary.

Here's the output of:

me@myhost:~$ file myApp.run
myApp.run: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, stripped

How do I go about troubleshooting this? I get no output whatsoever, it just returns immediately.

Running the binary with strace:

chadmichael@heraclitus: ~/dir$ sudo strace ./myApp.run 
execve("./myApp.run", ["./myApp"...], [/* 17 vars */]) = 0
[ Process PID=24457 runs in 32 bit mode. ]
old_mmap(0xc6d000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0xc6d000) = 0xc6d000
readlink("/proc/self/exe", "/dir/myApp.run.run", 4096) = 129
old_mmap(0x8048000, 1108297, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x8048000
mprotect(0x8048000, 1108294, PROT_READ|PROT_EXEC) = 0
old_mmap(0x8157000, 42979, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0x10f000) = 0x8157000
mprotect(0x8157000, 42976, PROT_READ|PROT_WRITE) = 0
old_mmap(0x8162000, 15736, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x8162000
brk(0x8166000)                          = 0x866e000
open("/lib/ld-linux.so.2", O_RDONLY)    = -1 ENOENT (No such file or directory)
_exit(127)      

                    = ?
share|improve this question
4  
What is it supposed to do? Have you tried strace? Is this open source, or proprietary? Do you have source? –  derobert Jan 7 '13 at 20:31
    
It's a bitrock installer. I build it from their toolkit. It's supposed to run an interactive installer program. I'll check out strace. –  chad Jan 7 '13 at 20:56
    
@Gilles I don't understand removing the UPDATE . . . without it, the question reads a bit funny, like "I don't know anything . . . here's the strace" Know what I mean? –  chad Jan 7 '13 at 23:16
    
Writing “UPDATE” in the middle of the question is only meaningful to the few people who saw your question both before and after the update. It's useless in the long run. There's no more need for “UPDATE” in the middle of a Stack Exchange question than in a Wikipedia article. –  Gilles Jan 7 '13 at 23:24
add comment

2 Answers 2

up vote 2 down vote accepted

The 64-bit O/S does not have the 32-bit libraries installed.

apt-get update; apt-get upgrade; apt-get install ia32-libs

This will provide the missing /lib/ld-linux.so.2.

share|improve this answer
add comment

You are probably missing the i386 libc, try installing it with apt-get install libc6-i386.

You can also add multiarch support to your system by running:

dpkg --add-architecture i386
apt-get update

Afterwards you can install a package for i386 with apt-get install package-name:i386 if it supports multiarch.

For more information have a look at the multiarch howto

share|improve this answer
    
If a library was missing, instead of nothing, he'd get an error. Instead, OP gets "no output whatsoever". –  derobert Jan 7 '13 at 20:51
    
@derobert you are right, i'll delete the answer. –  Ulrich Dangel Jan 7 '13 at 21:54
    
Did you see the update? I think you were right, and there was no error . . . unless it was in a log I didn't know to look in. –  chad Jan 7 '13 at 23:13
    
@chad yeah but based on your original description i was wrong, after i saw your update i undeleted it –  Ulrich Dangel Jan 7 '13 at 23:36
    
Really weird there was no error message. But yeah... Seems you're right. (Though I'm not sure Squeeze really has multiarch, I think you need Wheezy for that) –  derobert Jan 8 '13 at 15:49
show 1 more comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.