* Eric Blake wrote on Mon, Jan 24, 2011 at 10:10:53PM CET: > On 01/24/2011 02:00 PM, Ralf Wildenhues wrote: > >> That is, is it only an autoconf bug, > >> where if you fix the autoconf bug, then all other victims will be fixed? > > > > No. If you are building from a read-only tree, or, more generally, any > > source tree that has been generated elsewhere and that is not supposed > > to see updates, and the tree has rules that update shipped files, then > > there are potentially problems with HP-UX make. > > All the more reason to document the issue in INSTALL. If I'm > understanding you correctly, disabling autom4te.cache only disables > autoconf's contribution to the rebuild rules (others may remain, for > things like gperf- or yacc-generated files), but we might as well start > somewhere by documenting what we can.
You are of course completely right, thanks for persisting. Let's drop the proposed BUGS change, add an install.texi one instead. Together with my other hackishly written autoconf.texi patch I arrive at this now. Thanks, and sorry for the high noise ratio (I should also be cutting down on cross posts again), Ralf 2011-01-25 Ralf Wildenhues <[email protected]> Eric Blake <[email protected]> docs: advise against HP-UX make due to time stamp semantics. * doc/autoconf.texi (Timestamps and Make): Document HP-UX 11.31 make issue with targets having the same time stamps as their prerequisites. * doc/install.texi (Particular Systems): Warn against using HP-UX make. diff --git a/doc/autoconf.texi b/doc/autoconf.texi index ae601a0..61eb6f0 100644 --- a/doc/autoconf.texi +++ b/doc/autoconf.texi @@ -20287,6 +20287,14 @@ Timestamps and Make date >dest-stamp @end example +Apart from timestamp resolution, there are also differences in handling +equal timestamps. HP-UX @command{make} updates targets if it has the +same time stamp as one of its prerequisites, in violation of Posix rules. + +This can cause spurious rebuilds for repeated runs of @command{make}. +This in turn can cause @command{make} to fail if it tries to rebuild +generated files in a possibly read-only source tree with tools not +present on the end-user machine. Use GNU @command{make} instead. diff --git a/doc/install.texi b/doc/install.texi index c43298b..d397b8a 100644 --- a/doc/install.texi +++ b/doc/install.texi @@ -261,6 +261,11 @@ Particular Systems @noindent and if that doesn't work, install pre-built binaries of GCC for HP-UX. +HP-UX @command{make} updates targets which have the same time stamps as +their prerequisites, which makes it generally unusable when shipped +generated files such as @command{configure} are involved. Use GNU +@command{make} instead. + On OSF/1 a.k.a.@: Tru64, some versions of the default C compiler cannot parse its @code{<wchar.h>} header file. The option @option{-nodtk} can be used as a workaround. If GNU CC is not installed, it is therefore
