Penguin

AMD's 64bit architecture, used in their Opteron and Athlon64 CPUs, and also known as x86-64. It is the first major evolution of the x86 platform since the i386 and has been adopted by Intel under the name EM64T. The Opteron line is AMD's attempt to compete with Intel in the server market. Some things to beware of:

Use GCC 3.4 and above!

GCC 3.3 and below cannot generate correct code for amd64. If you have mysterious problems with programs crashing unexpectantly in what is normal code, then it's almost certain that you are not using a recent enough compiler. Mozilla shows this problem and will crash on startup.

This poses a problem as a lot of programs won't compile with the newer GCC 3.4 compiler, as they voilate some rules of the C specification that GCC 3.4 now enforces where earlier compilers didn't. This problem should disappear with time, but if it is a pain when it does surface. I have personally solved this issue in the past by using the GCC 2.96 cpp to preprocess code, and GCC 3.4 to generate the actual executable. Other hand hacking may be required.

Some code isn't 64bit clean

It's difficult to write portable code in C that deals properly with architectures with different word sizes. For instance using a uint64_t to make sure a type is 64bits long, then trying to printf(3) it causes problems. See CPortabilityNotes?.


CategoryProgramming, CategoryHardware