L. David Baron wrote:
> On Wednesday 2012-01-25 16:36 -0800, Brian Smith wrote:
> > Since configure is incredibly slow on Windows, and kind of
> > bugging, why not just stop configuring so much for Windows builds?
> > On Windows, we know you're building with a MSVC and I think it is
>
> I'd rather see us use autoconf *more* on Windows.
>
> Right now, we use autoconf a good bit for compiler feature tests.
> Many of those tests are actually skipped on Windows; we have to
> hard-code the results (or else Windows ends up using the slow path,
> or not-as-good path, or whatever).
I think it would be better to run configure once every 5 years* when we update the standard compiler version on Windows, and check the result into mozilla-central, than run it once every build, considering how slow configure is on Windows. We'd get better build performance and more consistent builds across developers' machines.
> For example, nsCOMPtr logging, used for leak debugging, isn't
> supported on Windows because MSVC doesn't support
> dynamic_cast<void*>(). Or maybe newer versions do support it -- I
> don't know. If we ran our autoconf feature tests on Windows, maybe
> this useful leak debugging tool would magically get enabled on
> Windows.
Build configuration should not be magic, but reproducible.
> (I probably get asked about why it doesn't work on Windows
> a few times a year, and I don't remember when the last time I talked
> somebody in to manually testing a current MSVC version was.)
Please send me a link or bug # to a more detailed description of the problem and how to test it, and I will test it on MSVC2010.
> I don't see why this follows. If you have to clobber your objdir,
> it's a build system bug. Just build with
client.mk and it will
> rerun configure only when needed, which in turn will invalidate
> mozilla-config.h only when needed.
I have had bad luck with this in the past, to the point where I pretty much automatically "rm -Rf ff-dbg" after "hg pull -u" nowadays. I will try to be less pessimistic about it and file a bug about what doesn't work, if anything.
- Brian
* This is just a joke about leaping from MSVC 2005 to MSVC 2010. Hopefully, we will upgrade compilers more frequently going forward.