From owner-freebsd-bugs Sun Jan 31 10:20:04 1999 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id KAA29782 for freebsd-bugs-outgoing; Sun, 31 Jan 1999 10:20:04 -0800 (PST) (envelope-from owner-freebsd-bugs@FreeBSD.ORG) Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id KAA29765 for ; Sun, 31 Jan 1999 10:20:02 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.2/8.9.2) id KAA59371; Sun, 31 Jan 1999 10:20:01 -0800 (PST) (envelope-from gnats@FreeBSD.org) Date: Sun, 31 Jan 1999 10:20:01 -0800 (PST) Message-Id: <199901311820.KAA59371@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.ORG From: Sakari Jalovaara Subject: Re: kern/9407: "make kernel" yields buggy kernel in ceratin cases (ld bug?) Reply-To: Sakari Jalovaara Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org The following reply was made to PR kern/9407; it has been noted by GNATS. From: Sakari Jalovaara To: freebsd-gnats-submit@freebsd.org, olwi@icyb.kiev.ua Cc: Subject: Re: kern/9407: "make kernel" yields buggy kernel in ceratin cases (ld bug?) Date: Sun, 31 Jan 1999 20:16:06 +0200 > [changing the name of a variable produces very different > kernels, one of which crashes] 'cmp -l kernel.IRQ kernel.irq' probably produces lots of output because some sort of symbol table hashing/sorting/whatever in 'ld'. Compile the following: #include int aa; int bb; int main (void) { printf ("%d\n", &aa < &bb); return 0; } cc tst.c mv a.out a.out-bb cc tst.c cmp -l a.out a.out-bb -- gives more than four bytes worth of output. Also, when you rename 'bb' to 'zz' in the above program, the output of the program changes (at least on 4.0-current/ELF it does -- for other versions of 'ld' some other name than 'zz' may do this.) A more likely explanation than an ld bug is that either the patch or the original sio.c has a bug whose behavior is changed when objects are re-ordered in memory. For a first guess, I'd try placing assert (xxx >= 0 && xxx < NSIOTOT); statements wherever SameIRQ[xxx] is accessed. ++sja To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message