Re: Updated i386 bootcode rewrite patch...

Chris Noe (stiker@northlink.com)
Wed, 13 Oct 1999 21:26:50 -0400 (EDT)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

--8323328-1635988237-939862399=:518
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.LNX.4.10.9910132057331.518@localhost>

> I see that the patch submitted by Chris Noe <stiker@northlink.com>
> requires a minimum of binutils-2.9.1.0.7.
>
> Chris Noe says:
>
> Simple patch that takes all the as86/ld86 stuff in arch/i386/boot and
> makes it use standard GNU as/ld. Needs a minimum of binutils-2.9.1.0.7,
> but that's it (that is the minimum per Documentation/Changes for 2.2
> anyway). I'd love to see this squeeze into 2.3 as a 'bugfix' as no new
> features are anywhere to be found, I swear. :)
>
> As I read Documentation/Changes, it currently states that
> the minimum binutils required is
> - Binutils 2.8.1.0.23 ; ld -v
> It also mentions, but does not require 2.9.1.0.15.

Quoting 2.2/2.3 Documentation/Changes (just for background):

"The last public release of the binutils 2.8.x series was 2.8.1.0.23.
Binutils 2.8.1.0.25 to 2.9.1.0.2 are beta releases, and are known to be
very buggy. Binutils 2.9.1 (note the absence of a suffix) from the FSF
should work, and binutils 2.9.1.0.7 and later releases are also good.
Either use binutils-2.8.1.0.23 or binutils-2.9.1.0.7 or later. Glibc2
users should especially try to use the 2.9.1.0.x releases, as they
resolve known issues with glibc2 and binutils-2.8.x releases."

Yes, there was also supposed to be a hunk in the patch that removed all
references of binutils 2.8 from the Changes and made 2.9.1.0.7 the
absolute minimum. Of course I managed to get more caught up in the code
and let the documentation slip. :)

Yes the upping of the version is inconvenient, but really for a good
reason -- 2.9.1 is still not the most optimal (2.9.5 would be), but 2.9.1
is present and in (almost?) every modern distribution; the time has come
to up the minimum, and it has (expectedly) caused some problems. I
wouldn't have done it except for the fact that any binutils earlier than
that have trouble compiling the most basic 16 bit code. I'd love to make
it a more recent version, but as we've seen, the lowest version
recommended is often the version most often used :)

> Chris Noe says that "This thing has been tested by many people"
> but if this is what made it into linux-2.3.21 then none
> of those people were running binutils 2.8.1.0.23.

Right, because 2.9.1.0.7 is the absolute minimum; anything below that is
*KNOWN TO MISCOMPILE* this code. I wouldn't be surprised if other asms
around the kernel were compiled wrong (or at least sub-optimally) with
older binutils.

> I didn't here back from an Chris Ricker
> Re: bbootsect.s Error: base/index register must be 32 bit register
> on updating Documentation/Changes to reflect this new requirements for
> binutils clearly.

It's in the works, and in a diff going into 2.3.22.

Here's a recent (code only) diff, please test this against a clean 2.3.21,
with a binutils >= 2.9.1.0.7, and let me know if it causes any problems.
It fixes the one compile-killing outb/outw typo, along with fixing bzImage
loading (as reported by Vojtech), as well as a few iffy asms caught by
the latest 2.9.5 (thanks to Mike Galbraith).

Vojtech Pavlik: This diff fixes the very problem you were having.

Chris Noe
(stiker@northlink.com)

--8323328-1635988237-939862399=:518
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME=boot-newdiff
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.10.9910132053190.518@localhost>
Content-Description:
Content-Disposition: ATTACHMENT; FILENAME=boot-newdiff

