"JH" == Josh <[EMAIL PROTECTED]> writes: Josh,
JH> OK, so now I downloaded the Linux version of the program I JH> need (a Dynamic DNS program) and unzipped it (not an .exe). JH> When I run it I get this: JH> Cannot execute binary file. JH> What's the deal? Aha, now I see. It's quite simple, really. Many companies claim that their software is available for ``Linux'', but they're lying. What they should have said is that their application is available for x86 Linux. If you had a PC running some flavor of Linux, you'd be fine, but if you want to run it on a PowerMac running the same flavor of Linux, you're out of luck. There are lots of differences between the x86 and PowerPC processor families. A program compiled for one processor family will not make sense to a processor in another family, any more than French will make sense to someone who only speaks Cantonese. For example, if I run ``file /bin/cat'' on my system, I get /bin/cat: ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1, dynamically linked (uses shared libs), stripped On our dual-Pentium system, ``file /bin/cat'' gives me /bin/cat: ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked (uses shared libs), stripped and if I try to run the i386 executable by copying it to my PowerPC machine, I get cat: Exec format error. Binary file not executable. The source code for /bin/cat is the same, but the binary executable produced by compiling that source is architecture-specific. You might think that given source code, you could compile a program on your PowerPC machine and have it work, but sometimes that's not true, either. Some programmers make assumptions about the behavior of the machine that only apply to one or two architectures, and fail on others. The most famous of these for PowerPC is the assumption that the C language `char' type is signed, which is true on Intel and SPARC processors, but not true on PowerPC and Alpha processors -- the ISO C standard defines char's signedness as ``unspecified'', leaving it open to interpretation by the machine's designers. Because many programmers try to ``optimize'' their code by defining a variable to be a char rather than an int when the variable is expected to hold small values, the code can fail on PowerPC systems, with the compiler giving warnings such as ``comparison is always false because of limited range of data type''. (Perhaps the saddest thing of all is that these ``optimizations'' are often deeply flawed and don't make the program run any faster -- they can even make the program run slower!) Your best bet is to find a program that does what you want and is packaged for Debian PowerPC. CMC +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Behind the counter a boy with a shaven head stared vacantly into space, a dozen spikes of microsoft protruding from the socket behind his ear. +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ C.M. Connelly [EMAIL PROTECTED] SHC, DS +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+