RE: bootsect.S changes

Albert D. Cahalan (acahalan@cs.uml.edu)
Sun, 17 Oct 1999 00:12:43 -0400 (EDT)


Chris Noe writes:

> All the (current) new bootcode was written with the idea of "binary
> level compatibility" firmly in mind. I had actually worked backward from
> the original as86 output to come up with the equivalent gas instructions
> when the assembly was questionable, simply because I knew that that encoding
> worked. I did that with the idea that 'hey, if it compiles to the same
> opcodes, were fine' -- that was the sole plan at the moment: to have a 2.4
> kernel that doesn't need as86/ld86 to build.

So now the kernel is using incorrect opcodes to get the right output.

When you change to using the correct opcodes, what happens?
Do all the assemblers that tolerate the current code become junk?

Did you tell Linus that you were using the WRONG opcodes?
I'm guessing you just snuck that by him. (well Linus?)

> Yes that makes the source wrong on a pure "syntax" level in quite a few
> spots, but does it truly matter if (a) it assembles to the correct
> opcodes, (b) gives some much needed testing and real life usage of gas,
> so that it finally will do the right things when it comes to 16 bit asms,
> and (c) is planned on being (for lack of a better word) "optimized" back
> to correctness later on down the road (when everyone's using, or better
> yet are forced to use, the latest binutils).

Being forced to use gcc 2.7 and up is OK. The old ones are broken.
Being forced to change gas because you don't LIKE as86 is awful.

> You bring up some valid points, but I feel the intent of the patch was
> misjudged.

The intent was...? (screw people not running the very latest?)

> Just a few points on the latest binutils (which now might be a requirement
> of the next 2.3): The changes to the bootcode were intended to be
> included with a kernel that had a minimum binutils of 2.9.1.0.7, because
> I didn't feel it was worth a binutils upgrade to 2.9.5 to each and every
> person in order to have "syntactic perfection" (due to the fact that only
> the *latest* binutils produce the most correct code for most every case).
> I just wanted joe user to be able to still compile, but without the
> dependency on as86.

So now joe user (who already has as86) must upgrade to 2.9.1.0.7
or later, disturbing fairly important parts of the system. Had you
simply changed to NASM (still pointless IMHO), I could at least
upgrade without risk to gcc. (kernels are easy because of LILO)

This all because you have some weird hatred of Genuine Intel syntax?
I wish you were local so that I could scream obscenities at you.

-
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/