LS0tIGJvb3RzZWN0LlMub3JpZwlUdWUgT2N0IDEyIDA2OjM2OjE5IDE5OTkN
CisrKyBib290c2VjdC5TCVR1ZSBPY3QgMTIgMTc6MjU6MjQgMTk5OQ0KQEAg
LTI0Nyw3ICsyNDcsNyBAQA0KIAl4b3J3CSVieCwgJWJ4CQkjIGJ4IGlzIHN0
YXJ0aW5nIGFkZHJlc3Mgd2l0aGluIHNlZ21lbnQNCiBycF9yZWFkOg0KICNp
ZmRlZiBfX0JJR19LRVJORUxfXw0KLQlsY2FsbAlib290c2VjdF9rbHVkZ2UJ
CSMgaW4gc2V0dXAuUw0KKwkud29yZCAweDFlZmYsIDB4MDIyMAkJIyBsY2Fs
bCAqIGJvb3RzZWN0X2tsdWRnZSBpbiBzZXR1cC5TDQogI2Vsc2UNCiAJbW92
dwklZXMsICVheA0KIAlzdWJ3CSRTWVNTRUcsICVheA0KQEAgLTM5OCwxMSAr
Mzk4LDkgQEANCiAjIGRvbid0IGhhdmUgdG8gd29ycnkgYWJvdXQgaXQgbGF0
ZXIuDQogDQoga2lsbF9tb3RvcjoNCi0JcHVzaHcJJWR4DQogCW1vdncJJDB4
M2YyLCAlZHgNCiAJeG9yYgklYWwsICVhbA0KLQlvdXR3CSVhbCwgJWR4DQot
CXBvcHcJJWR4DQorCW91dGIJJWFsLCAlZHgNCiAJcmV0DQogDQogc2VjdG9y
czoJLndvcmQgMA0KLS0tIHNldHVwLlMub3JpZwlUdWUgT2N0IDEyIDA2OjM2
OjIzIDE5OTkNCisrKyBzZXR1cC5TCVR1ZSBPY3QgMTIgMTc6NDM6MjkgMTk5
OQ0KQEAgLTE0NSw3ICsxNDUsNyBAQA0KICNpZmRlZiBTQUZFX1JFU0VUX0RJ
U0tfQ09OVFJPTExFUg0KICMgUmVzZXQgdGhlIGRpc2sgY29udHJvbGxlci4N
CiAJbW92dwkkMHgwMDAwLCAlYXgNCi0JbW92YgkkMHg4MCwgJGRsDQorCW1v
dmIJJDB4ODAsICVkbA0KIAlpbnQJJDB4MTMNCiAjZW5kaWYNCiANCkBAIC00
MDAsNyArNDAwLDcgQEANCiAJc3VidwkkREVMVEFfSU5JVFNFRywgJWF4CQkj
IGFrYSBJTklUU0VHDQogCW1vdncJJWF4LCAlZHMNCiAJeG9ydwklYXgsICVh
eA0KLQltb3Z3CSVheCwgMHhhMAkJCSMgc2V0IHRhYmxlIGxlbmd0aCB0byAw
DQorCW1vdncJJWF4LCAoMHhhMCkJCQkjIHNldCB0YWJsZSBsZW5ndGggdG8g
MA0KIAltb3ZiCSQweGMwLCAlYWgNCiAJc3RjDQogCWludAkkMHgxNQkJCQkj
IG1vdmVzIGZlYXR1cmUgdGFibGUgdG8gZXM6YngNCkBAIC00OTYsNyArNDk2
LDcgQEANCiAJY21wdwkkMCwgJWNzOnJlYWxtb2RlX3N3dGNoDQogCWp6CXJt
b2Rlc3d0Y2hfbm9ybWFsDQogDQotCWNhbGwJKiVjczpyZWFsbW9kZV9zd3Rj
aA0KKwlsY2FsbAklY3M6cmVhbG1vZGVfc3d0Y2gNCiANCiAJam1wCXJtb2Rl
c3d0Y2hfZW5kDQogDQo=
--8323328-1635988237-939862399=:518--

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