Am 21.12.2017 um 18:25 hat Jack Schwartz geschrieben:
Properly account for the possibility of multiboot kernels with a zero
bss_end_addr. The Multiboot Specification, section 3.1.3 allows for
kernels without a bss section, by allowing a zeroed bss_end_addr multiboot
header field.
Do some cleanup to multiboot.c as well:
- Remove some unused variables.
- Use more intuitive header names when displaying fields in messages.
- Change fprintf(stderr...) to error_report
There are some conflicts with Anatol's (CCed) multiboot series:
https://lists.nongnu.org/archive/html/qemu-devel/2017-10/msg03003.html
None if these should be hard to resolve, but it would be good if you
could agree with each other whose patch series should come first, and
then the other one should be rebased on top of that.
Testing:
1) Ran the "make check" test suite.
2) Booted multiboot kernel with bss_end_addr=0. (I rolled my own
grub multiboot.elf test "kernel" by modifying source.) Verified
with gdb that new code that reads addresses/offsets from multiboot
header was accessed.
3) Booted multiboot kernel with non-zero bss_end_addr.
4) Uncommented DEBUG_MULTIBOOT in multiboot.c and verified messages worked.
5) Code has soaked in an internal repo for two months.
Can you integrate your test kernel from 2) in tests/multiboot/ so we can
keep this as a regression test?