This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
RE: Tiny GCC: Pure, Unadulterated, Object Code
- From: "Scott Moore" <smoore at powerfile dot com>
- To: <gcc-help at gcc dot gnu dot org>, "Michael Witten" <mfwitten at MIT dot EDU>
- Date: Mon, 28 Jan 2008 14:14:36 -0500
- Subject: RE: Tiny GCC: Pure, Unadulterated, Object Code
> 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