autoconf-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: On time64 and Large File Support


From: Nick Bowler
Subject: Re: On time64 and Large File Support
Date: Tue, 15 Nov 2022 14:02:55 -0500

On 2022-11-15, Zack Weinberg <zack@owlfolio.org> wrote:
> On Tue, Nov 15, 2022, at 12:49 PM, Nick Bowler wrote:
>> On 2022-11-13, Zack Weinberg <zack@owlfolio.org> wrote:
>>> I have not pushed this, and have only tested it lightly on a current
>>> Linux.
>>> It needs testing on weird old systems, particularly old AIX, HP-UX,
>>> MinGW.
>>
>> I'd be happy to give it a go on my weird old systems ...
>
> I forgot to mention at the time:  Testing on systems *where time_t is only
> 32 bits wide by default* is especially useful.
>
>>     /bin/sh ./config.status --recheck
>>     running CONFIG_SHELL=/bin/sh /bin/sh ./configure --no-create
>> --no-recursion
>>     ./configure: 6: cannot create .: Is a directory
>>     ./configure: 6: cannot create .: Is a directory
>>     [...]
>>     checking for Perl >=5.10.0 with Time::HiRes::stat... configure:
>> error: no acceptable perl could be found in $PATH.
>>     Perl 5.10.0 or later is required, with Time::HiRes::stat.
>>     make: *** [Makefile:969: config.status] Error 1
>
> The procedure you used should have worked, assuming $PATH did not change
> from step to step.  One possible explanation is that there's a bug with
> building in the source directory -- at step 2, try instead
>
> mkdir _build
> cd _build
> ../configure
>
> Another possible explanation is that the bootstrap operation didn't set file
> timestamps accurately (perhaps because the filesystem you're on doesn't
> support high-resolution time stamps) and so it's trying to regenerate
> 'configure' with an _older_ autoconf which trips over some state left by the
> bootstrap process.  Another thing to try is
>
> ./bootstrap
> sleep 2 && touch aclocal.m4 && sleep 2 && touch Makefile.in && sleep 2 &&
> touch configure
> ./configure
> sleep 2 && touch config.status && sleep 2 && touch tests/aclocal Makefile
> lib/version.m4
> make
>
> Please let us know if either of those things helps.

It does appear to be regenerating configure with an old autoconf version (2.69).

But neither suggestion makes any difference.  Timestamps seem OK; it
appears that make is deciding to aclocal.m4 (and then configure) because
of prerequisites that do not exist outright:

  % make -d
  [...]
       Considering target file 'aclocal.m4'.
  [...]
      Prerequisite 'autoconf/autoupdate.m4' of target 'aclocal.m4'
does not exist.
      Prerequisite 'autoconf/autoscan.m4' of target 'aclocal.m4' does not exist.
      Prerequisite 'autoconf/general.m4' of target 'aclocal.m4' does not exist.
      Prerequisite 'autoconf/status.m4' of target 'aclocal.m4' does not exist.
      Prerequisite 'autoconf/autoheader.m4' of target 'aclocal.m4'
does not exist.
      Prerequisite 'autoconf/autotest.m4' of target 'aclocal.m4' does not exist.
      Prerequisite 'autoconf/programs.m4' of target 'aclocal.m4' does not exist.
      Prerequisite 'autoconf/lang.m4' of target 'aclocal.m4' does not exist.
      Prerequisite 'autoconf/c.m4' of target 'aclocal.m4' does not exist.
      Prerequisite 'autoconf/erlang.m4' of target 'aclocal.m4' does not exist.
      Prerequisite 'autoconf/fortran.m4' of target 'aclocal.m4' does not exist.
      Prerequisite 'autoconf/go.m4' of target 'aclocal.m4' does not exist.
      Prerequisite 'autoconf/functions.m4' of target 'aclocal.m4' does
not exist.
      Prerequisite 'autoconf/headers.m4' of target 'aclocal.m4' does not exist.
      Prerequisite 'autoconf/types.m4' of target 'aclocal.m4' does not exist.
      Prerequisite 'autoconf/libs.m4' of target 'aclocal.m4' does not exist.
      Prerequisite 'autoconf/specific.m4' of target 'aclocal.m4' does not exist.
      Prerequisite 'autoconf/oldnames.m4' of target 'aclocal.m4' does not exist.
      Prerequisite 'm4/autobuild.m4' is older than target 'aclocal.m4'.
      Prerequisite 'm4/m4.m4' is older than target 'aclocal.m4'.
      Prerequisite 'm4/make-case.m4' is older than target 'aclocal.m4'.
      Prerequisite 'm4/perl-time-hires.m4' is older than target 'aclocal.m4'.
      Prerequisite 'configure.ac' is older than target 'aclocal.m4'.
     Must remake target 'aclocal.m4'.

(as there is a dummy rule for all of these files their non-existence triggers
a rebuild instead of a fatal error).

OK, the files seem to be in lib/autoconf in the repository, so I used the
following procedure which seems to to work:

   % mkdir autoconf
   % cp lib/autoconf/*.m4 autoconf/
   % ./bootstrap
   % ./configure
   % make

Cheers,
  Nick



reply via email to

[Prev in Thread] Current Thread [Next in Thread]