PATCH: import move-if-change from gnulib (was: PATCH: PR binutils/12283: bfd/doc doesn't support parallel build)

Steve Ellcey sje@cup.hp.com
Fri Jan 28 21:12:00 GMT 2011


On Fri, 2011-01-28 at 21:14 +0100, Ralf Wildenhues wrote:

> 
> I have meanwhile added an improved and fixed version of my proposed
> patch to the (more complete) gnulib copy of move-if-change.  See here:
> http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/24860/focus=24865
> 
> I hereby propose to just import the gnulib copy into GCC and src,
> http://git.savannah.gnu.org/cgit/gnulib.git/tree/build-aux/move-if-change
> and document the change in status as below in patches to src/MAINTAINERS
> and GCC www.  (The Autoconf copy of move-if-change has been updated from
> the gnulib one anyway.)
> 
> Any reasons against doing so?
> 
> Thanks,
> Ralf

I have no objection to this change and I think it will fix things on
most platforms but I have found one platform where I still have a
problem.  On hppa*-*-hpux*, compiling the same program twice in a row
does not result in the exact same executable.  So even with this change
the cmp will fail and the build will still abort like it does now.
During a GCC bootstrap build we work around these issues by using:

cmp --ignore-initial=16

to compare stage2 and stage3 bits.  And we also have to do the GCC
compilation with -frandom-seed=fixed-seed to avoid other differences in
object files.

But for some reason doing both of these still didn't get this to work
for me on the hppa platform.  I was still getting failures in the cmp
check, even with the --ignore-initial flag and the use of -frandom-seed
when compiling chew.

I wonder if it would be reasonable to add a configure flag to bfd that
would enforce the chew dependency (--enable-parallel-doc or something
like that).  It would be off by default but if specified then we would
enforce the chew dependency and parallel builds would just work
normally.



More information about the Binutils mailing list