GNU bug report logs - #13940
Spurious target redefinition warnings with Automake conditionals

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: automake; Reported by: Nick Bowler <nbowler@HIDDEN>; Keywords: help confirmed; dated Wed, 13 Mar 2013 01:42:02 UTC; Maintainer for automake is bug-automake@HIDDEN.
Added tag(s) confirmed. Request was from Karl Berry <karl@HIDDEN> to control <at> debbugs.gnu.org. Full text available.
Added tag(s) help. Request was from Karl Berry <karl@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at 13940 <at> debbugs.gnu.org:


Received: (at 13940) by debbugs.gnu.org; 8 Jun 2013 15:50:38 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jun 08 11:50:38 2013
Received: from localhost ([127.0.0.1]:58539 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1UlLPZ-0004DO-W7
	for submit <at> debbugs.gnu.org; Sat, 08 Jun 2013 11:50:38 -0400
Received: from mail-we0-f181.google.com ([74.125.82.181]:45336)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <stefano.lattarini@HIDDEN>) id 1UlLPX-0004Cz-HE
	for 13940 <at> debbugs.gnu.org; Sat, 08 Jun 2013 11:50:37 -0400
Received: by mail-we0-f181.google.com with SMTP id p58so3879294wes.12
	for <13940 <at> debbugs.gnu.org>; Sat, 08 Jun 2013 08:50:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=message-id:date:from:mime-version:to:cc:subject:references
	:in-reply-to:content-type:content-transfer-encoding;
	bh=nNiZrc0NhyQCUehpTRqYNXmfVug7q3V82hy980KA/ac=;
	b=wlY8JSatQgmcGiqGTxChxJmxTtyFZB06ASHP1ieCx/E7Caaj4QNu1pj+QOWKtYwdk2
	DM/D66OJhPyaEUyssfAaKLGqqeEqCYGmYV7/NquB60x1H0hjuclZsqjOyu/bo8goHX5C
	y4JEjJQmUnMmHuQleGkyhzdi2FtA/1CouWPHh24uyTPxr03hs+mVCrBjCT6iwSacx0Uj
	1lmhaClIWSDazEy/oseDAfi3pYF/DOHTZH+/QepRA+CVHlBKGnQpEObC8sn4806aHycY
	yrgDCByJmnHW1m1ozmTSbH3TpZn9OI27ZI6wSj0FkZVZ+OXH9xe5/jefFUTjuvnYSGrz
	+1Yg==
X-Received: by 10.194.104.199 with SMTP id gg7mr1810057wjb.56.1370706623239;
	Sat, 08 Jun 2013 08:50:23 -0700 (PDT)
