> You can't divorce a compiler from the target. The target's ABI specifies a great number of details that are > very >much relevant to the compiler, such as: > ... > So you can't just make some kind of generic "386" gcc and expect it to have any kind of useful ability, unless > you are only ever doing to compile 100% freestanding code like a kernel or a OS-less bare metal system. > Otherwise it must be targeted to a specific platform, i.e. > i386-pc-linux or i386-pc-mingw. > Brian Just a nit, this is true of GCC certainly, but not compilers in general. It is in fact quite possible and compilers exist that target x386 in general. In fact, I don't think it makes a lot of sense in many cases to build the calling convention of the operating system into the compiler. For example, the Windows calling convention for system calls is a very inefficient calling convention for general use, because it comes from the days that Microsoft C didn't perform register passed parameters. Microsoft themselves don't use the convention for calls between routines, the system calls must be marked and coded separately. Both GCC and Microsoft C build both passing conventions into the compiler, but there is no particular reason the system calls cannot be done by a thunk layer, and in fact there are x386 compilers that work that way. Scott Moore --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.762 / Virus Database: 510 - Release Date: 9/13/2004