Most software that you can obtain the source code for will
compile and work on the PowerPC. Several Open Source Linux
programs known to work with PowerPC Linux are mentioned
below.
No PowerPC Specific Binaries
If the source code is not avalible, and there is no
pre-compiled PowerPC Linux binary it won't work on
PowerPC Linux. PowerPC Linux is NOT binary
compatible with x86/Intel Linux or other Linuxes. It is
however compatible with MkLinux binaries, and all PowerPC
Linux binaries support all platforms that support PowerPC
Linux. Mac OS and Mac OS X binaries will NOT work on
PowerPC Linux, nor will they work on Mac OS or Mac OS X.
However, you can run these programs on-top of the free
Virtual Machine Mac-on-Linux, assuming you also have the
required OS booted and running.
Endianess Issues
iMacs, iBooks and PowerMacs (which use the PowerPC CPU)
are big endian, while x86 machines are little endian.
Endianess is the way the CPU reads binary numbers, if a
program assumes it's running on a little endian machine
and a not big endian machine it will be seriously broken
on the PowerPC. An example of this is many of the
Napster-clones are broken on the PowerPC. Thankfully,
many of them (including gnapster and knapster) have been
patched, so they work correctly on the PowerPC.
i386 (Or Other Platform) Assembly
Assembly Code is low level processor instructions. This
makes it dependent on a certain CPU. This means things
like x86 binutils (really fast common utilities written
in assembly) won't work the PowerPC. The only way to make
such code work on the PowerPC is re-write it in a higher
level language (C, C++, Perl, etc.) or re-write it in
PowerPC assembly.
PowerPC Little Endian Sound
For compatibility reasons PowerPC Linux has little endian
sound drivers. Some programs (like EsounD) expect big
endian sound on big endian systems. MkLinux and old
versions of PowerPC Linux (pre-2.1.24) use big endian
sound.
Accessing Special x86 Features
Some apps like those that measure CPU temp. won't work do
to PowerPC processors work different then there x86
equivalents (note this example does not apply to G4
processors running Linux 2.4 with Tempeture in /proc.)
PowerPC Linux's File-system is Little Endian ext2fs
Old versions of MkLinux and LinuxPPC used to use a big
endian version ext2fs, however all modern versions are
little endian (like the x86). This could possibly break
some tools that directly access the filesytem, and assume
that on a big endian system the filesytem is big endian.
GCC 2.95 is Very Strict
gcc is very strict about the C++ standard, it will stop
compiling certain programs due to certain errors. Try
opening the Makefile in the directory where it fails, and
add to the CXXFLAGS= and CPPFLAGS=
lines the flag -fpermissive.
v_align Works Different on The PowerPC
This function works quite differently on the PowerPC then
on i386 machines. This can cause all kinds of problems
compiling on the PowerPC, it's best to ask about this
kind of question on linuxppc-dev mailing
list.
Relies on Libraries or Software non-Existent on the
PowerPC
Most of the libraries that are avalible on the i386 are
also avalible on the PowerPC. There are a few exceptions
however -- such as binary only ones (such as the Mp3.com
secure software), GNUstep (currently broken on the
PowerPC because of other problems), WINE (a port is
happening, with an x86 emulator, but it's far from
usable), etc.