Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Nov 2015 00:07:16 +0200
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Bryan Drewery <bdrewery@FreeBSD.org>
Cc:        Ed Maste <emaste@freebsd.org>, David Wolfskill <david@catwhisker.org>, "current@freebsd.org" <current@freebsd.org>
Subject:   Re: Panic: GPF in kernel mode in fork_exit() (prior to FS mouont)
Message-ID:  <20151123220716.GD58629@kib.kiev.ua>
In-Reply-To: <5653678F.3040800@FreeBSD.org>
References:  <20151123132320.GJ1119@albert.catwhisker.org> <20151123133317.GA58629@kib.kiev.ua> <CAPyFy2BFqN4asLVOTbViCOO6wXvuOXAJJA74PPhXPbLz5fJU_g@mail.gmail.com> <5653678F.3040800@FreeBSD.org>

index | next in thread | previous in thread | raw e-mail

On Mon, Nov 23, 2015 at 11:22:55AM -0800, Bryan Drewery wrote:
> On 11/23/2015 9:58 AM, Ed Maste wrote:
> > On 23 November 2015 at 08:33, Konstantin Belousov <kostikbel@gmail.com> wrote:
> >>
> >> The revision 291171 changed layout of the dereferenced structure
> >> sysentvec. Was your kernel build clean, or did you used -DNO_CLEAN or
> >> similar option ? If yes, remove the kernel build directory and start
> >> from scratch.
> > 
> > Every time removing the build directory and starting from scratch
> > fixes an issue like this it's demonstrated a bug in our build's
> > dependency tracking. Starting over is a fine workaround to make
> > progress, but I'd also like to try to extract sufficient detail when
> > this happens so that we can fix these cases.
> 
> My guess is that some files are missing proper dependencies on sysent.h.
Probably yes.

> 
> For example these 2 would not rebuild. I think any consumers of these
> headers which dereferenced the struct pointers would need to include
> sys/sysent.h, but that this still may lead to a broken situation somewhere.
> 
> sys/sys/imgact.h:struct sysentvec;
> sys/sys/ktrace.h:struct sysentvec;
> 
Why would headers need a rebuild, what does it mean for header anyway ?

Indeed, any code which dereferences the structure or otherwise depends
on its layout, have to include sys/sysent.h to get the full definition,
otherwise compiler cannot generate code.  In other words, the problem
cannot be in the source, it is somewhere in the build system.


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20151123220716.GD58629>