Received: from [192.168.178.20]
	(host93-95-dynamic.6-79-r.retail.telecomitalia.it. [79.6.95.93])
	by mx.google.com with ESMTPSA id fu14sm2653517wic.0.2013.06.08.08.50.21
	for <multiple recipients>
	(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Sat, 08 Jun 2013 08:50:22 -0700 (PDT)
Message-ID: <51B352BC.3090508@HIDDEN>
Date: Sat, 08 Jun 2013 17:50:20 +0200
From: Stefano Lattarini <stefano.lattarini@HIDDEN>
MIME-Version: 1.0
To: Nick Bowler <nbowler@HIDDEN>
Subject: Re: bug#13940: Spurious target redefinition warnings with Automake
	conditionals
References: <CAN_QmVzq-ZQf_zufV5DT4--0mwyeYUZGjVyk4v-0+NSJfgQ97Q@HIDDEN>
In-Reply-To: <CAN_QmVzq-ZQf_zufV5DT4--0mwyeYUZGjVyk4v-0+NSJfgQ97Q@HIDDEN>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Spam-Score: -1.2 (-)
X-Debbugs-Envelope-To: 13940
Cc: 13940 <at> debbugs.gnu.org,
	"automake-patches@HIDDEN" <automake-patches@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
X-Spam-Score: -2.6 (--)

[+cc automake-patches]

On 03/13/2013 02:40 AM, Nick Bowler wrote:
> Consider the following:
> 
>   % cat >configure.ac <<'EOF'
> AC_INIT([test], [0])
> 
> AM_INIT_AUTOMAKE([foreign])
> 
> AM_CONDITIONAL([FOO], [true])
> 
> AC_CONFIG_FILES([Makefile])
> AC_OUTPUT
> EOF
> 
>   % cat >Makefile.am <<'EOF'
> if FOO
> all-local: bar
> bar: ; @echo bar
> endif
> 
> all-local: baz
> baz: ; @echo baz
> EOF
> 
> On this input, Automake is producing the following warning:
> 
>   Makefile.am:6: warning: all-local was already defined in condition
> FOO, which is included in condition TRUE ...
>   Makefile.am:2: ... 'all-local' previously defined here
> 
> This warning makes no sense, because there is no problem with this
> Makefile.am as far as I can see.  However, the warnings seem to be just
> noise as the generated Makefile.in appears correct and works fine.
> 
> The conditional there is important: Automake only appears to warn when
> one of the all-local rules is inside a conditional and the other is not.
> 
>
I've exposed the bug with the patch inlined below.  Not sure when I'll
be able to attempt a proper fix.  If anyone wants to give it a try in
the meantime, be my guest!

Thanks,
  Stefano

---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ---- 8< ----

From b2b3692d37e9812a5895b5a054da597731d7eb08 Mon Sep 17 00:00:00 2001
Message-Id: <b2b3692d37e9812a5895b5a054da597731d7eb08.1370706503.git.stefano.lattarini@HIDDEN>
From: Stefano Lattarini <stefano.lattarini@HIDDEN>
Date: Sat, 8 Jun 2013 17:47:30 +0200
Subject: [PATCH] tests: expose automake bug#13940

* t/override-conditional-pr13940.sh: New test, still xfailing.
* t/list-of-tests.mk (XFAIL_TESTS, handwritten_TESTS): Add it.

Signed-off-by: Stefano Lattarini <stefano.lattarini@HIDDEN>
---
 t/list-of-tests.mk                |  2 ++
 t/override-conditional-pr13940.sh | 44 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 46 insertions(+)
 create mode 100644 t/override-conditional-pr13940.sh

diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk
index fb2e444..68ca58c 100644
--- a/t/list-of-tests.mk
+++ b/t/list-of-tests.mk
@@ -33,6 +33,7 @@ t/all.sh \
 t/cond17.sh \
 t/gcj6.sh \
 t/override-conditional-2.sh \
+t/override-conditional-pr13940.sh \
 t/dist-pr109765.sh \
 t/instdir-cond2.sh \
 t/java-nobase.sh \
@@ -740,6 +741,7 @@ t/output13.sh \
 t/output-order.sh \
 t/override-conditional-1.sh \
 t/override-conditional-2.sh \
+t/override-conditional-pr13940.sh \
 t/override-html.sh \
 t/override-suggest-local.sh \
 t/parallel-am.sh \
diff --git a/t/override-conditional-pr13940.sh b/t/override-conditional-pr13940.sh
new file mode 100644
index 0000000..4bc4128
--- /dev/null
+++ b/t/override-conditional-pr13940.sh
@@ -0,0 +1,44 @@
+#! /bin/sh
+# Copyright (C) 2013 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Expose automake bug#1394: automake erroneously think that a .PHONY
+# target's rule is overridden only because we declare dependencies
+# to such targets twice: one in an Automake conditional, and once
+# unconditionally.
+
+. test-init.sh
+
+cat >> configure.ac << 'END'
+AM_CONDITIONAL([FOO], [true])
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+# The conditional here is important: Automake only appears to warn
+# when one of the all-local rules is inside a conditional and the
+# other is not.
+if FOO
+all-local: bar
+bar: ; @echo bar
+endif
+all-local: baz
+baz: ; @echo baz
+END
+
+$ACLOCAL
+$AUTOMAKE -a
+
+:
-- 
1.8.3.rc3.8.g5e49f30





Information forwarded to bug-automake@HIDDEN:
bug#13940; Package automake. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 13 Mar 2013 01:41:54 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 12 21:41:54 2013
Received: from localhost ([127.0.0.1]:49757 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1UFahW-0005bi-70
	for submit <at> debbugs.gnu.org; Tue, 12 Mar 2013 21:41:54 -0400
Received: from eggs.gnu.org ([208.118.235.92]:35322)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <draconx@HIDDEN>) id 1UFahT-0005bX-Uo
	for submit <at> debbugs.gnu.org; Tue, 12 Mar 2013 21:41:52 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <draconx@HIDDEN>) id 1UFagJ-0002KY-Ls
	for submit <at> debbugs.gnu.org; Tue, 12 Mar 2013 21:40:43 -0400
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=-101.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
	T_DKIM_INVALID,USER_IN_WHITELIST autolearn=unavailable version=3.3.2
