Penguin
Note: You are viewing an old revision of this page. View the current version.

AMD's 64bit architecture, used in their Opteron and Athlon64 CPUs. Also known as x86-64. They are AMD's attempt to compete with Intel's ia64 and gain a foothold in the server market. Read more at amd.com

This promises to be a major revolution in archetecture of the 80x86 line of processors, such that we've not seen since the 8086 to the 80286 and the 80286 to the 80386.


Some things to beware of:

use gcc3.4 and above!

gcc3.3 and below cannot generate correct code for the 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 gcc3.4 compiler, as they voilate some rules of the C specification that gcc3.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 gcc2.96 cpp to preprocess code, and the gcc3.4 executable 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 archetectures of difference sizes. For instance using a uint64_t to make sure a type is 64bits long, then trying to printf it causes problems. See CPortabilityNotes?.


CategoryProgramming, CategoryHardware