lkml.org 
[lkml]   [2000]   [Nov]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Where is it written?
Peter Samuelson wrote:
>
> [Peter Anvin]
> > At the time the original x86 ABI was created, a lot of C code was
> > still K&R, and thus prototypes didn't exist...
>
> True enough. That does explain a lot. But what about the Alpha? From
> reading gcc source awhile back I seem to remember that most if not all
> parameters are passed in registers. How does *that* work with varargs
> and no prototypes? Or does it?
>

It doesn't, but the Alpha is a *much* more recent ABI... the x86 ABI
really dates back to the 16-bit 8086-series CPUs.

> > I don't think we want to introduce a new ABI in user space at this
> > time. If we ever have to major-rev the ABI (libc.so.7), then we
> > should consider this.
>
> Ah, but kernel-side? My point was that if gcc (and binutils) is
> flexible enough to let you pick an ABI at runtime, perhaps a RISCoid
> ABI for x86 could coexist with the SysV one, to be used initially for
> self-contained code like the kernel. (And later, a possible transition
> in userspace.)

We tried once; at that point the register-based ABI support in gcc was
too buggy to be useful. We might try again in 2.5 since we now have
increased the minimum gcc version for kernel compiles. Binutils needs no
change.

-hpa

--
<hpa@transmeta.com> at work, <hpa@zytor.com> in private!
"Unix gives you enough rope to shoot yourself in the foot."
http://www.zytor.com/~hpa/puzzle.txt
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 12:45    [W:0.088 / U:21.924 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site