Re: PANIC: FAIL in line 187
"Max Dilay" <[email protected]>
| Newsgroups | gmane.comp.micro-kernel.l4.l4ka.general |
|---|---|
| Message-ID | <[email protected]> |
objdump -s -j .kip amd64-kernel | grep 0a0 ffffffffc02130a0 00000000 00000000 00000000 00000000 ................ 2006/9/1, Uwe Dannowski <[email protected]>: > > Max Dilay wrote: > > But when Pistachio loading they write PANIC: Fail in line 187. > > Short answer: Try GCC < 4.1 if you can. Version 4.0.x should work. > I don't have a quick fix for this. > > Long answer: > > There seems to be a problem with how GCC 4.1 handles the initialization > of the KIP. I encountered it on IA-32 but didn't have time to take care > of it, yet. Prior versions of GCC managed to statically initialize the > memoryinfo field in the KIP which serves as a pointer to the memory > descriptors. GCC 4.1, however, generates code to initialize it. Thus the > field contains zeros in the freshly loaded kernel binary that is > inspected and patched by kickstart. The constructor to initialize the > meminfo field would only be called once the kernel has been launched if > it ever got that far. Around 3 or 4 corners, this then manifests in > kickstart in said "FAIL in line 187". > > I'm not sure if that transfers to AMD64, though. I guess it does. You > can check by inspecting the values at offset 0xA8 ... 0xAF in the KIP > in your amd64-kernel binary: > > objdump -s -j .kip amd64-kernel | grep 0a0 > > should yield something like: > > ffffffffc023e0a0 00000000 00000000 d0000000 00030000 > > where the last two words shouldn't be all zeros. > > > Uwe > > >