GNU bug report logs - #61867
dirstamp pattern rule kills buildability with FreeBSD make, NetBSD make, AIX make

Previous Next

Package: automake;

Reported by: Bruno Haible <bruno <at> clisp.org>

Date: Tue, 28 Feb 2023 12:48:02 UTC

Severity: normal

Done: Karl Berry <karl <at> freefriends.org>

Bug is archived. No further changes may be made.

Full log


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Bruno Haible <bruno <at> clisp.org>
To: bug-automake <at> gnu.org
Cc: Mike Frysinger <vapier <at> gentoo.org>, Jim Meyering <jim <at> meyering.net>
Subject: dirstamp pattern rule kills buildability with FreeBSD make,
 NetBSD make, AIX make
Date: Tue, 28 Feb 2023 13:47:06 +0100
[Message part 1 (text/plain, inline)]
Hi,

FreeBSD 13.1 'make', NetBSD 9.0 'make', AIX 7.1 and 7.2 'make' are perfectly
fine for building many GNU packages, even as VPATH builds.

Jim Meyering has now put out a tarball for testing, that uses bleeding-edge
Automake:
https://lists.gnu.org/archive/html/platform-testers/2023-02/msg00012.html

When I build this tarball on FreeBSD, NetBSD, or AIX — in srcdir or as a
VPATH build, does not matter —, the build fails, like this:

 ------------------------------------------------------
...
  CC       libgreputils_a-getopt1.o
  CC       libgreputils_a-getprogname.o
make: 1254-002 Cannot find a rule to create target malloc/.dirstamp from dependencies.
Stop.
make: 1254-004 The error code from the last command is 2.


Stop.
make: 1254-004 The error code from the last command is 1.


Stop.
make: 1254-004 The error code from the last command is 2.


Stop.
 ------------------------------------------------------

This is a regression, caused by the bleeding-edge Automake, because when I
unpack the tarball and then (with Automake 1.16.5 in $PATH) do
  aclocal -I m4
  automake
  touch configure
  touch config.hin
it does not exhibit this build failure any more.

Find attached the diff between lib/Makefile (that fails) and lib/Makefile
(that comes from Automake 1.16.5 and works fine). You can see that with
individual rules for malloc/$(am__dirstamp), glthread/$(am__dirstamp),
unistr/$(am__dirstamp), uniwidth/$(am__dirstamp) the build works fine,
whereas with the pattern rule
  %/$(am__dirstamp)
it fails.

I guess that the commit "dirstamp: switch to a pattern rule" is the culprit.
https://git.savannah.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=55f8fcfd08cbf15d65d61dd2db934b6c3171cf06

Bruno

[makefiles.diff (text/x-patch, attachment)]

This bug report was last modified 2 years and 86 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.