Subject: Re: kernel won't start on i386
To: None <kanaoka@ann.hi-ho.ne.jp>
From: Jim Bernard <jbernard@mines.edu>
List: current-users
Date: 05/11/2001 14:25:18
This didn't help in my case (not that I expected it to, since I wasn't
seeing the output from the printf).

I did manage to get a kernel going, however, by building it on another system.
Now, both systems are (or were) running kernels and userlands built on March
15 from sources updated that day (at similar, but not identical times), and
both had their sources updated this morning (at similar, but not identical
times).  The pentium pro system is the target for the moment, and it builds
kernels that it can't boot.  The pentium system builds kernels that the
pentium pro system _can_ boot.

At this point, the only candidate for an explanation that I've managed to
identify is that the toolchain (and all of userland) on the ppro was built
with -march=pentiumpro, whereas userland on the pentium was built with
-march=pentium.  Even if I _don't_ use -march=pentiumpro on the ppro while
building the kernel, the resulting kernel doesn't work.

Is there any obvious reason why a toolchain built with that option should
build kernels that are different (in particular, broken)?

On Sat, May 12, 2001 at 03:45:59AM +0900, Masanori Kanaoka wrote:
> 
> Would you please try below 1 or 2?
>       1. next patch
>       2. revert sys/arch/i386/i386/machdep.c rev = 1.431
> 
> ---
>  Masanori Kanaoka	kanaoka@ann.hi-ho.ne.jp
> 
> Index: sys/arch/i386/i386/machdep.c
> ===================================================================
> RCS file: /ftp/cvs/syssrc/sys/arch/i386/i386/machdep.c,v
> retrieving revision 1.441
> diff -u -r1.441 machdep.c
> --- sys/arch/i386/i386/machdep.c        2001/05/04 03:19:33     1.441
> +++ sys/arch/i386/i386/machdep.c        2001/05/11 11:53:22
> @@ -2312,6 +2312,7 @@
>                          * XXX report this area and occurred problems,
>                          * XXX so we avoid this area.
>                          */
> +#if 0
>                         if (seg_start < 0x100000 && seg_end > 0xa0000) {
>                                 printf("WARNING: memory map entry overlaps "
>                                     "with ``Compatibility Holes'': "
> @@ -2322,6 +2323,7 @@
>                                 add_mem_cluster(0x100000, seg_end,
>                                     bim->entry[x].type);
>                         } else
> +#endif
>                                 add_mem_cluster(seg_start, seg_end,
>                                     bim->entry[x].type);
>                 }