lkml.org 
[lkml]   [1999]   [Aug]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Boot code rewritten for GAS
On Sun, 1 Aug 1999, Albert D. Cahalan wrote:

> I'd say you guessed why this keeps getting ignored. (I have binutils
> 2.8.1.0.1 right now.) You could submit the patch again in a few years.

Well today I went digging around, picked up the latest binutils from
cygnus CVS and discovered that it has fixed every bug uncovered by my
patch. The 16-bit i386 back-end from 2.9.1 was notoriously bad and from
the (quick) looks of it 2.9.5 is a hell of a lot more sane.

I hope that it's not too much to ask that when someone upgrades to 2.4
with all it's newfangled thisandthats (tm) that they should pick up the
latest version of the assembler, which fixes this bug and that bug and
adds this feature, &c? I do realize that it is a royal PITA sometimes,
but binutils (and gas specifically) is a pretty important thing to keep up
to date being as it is at the very heart of compiling *anything* and
should be able to do it correctly (sadly, it seems that it can only do
it with the most recent versions :). And who can forget having to
update quite a few basic programs when coming from 2.0 -> 2.2?

BTW, is there any pressing reason as to why you're sticking with
2.8.1.0.1?

> Another reason: People who can write 16-bit x86 assembly are likely to
> be ex-DOS hackers with MASM and TASM experience. To them, gas syntax
> may be hard to use.

Well, that reason I find somewhat hard to swallow. The as86 syntax used in
the boot code is an *outcast* amongst the hundreds of other lines of gas
style asm (albeit most is gcc inline'd) sprinkled throughout the kernel.

AT&T syntax has been the preferred and default style of every *NIX
system for as long as I can remember.

Besides it's not *that* hard to pick up the few rules that differ:
(a) '%' before regs
(b) add a size suffix to instructions
(c) src, dst instead of dst, src
(d) base, scale, index written differently

Not to mention that as86/ld86 are pretty archaic, undocumented and used
today to compile one sole thing in the entire universe (the kernel). :)

Then again, I'm not against using say NASM for the boot code. I actually
somewhat prefer it's simplicity of syntax, full documentation and the fact
that it's pretty actively maintained right now. But I'd hate to bring in
another outside prerequisite to compiling the kernel.

Right now it stands as (approximately): gcc, binutils, as86/ld86.
With this patch: gcc, binutils (which are pretty much guaranteed to be
installed)

Would a patch in the same vein, but geared toward NASM be acceptable?

Chris Noe
(stiker@northlink.com)


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:53    [from the cache]
©2003-2014 Jasper Spaans. Advertise on this site