Received: from lists.gnu.org ([208.118.235.17]:39626)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <draconx@HIDDEN>) id 1UFagJ-0002KT-Gr
	for submit <at> debbugs.gnu.org; Tue, 12 Mar 2013 21:40:39 -0400
Received: from eggs.gnu.org ([208.118.235.92]:46641)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <draconx@HIDDEN>) id 1UFagE-0000sv-J4
	for bug-automake@HIDDEN; Tue, 12 Mar 2013 21:40:39 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <draconx@HIDDEN>) id 1UFagA-0002J8-Iq
	for bug-automake@HIDDEN; Tue, 12 Mar 2013 21:40:34 -0400
Received: from mail-la0-x233.google.com ([2a00:1450:4010:c03::233]:54088)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <draconx@HIDDEN>) id 1UFagA-0002Iz-BR
	for bug-automake@HIDDEN; Tue, 12 Mar 2013 21:40:30 -0400
Received: by mail-la0-f51.google.com with SMTP id fo13so546109lab.38
	for <bug-automake@HIDDEN>; Tue, 12 Mar 2013 18:40:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:x-received:sender:date:x-google-sender-auth:message-id
	:subject:from:to:content-type;
	bh=1Lkln2ZmFgsRY54vL7PAUpgGcRXBCE/EuxxB6qJia68=;
	b=FPGmZzvmf9yygALuIjhOWfxAqqLiZuti3C9vDwL4fpfb3Fv0EXbV6MIptXbU6n+hAu
	a2PffrbLQtRVKMDEYWG4E5/usFbR/a1kJlOlxE6wJrRNEM4Vp7Tvv2GUpU3s50WuedIO
	soxtlrt5NJcmn1EWgkllSyzQjmmt946Y8IDX2M3E0A6gr89zCgt9pGWGdGhR1g6DyTkO
	/kBkrhwnH5T1btmfvspe4I8pqs13z1AHUZQ1oUNsFV0u+EEgSnE9RuU6zUsoashnpDfa
	/EUsSrjxEHGr2SoIleDaVbUgHyy7wf5rhRDXakaw0TpRfqQGiJdqIXCcxjMfzfb9w2ZG
	hgWw==
MIME-Version: 1.0
X-Received: by 10.112.145.197 with SMTP id sw5mr109107lbb.91.1363138828274;
	Tue, 12 Mar 2013 18:40:28 -0700 (PDT)
Received: by 10.152.22.231 with HTTP; Tue, 12 Mar 2013 18:40:28 -0700 (PDT)
Date: Tue, 12 Mar 2013 21:40:28 -0400
X-Google-Sender-Auth: NrV4-cvkv0ZOcJgKso2FIvUzZgw
Message-ID: <CAN_QmVzq-ZQf_zufV5DT4--0mwyeYUZGjVyk4v-0+NSJfgQ97Q@HIDDEN>
Subject: Spurious target redefinition warnings with Automake conditionals
From: Nick Bowler <nbowler@HIDDEN>
To: bug-automake@HIDDEN
Content-Type: text/plain; charset=UTF-8
X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address
	(bad octet value).
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x
X-Received-From: 208.118.235.17
X-Spam-Score: -3.4 (---)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
X-Spam-Score: -6.1 (------)

Consider the following:

  % cat >configure.ac <<'EOF'
AC_INIT([test], [0])

AM_INIT_AUTOMAKE([foreign])

AM_CONDITIONAL([FOO], [true])

AC_CONFIG_FILES([Makefile])
AC_OUTPUT
EOF

  % cat >Makefile.am <<'EOF'
if FOO
all-local: bar
bar: ; @echo bar
endif

all-local: baz
baz: ; @echo baz
EOF

On this input, Automake is producing the following warning:

  Makefile.am:6: warning: all-local was already defined in condition
FOO, which is included in condition TRUE ...
  Makefile.am:2: ... 'all-local' previously defined here

This warning makes no sense, because there is no problem with this
Makefile.am as far as I can see.  However, the warnings seem to be just
noise as the generated Makefile.in appears correct and works fine.

The conditional there is important: Automake only appears to warn when
one of the all-local rules is inside a conditional and the other is not.




Acknowledgement sent to Nick Bowler <nbowler@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-automake@HIDDEN. Full text available.
Report forwarded to bug-automake@HIDDEN:
bug#13940; Package automake. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Fri, 20 Nov 2020 02:15:01 UTC

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