[DGD] DGD 1.2p4 and precompiled objects
bart at wotf.org
bart at wotf.org
Thu Nov 22 21:39:07 CET 2007
After lots of digging, I found a badly created clone that was still around,
and that due to a (now fixed) bug in my clone tracking had never been
registered, and whoms master had since been destroyed and removed.
Without this broken clone, upgrading precompiled code works fine, and exactly
as described by Felix.
Was an interesting bit of digging into the dumpfile, and again a lesson that
Felix is pretty much always right :P
As for things seemingly working after forcefully removing precompiled objects
(hack hack hack), it did except for that one object.. It was not referenced
anywhere, so nothing was calling it, but actually trying to call it resulted
in a to be expected crash of the driver.
Bart.
On Mon, 12 Nov 2007 16:11:45 +0100, Felix A. Croes wrote
> bart at wotf.org wrote:
>
> > Is there a proper way to upgrade precompiled objects?
> >
> > What works is replacing a precompiled object with an interpred one, and after
> > a state restore the interpreted object is used instead of the precompiled one.
> >
> > However, when I try to use a driver with a new version of the precompiled
> > object, the driver complains that the restored object != precompiled object.
> >
> > Digging a bit into comp/csupport.c turns up that if the number of functions
> > (or a few other things, but number of functions turns out to be the problem in
> > my case) changes in a precompiled object compared to the previous precompiled
> > version (that is still in the statedump despite there being a newer
> > interpreted one) the new version is refused with this message
>
> If the old precompiled object is still in the statedump, it's still
> being used somewhere. Presumably, it is inherited by something else.
> You can get rid of it by recompiling those other objects as well, to
> make them inherit the new, interpreted version.
>
> The proper way to upgrade precompiled objects is:
>
> 1) recompile them to interpreted objects, which may be changed
> 2) recompile all the objects that inherit the old precompiled
> objects, as well 3) reboot with a driver in which the interpreted
> objects are replaced by precompiled objects, which must match the
> interpreted ones
>
> Regards,
> Dworkin
> ___________________________________________
> https://mail.dworkin.nl/mailman/listinfo/dgd
--
Created with Open WebMail at http://www.bartsplace.net/
Read my weblog at http://soapbox.bartsplace.net/
More information about the DGD
mailing list