Arch specific notes — PPC

The Gentoo PowerPC port uses the ppc keyword and maintains compatibility with all 32 bit PowerPC processors. It is also used for 32 bit userland installs on 64 bit PowerPC systems.

Common issues

Although PowerPC processors can be run in little endian mode, the Linux kernel runs on PowerPC processors in big endian mode. Due to this fact, a common PowerPC issue is dealing with code that is written with only little endian processors in mind (x86/amd64). These bugs can be difficult to find, but are usually found when loading data from disk (such as a structure written directly to disk) or during bit operations.

The PowerPC port of gcc uses unsigned characters by default, which is different than on x86. If the code you are working with assumes that the char type is signed, you can pass -fsigned-char to GCC to work around the issue.

Altivec

Altivec (Apple's name for VMX SIMD instructions) is supported on the G4 and G5 processors. You can enable support for the instruction set by passing -mabi=altivec -maltivec to GCC. Note that passing -mcpu= options may enable altivec without passing the flags above.

Occasionally, an altivec issue that crops up is that Apple uses a different notation for indicating vectors, (x) instead of {x}. Using something like the code below to define vectors is the preferred way of fixing this:

#ifdef CONFIG_APPLE
#define AVV(x...) (x)
#else
#define AVV(x...) {x}
#endif

Contacting the PowerPC team

The PowerPC team can be reached by:

  • Via the #gentoo-powerpc IRC channel on Libera.Chat
  • Via email to ppc@gentoo.org
  • Via email to gentoo-ppc-dev@gentoo.org the mailing list
  • Via Bugzilla bugs assigned to ppc@gentoo.org