Subject: PR/32865 CVS commit: src/sys/arch/i386
To: None <jmmv@NetBSD.org, gnats-admin@netbsd.org, netbsd-bugs@netbsd.org,>
From: Julio M. Merino Vidal <jmmv@netbsd.org>
List: netbsd-bugs
Date: 10/25/2006 14:00:10
The following reply was made to PR port-i386/32865; it has been noted by GNATS.
From: "Julio M. Merino Vidal" <jmmv@netbsd.org>
To: gnats-bugs@NetBSD.org
Cc:
Subject: PR/32865 CVS commit: src/sys/arch/i386
Date: Wed, 25 Oct 2006 13:56:16 +0000 (UTC)
Module Name: src
Committed By: jmmv
Date: Wed Oct 25 13:56:16 UTC 2006
Modified Files:
src/sys/arch/i386/conf: ALL GENERIC GENERIC_LAPTOP QEMU files.i386
src/sys/arch/i386/i386: locore.S machdep.c multiboot.c
src/sys/arch/i386/include: multiboot.h
Log Message:
Remove the usage of Multiboot's "a.out kludge" to tell the boot loader to
reserve some more space for the BSS section than the binary says. This
trick was used to leave room after the kernel's image to copy the symbol
table following the format required by ksyms_init. (It was also used to
workaround a bug in the physical address fields of the binary, but this has
been long fixed.) Yes, the MULTIBOOT_SYMTAB_SPACE option goes away; yay!
Instead, copy the required data after the kernel in a way that avoids having
to reserve space and use the new ksyms_init_explicit function to avoid the
need to construct a minimal ELF image.
Fixes ksyms when using an "unpatched" GRUB (one that does not contain the
fix to honour the "a.out kludge" for ELF images, even when present) -- i.e.
ddb and lkms. As a side effect, the new code is much clearer to read and
digest.
Closes PR port-i386/32865.
To generate a diff of this commit:
cvs rdiff -r1.68 -r1.69 src/sys/arch/i386/conf/ALL
cvs rdiff -r1.789 -r1.790 src/sys/arch/i386/conf/GENERIC
cvs rdiff -r1.209 -r1.210 src/sys/arch/i386/conf/GENERIC_LAPTOP
cvs rdiff -r1.2 -r1.3 src/sys/arch/i386/conf/QEMU
cvs rdiff -r1.294 -r1.295 src/sys/arch/i386/conf/files.i386
cvs rdiff -r1.43 -r1.44 src/sys/arch/i386/i386/locore.S
cvs rdiff -r1.584 -r1.585 src/sys/arch/i386/i386/machdep.c
cvs rdiff -r1.7 -r1.8 src/sys/arch/i386/i386/multiboot.c
cvs rdiff -r1.3 -r1.4 src/sys/arch/i386/include/multiboot.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.