[M3devel] bootstrapping wrinkle, incrementality bug when toggling build_standalone

Jay K jay.krell at cornell.edu
Sat Oct 16 14:18:53 CEST 2010


I found a new bootstrapping wrinkle tonight.
Based on that we typically have pairs of libraries:
NT: foo.lib, foo.lib.sa
Posix: libfoo.a, libfoo.a.sa?
 
 
If there is incompatibility introduced in m3core,
such as I introduced just now for set_member/set_singleton,
it *seems* you can get into a situation where only
one of the two libraries is updated.
 
 
Perhaps because I was hacking shared = false, perhaps
to workaround other problems.
 
 
Anyway, the general technique might be useful.
 ==> move foo.lib.sa to foo.lib
 
 
More generally there IS an obvious problem in the system.
IF I have a library that was previously not standalone,
therefore having both foo.lib and foo.lib.sa,
 
 
and then I change it to always be standalone,
therefore only having foo.lib,
 
 
and then I link a standalone application to it,
the out of date foo.lib.sa will be found and used.
 
 
Solutions include:
 - when shipping, delete related neighboring files.
   i.e. when shipping a non-standalone library, delete the shipped foo.lib.sa.
 - or, always make foo.lib and foo.lib.sa, just that
   they might be identical.
 - or, lame...probe contents not name? if foo.lib appears to be
   standalone, don't probe for foo.lib.sa? Not difficult on NT...
 
 
(This goes to show something I can never very well explain why:
file existance checks, probes, generally indicate problems.)
 
 
 - Jay
  		 	   		  


More information about the M3devel mailing list