From unknown Sat Sep 20 12:00:43 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#10434 <10434@debbugs.gnu.org> To: bug#10434 <10434@debbugs.gnu.org> Subject: Status: FAIL: depmod.tap 50 - tru64 [long VPATH] make & remake Reply-To: bug#10434 <10434@debbugs.gnu.org> Date: Sat, 20 Sep 2025 19:00:43 +0000 retitle 10434 FAIL: depmod.tap 50 - tru64 [long VPATH] make & remake reassign 10434 automake submitter 10434 Jim Meyering severity 10434 normal tag 10434 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 04 15:01:27 2012 Received: (at submit) by debbugs.gnu.org; 4 Jan 2012 20:01:27 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RiX1b-0005b4-JY for submit@debbugs.gnu.org; Wed, 04 Jan 2012 15:01:27 -0500 Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RiX1Y-0005av-PG for submit@debbugs.gnu.org; Wed, 04 Jan 2012 15:01:25 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RiWyD-0007v6-RF for submit@debbugs.gnu.org; Wed, 04 Jan 2012 14:57:58 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-3.8 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=unavailable version=3.3.2 Received: from lists.gnu.org ([140.186.70.17]:43034) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RiWyD-0007v2-NC for submit@debbugs.gnu.org; Wed, 04 Jan 2012 14:57:57 -0500 Received: from eggs.gnu.org ([140.186.70.92]:35602) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RiWyC-0008QT-KP for bug-automake@gnu.org; Wed, 04 Jan 2012 14:57:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RiWyB-0007uj-BW for bug-automake@gnu.org; Wed, 04 Jan 2012 14:57:56 -0500 Received: from mx.meyering.net ([88.168.87.75]:53329) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RiWyA-0007ub-Jx for bug-automake@gnu.org; Wed, 04 Jan 2012 14:57:55 -0500 Received: from rho.meyering.net (localhost.localdomain [127.0.0.1]) by rho.meyering.net (Acme Bit-Twister) with ESMTP id 8F25760397 for ; Wed, 4 Jan 2012 20:57:53 +0100 (CET) From: Jim Meyering To: bug-automake@gnu.org Subject: FAIL: depmod.tap 50 - tru64 [long VPATH] make & remake Date: Wed, 04 Jan 2012 20:57:53 +0100 Message-ID: <87obujckam.fsf@rho.meyering.net> Lines: 54 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.17 X-Spam-Score: -4.7 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -4.7 (----) --=-=-= Content-Type: text/plain (latest from git/master) I just ran the test suite using the latest and now we're down to 5 failures! # TOTAL: 2478 # PASS: 2382 # SKIP: 61 # XFAIL: 30 # FAIL: 5 # XPASS: 0 # ERROR: 0 $ grep '^FAIL:' tests/test-suite.log FAIL: depmod FAIL: depmod.tap 50 - tru64 [long VPATH] make & remake FAIL: depmod.tap 84 - tru64 [absolute VPATH] make & remake FAIL: tap-bad-prog-w FAIL: tap-bad-prog-w.tap 2 - non-existent test is reported FAIL: tap-bad-prog-w.tap 3 - non-executable test is reported FAIL: tap-bad-prog-w.tap 4 - non-readable test is reported Started looking, and this one may be easy to fix: make[1]: Leaving directory `/h/j/w/co/automake/tests/depmod.dir/tru64-long.d/src' make[1]: Entering directory `/h/j/w/co/automake/tests/depmod.dir/tru64-long.d' make[1]: Nothing to be done for `all-am'. make[1]: Leaving directory `/h/j/w/co/automake/tests/depmod.dir/tru64-long.d' + make clean Making clean in src make[1]: Entering directory `/h/j/w/co/automake/tests/depmod.dir/tru64-long.d/src' .deps/foo.Po:3: *** missing separator. Stop. make[1]: Leaving directory `/h/j/w/co/automake/tests/depmod.dir/tru64-long.d/src' make: *** [clean-recursive] Error 1 + result_ 'not ok' 'tru64 [long VPATH] make & remake' + set +x not ok 50 - tru64 [long VPATH] make & remake FAIL: depmod.tap 50 - tru64 [long VPATH] make & remake + cd /h/j/w/co/automake/tests/depmod.dir + not am_keeping_testdirs Once you see the contents of the offending foo.Po file: (the "\:" on line 3 is the obvious culprit) $ cat tests/depmod.dir/tru64-long.d/src/.deps/foo.Po foo.o: ../../this-is/a-path/which-have/quite-a/long_long_name/src/foo.c \ ../../this-is/a-path/which-have/quite-a/long_long_name/src/foo.h ../../this-is/a-path/which-have/quite-a/long_long_name/src/foo.c \: ../../this-is/a-path/which-have/quite-a/long_long_name/src/foo.h: tap 84 fails for the same reason. Here's the full log. --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=test-suite.log.xz Content-Transfer-Encoding: base64 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 eDE1erHEZ/sCAAAAAARZWg== --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Thu Jan 05 03:22:34 2012 Received: (at 10434) by debbugs.gnu.org; 5 Jan 2012 08:22:34 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Riian-0001SI-JS for submit@debbugs.gnu.org; Thu, 05 Jan 2012 03:22:33 -0500 Received: from mail-wi0-f172.google.com ([209.85.212.172]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Riiaj-0001S9-Nq for 10434@debbugs.gnu.org; Thu, 05 Jan 2012 03:22:31 -0500 Received: by wibhj6 with SMTP id hj6so189706wib.3 for <10434@debbugs.gnu.org>; Thu, 05 Jan 2012 00:19:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:mime-version:to:cc:subject:references :in-reply-to:content-type:content-transfer-encoding; bh=IZniiiCvBH1+AUpRqtzl1nOLrv0HllGGH0APd7acfbU=; b=TJuUZv2ceLrnXB3YjYxd3FF4zhoATAwbZzCc4L24Q3YHXJSXhWQdNoNbpHCFkBebyg RHOIq4un6wk1v5Wk5Zl+gw5Ci/AvvaxGdulMT+uzC/oKbeINHCBw9qb/Bjk21bRERjZv oaJsDAyTouJnyWeGvE6jqrZEwTARjdjuiC2RU= Received: by 10.180.20.18 with SMTP id j18mr1948278wie.20.1325751540195; Thu, 05 Jan 2012 00:19:00 -0800 (PST) Received: from [79.21.97.111] (host111-97-dynamic.21-79-r.retail.telecomitalia.it. [79.21.97.111]) by mx.google.com with ESMTPS id g11sm29173725wbo.6.2012.01.05.00.18.58 (version=SSLv3 cipher=OTHER); Thu, 05 Jan 2012 00:18:59 -0800 (PST) Message-ID: <4F055CEB.4020104@gmail.com> Date: Thu, 05 Jan 2012 09:18:51 +0100 From: Stefano Lattarini MIME-Version: 1.0 To: Jim Meyering Subject: Re: bug#10434: FAIL: depmod.tap 50 - tru64 [long VPATH] make & remake References: <87obujckam.fsf@rho.meyering.net> In-Reply-To: <87obujckam.fsf@rho.meyering.net> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Score: -3.7 (---) X-Debbugs-Envelope-To: 10434 Cc: 10434@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.7 (---) On 01/04/2012 08:57 PM, Jim Meyering wrote: > (latest from git/master) > I just ran the test suite using the latest and now we're down to 5 failures! > > # TOTAL: 2478 > # PASS: 2382 > # SKIP: 61 > # XFAIL: 30 > # FAIL: 5 > # XPASS: 0 > # ERROR: 0 > > $ grep '^FAIL:' tests/test-suite.log > FAIL: depmod > FAIL: depmod.tap 50 - tru64 [long VPATH] make & remake > FAIL: depmod.tap 84 - tru64 [absolute VPATH] make & remake > About these failures, see also: > Started looking, and this one may be easy to fix: > > make[1]: Leaving directory `/h/j/w/co/automake/tests/depmod.dir/tru64-long.d/src' > make[1]: Entering directory `/h/j/w/co/automake/tests/depmod.dir/tru64-long.d' > make[1]: Nothing to be done for `all-am'. > make[1]: Leaving directory `/h/j/w/co/automake/tests/depmod.dir/tru64-long.d' > + make clean > Making clean in src > make[1]: Entering directory `/h/j/w/co/automake/tests/depmod.dir/tru64-long.d/src' > .deps/foo.Po:3: *** missing separator. Stop. > make[1]: Leaving directory `/h/j/w/co/automake/tests/depmod.dir/tru64-long.d/src' > make: *** [clean-recursive] Error 1 > + result_ 'not ok' 'tru64 [long VPATH] make & remake' > + set +x > not ok 50 - tru64 [long VPATH] make & remake > FAIL: depmod.tap 50 - tru64 [long VPATH] make & remake > + cd /h/j/w/co/automake/tests/depmod.dir > + not am_keeping_testdirs > > Once you see the contents of the offending foo.Po file: > (the "\:" on line 3 is the obvious culprit) > > $ cat tests/depmod.dir/tru64-long.d/src/.deps/foo.Po > foo.o: ../../this-is/a-path/which-have/quite-a/long_long_name/src/foo.c \ > ../../this-is/a-path/which-have/quite-a/long_long_name/src/foo.h > ../../this-is/a-path/which-have/quite-a/long_long_name/src/foo.c \: > ../../this-is/a-path/which-have/quite-a/long_long_name/src/foo.h: > > tap 84 fails for the same reason. > The fact is that these failures (as we can experience them, at least) only happen when we are *forcing* the use of the tru64 depmode *to gcc* (which obviously isn't really meant nor expected to handle it); OTOH, the failures do *not* happen with the Sun C Compiler (5.9 on Solaris 10). So the real question is: do such failures take place with the Tru64 compiler? If yes, we really have a bug to fix; if not, the failure is merely a consequence of our messing with forced depmodes, and the correct fix is to SKIP the affected tests. Unfortunately, I don't have access to a Tru64 system, so I can't do the testing myself. Regards, Stefano From debbugs-submit-bounces@debbugs.gnu.org Thu Jan 05 04:00:20 2012 Received: (at 10434) by debbugs.gnu.org; 5 Jan 2012 09:00:20 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RijBM-0002Lq-1g for submit@debbugs.gnu.org; Thu, 05 Jan 2012 04:00:20 -0500 Received: from mx.meyering.net ([88.168.87.75]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RijBH-0002LS-Q9 for 10434@debbugs.gnu.org; Thu, 05 Jan 2012 04:00:16 -0500 Received: from rho.meyering.net (localhost.localdomain [127.0.0.1]) by rho.meyering.net (Acme Bit-Twister) with ESMTP id 2E774600AE; Thu, 5 Jan 2012 09:56:46 +0100 (CET) From: Jim Meyering To: Stefano Lattarini Subject: Re: bug#10434: FAIL: depmod.tap 50 - tru64 [long VPATH] make & remake In-Reply-To: <4F055CEB.4020104@gmail.com> (Stefano Lattarini's message of "Thu, 05 Jan 2012 09:18:51 +0100") References: <87obujckam.fsf@rho.meyering.net> <4F055CEB.4020104@gmail.com> Date: Thu, 05 Jan 2012 09:56:46 +0100 Message-ID: <877h16bk8h.fsf@rho.meyering.net> Lines: 6 MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.8 (--) X-Debbugs-Envelope-To: 10434 Cc: 10434@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.8 (--) Stefano Lattarini wrote: ... > Unfortunately, I don't have access to a Tru64 system, so I can't do the testing > myself. Nor do I. From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 02 16:46:04 2012 Received: (at 10434) by debbugs.gnu.org; 2 Feb 2012 21:46:04 +0000 Received: from localhost ([127.0.0.1]:51373 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Rt4Tj-0001xg-Mn for submit@debbugs.gnu.org; Thu, 02 Feb 2012 16:46:04 -0500 Received: from mail-ee0-f44.google.com ([74.125.83.44]:65049) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Rt4Th-0001xD-43 for 10434@debbugs.gnu.org; Thu, 02 Feb 2012 16:46:02 -0500 Received: by eekc41 with SMTP id c41so1320503eek.3 for <10434@debbugs.gnu.org>; Thu, 02 Feb 2012 13:45:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:mime-version:to:cc:subject:references :in-reply-to:content-type; bh=heB1EVGh4ZKUr+atjsjDFZV59VH3cBWFMHUFzl+Ex8Q=; b=yEiqZ36QEmZkd1LtKPYlyHlJbkoSxdRKffJsFVPodU7G3oG/BYgfjTKtKgzsWDflNn aJgOosLDHojeVJ2WVVd/lADusPAatx24QMpto1Oqu85muzQLmb7tC7bwBIQboW8Wwugh nAXPhXe7hk89SKcxhS/QkA8UpMqdSji6CVQTc= Received: by 10.14.119.197 with SMTP id n45mr1412784eeh.72.1328219126375; Thu, 02 Feb 2012 13:45:26 -0800 (PST) Received: from [87.2.95.169] (host169-95-dynamic.2-87-r.retail.telecomitalia.it. [87.2.95.169]) by mx.google.com with ESMTPS id x4sm13862841eeb.4.2012.02.02.13.45.24 (version=SSLv3 cipher=OTHER); Thu, 02 Feb 2012 13:45:25 -0800 (PST) Message-ID: <4F2B03F2.4070503@gmail.com> Date: Thu, 02 Feb 2012 22:45:22 +0100 From: Stefano Lattarini MIME-Version: 1.0 To: Jim Meyering Subject: Re: bug#10434: FAIL: depmod.tap 50 - tru64 [long VPATH] make & remake References: <87obujckam.fsf@rho.meyering.net> <4F055CEB.4020104@gmail.com> <877h16bk8h.fsf@rho.meyering.net> In-Reply-To: <877h16bk8h.fsf@rho.meyering.net> Content-Type: multipart/mixed; boundary="------------000906040104090901050406" X-Spam-Score: -2.6 (--) X-Debbugs-Envelope-To: 10434 Cc: automake-patches@gnu.org, 10434@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) This is a multi-part message in MIME format. --------------000906040104090901050406 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Reference: OK, the attached patch fixes the two spurious failures of GCC forced into Tru64 mode. About time I'd say. But I'm not sure whether we should apply this without first testing it on a real Tru64 compiler, lest we cause a real regression just to fix a spurious failure. Thoughts? Regards, Stefano --------------000906040104090901050406 Content-Type: text/x-diff; name="0001-tru64-depcomp-handle-line-continuations-more-graciou.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0001-tru64-depcomp-handle-line-continuations-more-graciou.pa"; filename*1="tch" >From e783412d288270976ca4a6475816bc36b76ded6f Mon Sep 17 00:00:00 2001 Message-Id: From: Stefano Lattarini Date: Thu, 2 Feb 2012 22:44:58 +0100 Subject: [PATCH] tru64 depcomp: handle line continuations more graciously Fixes automake bug#10434. * lib/depcomp (tru64): Take into account the possibility of line continuations (by a trailing '\' character) when post-processing the generated dependency file. This fixes a failure for when the compiler is GCC and the Tru64 dependency mode is forced at configure time. In case some versions of the Tru64 compiler suffer from the same weakness, this change should improve the situation for them as well. Otherwise, no semantic change on Tru64 is expected from this patch. --- lib/depcomp | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/depcomp b/lib/depcomp index ff4e08f..0b14e6f 100755 --- a/lib/depcomp +++ b/lib/depcomp @@ -1,10 +1,10 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2011-12-04.11; # UTC +scriptversion=2012-02-02.21; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, -# 2011 Free Software Foundation, Inc. +# 2011, 2012 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 @@ -408,7 +408,10 @@ tru64) if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + # The second '-e' command handles possible line continuations; + # see automake bug#10434. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's/[ ]*\\$//' \ + -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi -- 1.7.7.3 --------------000906040104090901050406-- From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 02 17:42:06 2012 Received: (at 10434) by debbugs.gnu.org; 2 Feb 2012 22:42:06 +0000 Received: from localhost ([127.0.0.1]:51418 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Rt5Lx-0003Ho-Nx for submit@debbugs.gnu.org; Thu, 02 Feb 2012 17:42:06 -0500 Received: from mail.lysator.liu.se ([130.236.254.3]:52198) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Rt5Lq-0003HD-3d for 10434@debbugs.gnu.org; Thu, 02 Feb 2012 17:42:04 -0500 Received: from mail.lysator.liu.se (localhost [127.0.0.1]) by mail.lysator.liu.se (Postfix) with ESMTP id E135740016; Thu, 2 Feb 2012 23:41:26 +0100 (CET) Received: from [192.168.0.150] (h57n3fls301o1095.telia.com [81.230.178.57]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.lysator.liu.se (Postfix) with ESMTPSA id 30A6640015; Thu, 2 Feb 2012 23:41:26 +0100 (CET) Message-ID: <4F2B111D.7060105@lysator.liu.se> Date: Thu, 02 Feb 2012 23:41:33 +0100 From: Peter Rosin User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0) Gecko/20111222 Thunderbird/9.0.1 MIME-Version: 1.0 To: Stefano Lattarini Subject: Re: bug#10434: FAIL: depmod.tap 50 - tru64 [long VPATH] make & remake References: <87obujckam.fsf@rho.meyering.net> <4F055CEB.4020104@gmail.com> <877h16bk8h.fsf@rho.meyering.net> <4F2B03F2.4070503@gmail.com> In-Reply-To: <4F2B03F2.4070503@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV using ClamSMTP X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 10434 Cc: Jim Meyering , automake-patches@gnu.org, 10434@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) Stefano Lattarini skrev 2012-02-02 22:45: > Reference: > > > OK, the attached patch fixes the two spurious failures of GCC forced into > Tru64 mode. About time I'd say. > > But I'm not sure whether we should apply this without first testing it > on a real Tru64 compiler, lest we cause a real regression just to fix a > spurious failure. Thoughts? I just had a look at that test, and it seems like a very crappy test to me. I had some failures with cl, but figured it was the same as these Tru64 failures that I had seen flying past, and put it all on the back burner. But the test is destined to cause troubles if IIUC. It's just dead wrong to assume that feeding -M or -xM to the compiler (or whatever other random stuff depcomp might do) and not get an error is the same as dependencies magically appearing. Or do I read the test wrong? Please tell me that I do! gcc needs to be required, or something, or we will suffer from FAILs with every other odd compiler (that doesn't deserve them). Cheers, Peter From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 05 08:18:12 2012 Received: (at 10434) by debbugs.gnu.org; 5 Feb 2012 13:18:12 +0000 Received: from localhost ([127.0.0.1]:55045 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Ru1yr-0001VD-IY for submit@debbugs.gnu.org; Sun, 05 Feb 2012 08:18:12 -0500 Received: from mail-ey0-f172.google.com ([209.85.215.172]:64459) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Ru1yi-0001UY-VR for 10434@debbugs.gnu.org; Sun, 05 Feb 2012 08:18:07 -0500 Received: by eaaq13 with SMTP id q13so849797eaa.3 for <10434@debbugs.gnu.org>; Sun, 05 Feb 2012 05:17:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:mime-version:to:cc:subject:references :in-reply-to:content-type; bh=hN2HhoRD4aF425Gf5qBALvd75kvVNIkvkpY7VnyxzYg=; b=xYTZNzwAd6kqrPJBULa6Gp0VohtPYWem6/dWE75J6IHKB4JQhfG5tk9GskBnbfmfA9 aumYnr8Ft5e4asNsDZwdLp/fwREeROZBCXeH/bJ0o5z/uVpKdz9jNlRzAr3jct56qXZX mfgOU9Zusqox1T+1GEKFVsB7cUJlybMFJL6Mc= Received: by 10.213.8.207 with SMTP id i15mr2291504ebi.143.1328447830959; Sun, 05 Feb 2012 05:17:10 -0800 (PST) Received: from [82.58.48.137] (host137-48-dynamic.58-82-r.retail.telecomitalia.it. [82.58.48.137]) by mx.google.com with ESMTPS id a58sm48038332eeb.8.2012.02.05.05.17.07 (version=SSLv3 cipher=OTHER); Sun, 05 Feb 2012 05:17:09 -0800 (PST) Message-ID: <4F2E814B.5090308@gmail.com> Date: Sun, 05 Feb 2012 14:16:59 +0100 From: Stefano Lattarini MIME-Version: 1.0 To: Peter Rosin Subject: Re: bug#10434: FAIL: depmod.tap 50 - tru64 [long VPATH] make & remake References: <87obujckam.fsf@rho.meyering.net> <4F055CEB.4020104@gmail.com> <877h16bk8h.fsf@rho.meyering.net> <4F2B03F2.4070503@gmail.com> <4F2B111D.7060105@lysator.liu.se> In-Reply-To: <4F2B111D.7060105@lysator.liu.se> Content-Type: multipart/mixed; boundary="------------070500070602020004060403" X-Spam-Score: -2.6 (--) X-Debbugs-Envelope-To: 10434 Cc: Jim Meyering , automake-patches@gnu.org, 10434@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) This is a multi-part message in MIME format. --------------070500070602020004060403 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 02/02/2012 11:41 PM, Peter Rosin wrote: > Stefano Lattarini skrev 2012-02-02 22:45: >> Reference: >> >> >> OK, the attached patch fixes the two spurious failures of GCC forced into >> Tru64 mode. About time I'd say. >> >> But I'm not sure whether we should apply this without first testing it >> on a real Tru64 compiler, lest we cause a real regression just to fix a >> spurious failure. Thoughts? > > I just had a look at that test, and it seems like a very crappy test > to me. I had some failures with cl, but figured it was the same as > these Tru64 failures that I had seen flying past, and put it all on > the back burner. But the test is destined to cause troubles if IIUC. > > It's just dead wrong to assume that feeding -M or -xM to the compiler > (or whatever other random stuff depcomp might do) and not get an error > is the same as dependencies magically appearing. Or do I read the > test wrong? Please tell me that I do! > Unfortunately you read the test right. And in hindsight I must agree with you: its approach is fundamentally flawed. So, what about the attached patch, that overhauls (and hopefully improve) the coverage for automatic dependency tracking support? It is probably possible to improve the patch even more (esp. w.r.t. optimizations for speed), but that can be left for follow-up changes IMHO. I will push (to master) in 72 hours if there is no objection by then. Thanks, Stefano --------------070500070602020004060403 Content-Type: text/x-diff; name="0001-tests-improve-and-rework-tests-on-dependency-trackin.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0001-tests-improve-and-rework-tests-on-dependency-trackin.pa"; filename*1="tch" >From 2008b6bd27bba6194856cb5a58eb8c5e700e35c8 Mon Sep 17 00:00:00 2001 Message-Id: <2008b6bd27bba6194856cb5a58eb8c5e700e35c8.1328447619.git.stefano.lattarini@gmail.com> From: Stefano Lattarini Date: Fri, 3 Feb 2012 15:05:48 +0100 Subject: [PATCH] tests: improve and rework tests on dependency tracking Fixes automake bug#10434. Suggestion by Peter Rosin. The 'depcomp.tap' test case worked by trying to unconditionally force the compiler in use by the testsuite to use, one by one, *all* the dependency modes known by the 'depcomp' script, and, for each such forced mode that was compatible enough with said compiler not to cause breakage in the basic compilation rules, checking that it was *also* good enough not to break remake rules in VPATH builds. This seemed a good approach when this test was first introduced, as it apparently increased coverage for the less used and less tested dependency-tracking modes. But in the log run it turned out the approach was actually in part to brittle, causing some annoying spurious failures (as with the Tru64 depmode forced on GCC, see automake bug#10434), and partly too forgiving, since, for some of the more corner-case dependency modes, the 'depcomp' script simply reverts to silently disabling dependency tracking when an error is encountered (this happened e.g., with the Tru64 depmode forced on the Sun C compiler 5.9), so that a passing test means nothing, and only gives a false sense of security. As Peter Rosin put it, "it's just dead wrong to assume that feeding -M or -xM to the compiler (or whatever other random stuff 'depcomp' might do) and not get an error is the same as dependencies magically appearing". So we get rid of this wrong approach, and in the process proceed to a complete overhaul of many of the tests on automatic dependency tracking, extending the offered coverage and rationalizing their organization. * tests/decomp.sh: New helper script, used by several new autogenerated tests. * tests/gen-testsuite-part: Generate several tests based on the new 'decomp.sh' script. Emit makefile code that declares their dependency on that script, and that extends EXTRA_DIST in order to distribute it. * tests/depmod.tap: Remove. * tests/depend2.test: Remove, it has been subsumed by the new test 'depcomp-disabled.tap'. * tests/depcomp3.test: Remove, it has been subsumed by the new autogenerated test 'depmod-dashmstdout.tap'. * tests/depcomp3.test: Remove, it has been subsumed by the new autogenerated test 'depmod-lt-makedepend.tap'. * tests/depcomp6.test: Remove, it has been subsumed by the new autogenerated test 'depmod-auto.tap'. * tests/depcomp7.test: Remove, it has been subsumed by the new autogenerated test 'depmod-lt-auto.tap'. * tests/depcomp5.test: Remove as obsolescent. * test/list-of-tests.mk: Adjust. * .gitignore: List the new autogenerated tests. --- .gitignore | 1 + tests/depcomp.sh | 378 ++++++++++++++++++++++++++++++++++++++++++++++ tests/depcomp3.test | 63 -------- tests/depcomp4.test | 59 ------- tests/depcomp5.test | 69 --------- tests/depcomp6.test | 110 -------------- tests/depcomp7.test | 126 --------------- tests/depend2.test | 54 ------- tests/depmod.tap | 209 ------------------------- tests/gen-testsuite-part | 72 ++++++++- tests/list-of-tests.mk | 7 - 11 files changed, 447 insertions(+), 701 deletions(-) create mode 100755 tests/depcomp.sh delete mode 100755 tests/depcomp3.test delete mode 100755 tests/depcomp4.test delete mode 100755 tests/depcomp5.test delete mode 100755 tests/depcomp6.test delete mode 100755 tests/depcomp7.test delete mode 100755 tests/depend2.test delete mode 100755 tests/depmod.tap diff --git a/.gitignore b/.gitignore index 46607dc..c95a193 100644 --- a/.gitignore +++ b/.gitignore @@ -53,6 +53,7 @@ Makefile /tests/testsuite-part.am /tests/*-w.tap /tests/*-w.test +/tests/depcomp-*.tap /tests/*.dir /tests/*.log /tests/*.trs diff --git a/tests/depcomp.sh b/tests/depcomp.sh new file mode 100755 index 0000000..147e8ca --- /dev/null +++ b/tests/depcomp.sh @@ -0,0 +1,378 @@ +#! /bin/sh +# Copyright (C) 2012 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 . + +# Check dependency tracking in various flavours. +# Contains both libtool and non-libtool case. +# Sourced by the various (autogenerated) 'depcomp*.tap' tests. +# Examples of reported failures that motivated those test are +# listed below. + +# ------------------------------------------------------------------------- + +# +# +# Here's the bug: makedepend will prefix VPATH to the object file name, +# thus the second make will invoke depcomp with object='../../src/foo.o', +# causing errors such as: +# +# touch: cannot touch `../../src/.deps/foo.TPo': No such file or directory +# makedepend: error: cannot open "../../src/.deps/foo.TPo" +# ../../depcomp: line 560: ../../src/.deps/foo.TPo: No such file or directory + +# ------------------------------------------------------------------------- + +# +# +# +# Here's the bug: hp depmode will prefix VPATH to the object file name, +# thus the second gmake will invoke depcomp with object='../../src/foo.o', +# causing errors such as (broken on multiple lines for clarity): +# +# cpp: "", line 0: error 4066: Cannot create +# "../../gllib/.deps/nonblocking.TPo" file for +# "-M../../gllib/.deps/nonblocking.TPo" option. +# (No such file or directory[errno=2]) +# + +# ------------------------------------------------------------------------- + +# +# +# +# A partial failure of an earlier version of this test; some bad +# post-processing of the `*.Po' files led to the following broken +# contents of `src/sub/.deps/subfoo.Po': +# +# > sub/subfoo.o: ../../depmod-data.dir/src/sub/subfoo.c \ +# > ../../depmod-data.dir/src/foo.h +# > ../../depmod-data.dir/src/sub/subfoo.c \: +# > ../../depmod-data.dir/src/foo.h: +# +# which caused make to die with an error like: +# +# "sub/.deps/subfoo.Po:3: *** missing separator. Stop." + +# ------------------------------------------------------------------------- + +am_create_testdir=empty +. ./defs || Exit 1 + +ocwd=`pwd` || fatal_ "cannot get current working directory" +longpath=this-is/a-path/which-has/quite-a/definitely/truly/long_long_name +cachevar=am_cv_CC_dependencies_compiler_type + +srctree=depmod-1.0 +mkdir $srctree +cd $srctree + +cd_top () +{ + cd "$ocwd" || fatal_ "cannot chdir back to top directory" +} + +delete () +{ + test -f "$1" || fatal_ "$1: file does not exist" + rm -f "$1" || fatal_ "$1: couldn't remove" +} + +edit () +{ + file=$1; shift + sed "$@" <"$file" > t && mv -f t "$file" \ + || fatal_ "$file: editing of file failed" +} + +rewrite () +{ + file=$1; shift + "$@" > "$file" || fatal_ "$file: couldn't rewrite" +} + +setup_srcdir () +{ + srcdir=$1 # This is intended to be global. + mkdir -p "$srcdir" \ + || fatal_ "couldn't create source directory '$srcdir'" + cp -pR "$ocwd/$srctree"/* "$srcdir"/ \ + || fatal_ "couldn't populate source directory '$srcdir'" +} + + +check_no_depfiles () +{ + find . -name '*.Plo' -o -name '*.Po' | grep . && return 1 + return 0 +} + +check_distclean () +{ + # "make distcleancheck" can only run from a VPATH build. + if test $vpath = no; then + make_ok distclean && check_no_depfiles + else + $MAKE distcleancheck + fi +} + +cat > configure.in <> Makefile.am + make_ok () + { + $MAKE ${1+"$@"} >output 2>&1 || { cat output; return 1; } + cat output + $FGREP 'unknown directive' output && return 1 + rm -f output + # Checks for stray files possible left around by less common + # depmodes. + find . -name '*.[ud]' | grep . && return 1 + return 0 + } + ;; + no) + plan_ 24 + po=Po objext='$(OBJEXT)' a=a + normalized_target=foo + LIBPRIMARY=LIBRARIES LINKADD=LDADD + echo bin_PROGRAMS = foo >> Makefile.am + make_ok () + { + $MAKE ${1+"$@"} + } + ;; + *) + fatal_ "invalid value '$depcomp_with_libtool' for variable" \ + "\$depcomp_with_libtool" + ;; +esac + +cat >> Makefile.am < src/Makefile.am < foo.c <<'END' +#include "foo.h" +#include "src/baz.h" +#include +int main (void) +{ + printf ("foo bar\n"); + exit (EXIT_SUCCESS + subfoo () + baz ()); +} +END + +cat > foo.h <<'END' +#include +#include "sub/subfoo.h" +END + +cat > sub/subfoo.c <<'END' +#include "sub/subfoo.h" +int subfoo (void) { return 0; } +END + +echo '/* empty */' > src/sub2/sub2foo.h + +cat > sub/subfoo.h <<'END' +#include +extern int subfoo (void); +END + +cat > src/baz.c <<'END' +#include "baz.h" +int baz (void) { return 0; } +END + +cat > src/baz.h <<'END' +extern int baz (void); +END + +cat > src/sub2/sub2foo.c <<'END' +#include "sub2foo.h" +int sub2foo (void) { return 0; } +END + +test $depcomp_with_libtool = no || libtoolize \ + || fatal_ "libtoolize failed" +$ACLOCAL && $AUTOCONF && $AUTOMAKE -a \ + || fatal_ "autotools failed" +test -f build-aux/depcomp \ + || fatal_ "depcomp script not installed" + +case $depmode in + auto) + cfg_deptrack=--enable-dependency-tracking ;; + disabled) + cfg_deptrack=--disable-dependency-tracking ;; + *) + # Sanity check: ensure the cache variable we force is truly + # used by configure. + $FGREP $cachevar configure \ + || fatal_ "configure lacks required cache variable '$cachevar'" + cfg_deptrack="cachevar=$depmode" ;; +esac + +cd_top + +do_test () +{ + cd_top + if test $vpath = no; then + pfx="in-tree build" + else + pfx="$vpath VPATH" + fi + if test $# -gt 0; then + subdir=$1; shift + pfx="$pfx, $subdir" + test -d $subdir || mkdir $subdir || fatal_ "creating directory $subdir" + cd $subdir + fi + pfx="[$pfx]" + case $vpath in + simple) + mkdir -p vpath-simple/build + cd vpath-simple/build + setup_srcdir .. + ;; + long) + mkdir -p vpath-long/src vpath-long/wrk + cd vpath-long/wrk + setup_srcdir ../src/$longpath + ;; + absolute) + mkdir -p vpath-abs/build + cd vpath-abs/build + absdir="`(cd .. && pwd)`" || fatal_ "getting absolute directory" + setup_srcdir "$absdir/vpath-abs" + unset absdir + ;; + no) + mkdir intree + cd intree + setup_srcdir . + ;; + *) + fatal_ "invalid value '$vpath' for variable \$vpath" + ;; + esac + + command_ok_ "$pfx configure" "$srcdir"/configure $cfg_deptrack ${1+"$@"} + command_ok_ "$pfx simple make" make_ok + # Some bugs in VPATH builds only kick in during a rebuild. + command_ok_ "$pfx clean & rebuild" eval '$MAKE clean && make_ok' + + if test $depmode = disabled; then + command_ok_ "$pfx no dependency files generated" check_no_depfiles + r=ok \ + && grep "[ $tab]depmode=none" Makefile \ + && rewrite "$srcdir"/src/sub2/sub2foo.h echo 'choke me' \ + && delete "$srcdir"/sub/subfoo.h \ + && make_ok \ + || r='not ok' + result_ "$r" "$pfx dependency tracking is truly disabled" + elif grep "[ $tab]depmode=none" Makefile; then + skip_row_ 2 -r "automatic dependency tracking couldn't be activated" + else + command_ok_ "$pfx generated $po files look correct" $MAKE grep-test + r=ok \ + && : "Some checks in the subdir." \ + && $sleep \ + && : "Ensure rebuild rules do really kick in." \ + && rewrite "$srcdir"/src/sub2/sub2foo.h echo 'choke me' \ + && cd src \ + && not $MAKE \ + && cd .. \ + && : "Ensure the deleted header bug is fixed." \ + && delete "$srcdir"/src/sub2/sub2foo.h \ + && edit "$srcdir"/src/sub2/sub2foo.c -e 1d \ + && cd src \ + && make_ok \ + && : "Now do similar checks for the parent directory." \ + && cd .. \ + && rewrite "$srcdir"/sub/subfoo.h echo 'choke me' \ + && not $MAKE \ + && delete "$srcdir"/sub/subfoo.h \ + && edit "$srcdir"/sub/subfoo.c -e 1d \ + && edit "$srcdir"/foo.h -e 2d \ + && make_ok \ + || r='not ok' + result_ "$r" "$pfx dependency tracking works" + fi + + command_ok_ "$pfx make distclean" check_distclean + cd_top +} + +for vpath in no simple long absolute; do + if test $depcomp_with_libtool = no; then + do_test + else + do_test default + do_test noshared --disable-shared + do_test nostatic --disable-static + fi +done + +: diff --git a/tests/depcomp3.test b/tests/depcomp3.test deleted file mode 100755 index 058d7e9..0000000 --- a/tests/depcomp3.test +++ /dev/null @@ -1,63 +0,0 @@ -#! /bin/sh -# Copyright (C) 2003, 2010, 2011 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 . - -# Make sure dashmstdout generates dependencies. - -required='gcc' -. ./defs || Exit 1 - -cat >> configure.in << 'END' -AC_PROG_CC -AM_PROG_CC_C_O -AC_OUTPUT -END - -cat > Makefile.am << 'END' -AUTOMAKE_OPTIONS = subdir-objects -check_PROGRAMS = prg -prg_SOURCES = src/sub.c src/foo.h - -.PHONY: grepdeps -grepdeps: - grep 'src/sub\.$(OBJEXT).*:' src/$(DEPDIR)/sub.Po - -END - -mkdir src - -: > src/foo.h - -cat >src/sub.c <. - -# Test for PR 385: makedepend doesn't work with Libtool. - -required='libtoolize gcc makedepend' -. ./defs || Exit 1 - -cat >> configure.in << 'END' -AC_PROG_CC -AM_PROG_AR -AC_PROG_LIBTOOL -AC_OUTPUT -END - -cat > Makefile.am << 'END' -noinst_LTLIBRARIES = liba.la -liba_la_SOURCES = a.c foo.h - -.PHONY: grepdeps -grepdeps: - grep 'a\.lo *:' ./$(DEPDIR)/a.Plo -END - -: > foo.h - -cat >a.c <output 2>&1 || { cat output; Exit 1; } -cat output -grep 'unknown directive' output && Exit 1 -$MAKE grepdeps - -: diff --git a/tests/depcomp5.test b/tests/depcomp5.test deleted file mode 100755 index 586a98b..0000000 --- a/tests/depcomp5.test +++ /dev/null @@ -1,69 +0,0 @@ -#! /bin/sh -# Copyright (C) 2003, 2004, 2010, 2011 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 . - -# Check icc's dependency mode. - -required='icc' -. ./defs || Exit 1 - -# Automake supports icc since version 7.0 through a dedicated depcomp mode. -# icc 8.0 and greater understand gcc options, so depmode is set to gcc. -if icc -V -help 2>&1 | grep 'Version 7'; then - expect='depmode=icc' -else - expect='depmode=gcc' -fi - -cat >> configure.in << 'END' -AC_PROG_CC -AM_PROG_CC_C_O -AC_OUTPUT -END - -cat > Makefile.am << 'END' -AUTOMAKE_OPTIONS = subdir-objects -check_PROGRAMS = prg -prg_SOURCES = src/sub.c src/foo.h - -.PHONY: grepdeps -grepdeps: - grep 'src/sub\.$(OBJEXT).*:' src/$(DEPDIR)/sub.Po - -END - -mkdir src - -touch src/foo.h - -cat >src/sub.c <. - -# Check dependency generation (non libtool case). - -required=cc -. ./defs || Exit 1 - -cat >> configure.in << 'END' -AC_PROG_CC -AM_PROG_CC_C_O -AM_PROG_AR -AC_PROG_RANLIB -AC_CONFIG_FILES([sub2/Makefile]) -AC_OUTPUT -END - -mkdir sub sub2 sub2/sub3 - -cat >Makefile.am <<'END' -SUBDIRS = sub2 -bin_PROGRAMS = foo -foo_SOURCES = foo.c sub/bar.c foo.h sub/bar.h -foo_LDADD = sub2/libbaz.a -END - -cat >sub2/Makefile.am <<'END' -AUTOMAKE_OPTIONS = subdir-objects -noinst_LIBRARIES = libbaz.a -libbaz_a_SOURCES = baz.c sub3/ba3.c baz.h sub3/ba3.h -END - -cat >foo.c <<'END' -#include "foo.h" -#include "sub2/baz.h" -#include -int main (void) { printf ("foo"); return bar () + baz (); } -END - -cat >foo.h <<'END' -#include -#include "sub/bar.h" -END - -cat >sub/bar.c <<'END' -#include "sub/bar.h" -int bar (void) { return 0; } -END - -touch sub2/sub3/ba3.h - -cat >sub/bar.h <<'END' -#include -extern int bar (void); -END - -cat >sub2/baz.c <<'END' -#include "baz.h" -int baz (void) { return 0; } -END - -cat >sub2/baz.h <<'END' -extern int baz (void); -END - -cat >sub2/sub3/ba3.c <<'END' -#include "ba3.h" -int ba3 (void) { return 0; } -END - -$ACLOCAL -$AUTOCONF -$AUTOMAKE -a - -./configure --enable-dependency-tracking -$MAKE - -if grep 'depmode=none' Makefile; then - skip_ "automatic dependency tracking couldn't be activated" -fi - -cd sub2 -$sleep -echo 'choke me' > sub3/ba3.h -# Do not use `$MAKE && Exit 1' here, since even relatively-recent -# versions of the BSD shell wrongly exit when the `errexit' shell -# flag is active if a command within "&&" fails inside a compound -# statement. -if $MAKE; then Exit 1; else :; fi - -# Ensure the deleted header bug is fixed. -rm -f sub3/ba3.h -sed 1d sub3/ba3.c >sub3/ba3.t -mv -f sub3/ba3.t sub3/ba3.c -$MAKE - -: diff --git a/tests/depcomp7.test b/tests/depcomp7.test deleted file mode 100755 index f553894..0000000 --- a/tests/depcomp7.test +++ /dev/null @@ -1,126 +0,0 @@ -#! /bin/sh -# Copyright (C) 2006, 2007, 2010, 2011 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 . - -# Check dependency generation (libtool case). - -required='cc libtoolize' -. ./defs || Exit 1 - -cat >> configure.in << 'END' -AC_PROG_CC -AM_PROG_CC_C_O -AM_PROG_AR -AM_PROG_LIBTOOL -AC_CONFIG_FILES([sub2/Makefile]) -AC_OUTPUT -END - -mkdir sub sub2 sub2/sub3 - -cat >Makefile.am <<'END' -SUBDIRS = sub2 -bin_PROGRAMS = foo -foo_SOURCES = foo.c sub/bar.c foo.h sub/bar.h -foo_LDADD = sub2/libbaz.la -END - -cat >sub2/Makefile.am <<'END' -AUTOMAKE_OPTIONS = subdir-objects -noinst_LTLIBRARIES = libbaz.la -libbaz_la_SOURCES = baz.c sub3/ba3.c baz.h sub3/ba3.h -END - -cat >foo.c <<'END' -#include "foo.h" -#include "sub2/baz.h" -#include -int main (void) { printf ("foo"); return bar () + baz (); } -END - -cat >foo.h <<'END' -#include -#include "sub/bar.h" -END - -cat >sub/bar.c <<'END' -#include "sub/bar.h" -int bar (void) { return 0; } -END - -echo 'extern int x;' > sub2/sub3/ba3.h - -cat >sub/bar.h <<'END' -#include -extern int bar (void); -END - -cat >sub2/baz.c <<'END' -#include "baz.h" -int baz (void) { return 0; } -END - -cat >sub2/baz.h <<'END' -extern int baz (void); -END - -cat >sub2/sub3/ba3.in <<'END' -#include "ba3.h" -int ba3 (void) { return 0; } -END - -libtoolize -$ACLOCAL -$AUTOCONF -$AUTOMAKE -a - -st=0 -for staticshared in --disable-shared "" --disable-static; do - - cp sub2/sub3/ba3.in sub2/sub3/ba3.c - ./configure --enable-dependency-tracking $staticshared - $MAKE - - # If we cannot enable dependency tracking, perform only the most basic - # checks, and don't consider this test to be PASSed but SKIPped, because - # the main purpose of this test is exposing the depmode features. - if grep 'depmode=none' Makefile; then - st=77 - else - cd sub2 - $sleep - echo 'choke me' > sub3/ba3.h - # Do not use `$MAKE && Exit 1' here, since even relatively-recent - # versions of the BSD shell wrongly exit when the `errexit' shell - # flag is active if a command within "&&" fails inside a compound - # statement. - if $MAKE; then Exit 1; else :; fi - - # Ensure the deleted header bug is fixed. - rm -f sub3/ba3.h - sed 1d sub3/ba3.in >sub3/ba3.c - $MAKE - cd .. - fi - - $MAKE distclean - test ! -f sub2/sub3/ba3.u - test ! -f sub2/sub3/ba3.d - - echo 'extern int x;' > sub2/sub3/ba3.h - -done - -Exit $st diff --git a/tests/depend2.test b/tests/depend2.test deleted file mode 100755 index ec949e3..0000000 --- a/tests/depend2.test +++ /dev/null @@ -1,54 +0,0 @@ -#! /bin/sh -# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2010, 2011 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 . - -# Test to make sure dependency tracking works with -# --disable-dependency-tracking. -# Report from Robert Boehne. - -required=cc -. ./defs || Exit 1 - -cat >> configure.in << 'END' -AC_PROG_CC -AC_OUTPUT -END - -cat > Makefile.am << 'END' -bin_PROGRAMS = hello -END - -cat > hello.h << 'END' -#include -END - -cat > hello.c << 'END' -#include "hello.h" -int main (int argc, char *argv[]) -{ - printf ("yeah, yeah\n"); - return 0; -} -END - -$ACLOCAL -$AUTOCONF -$AUTOMAKE -a - -./configure --disable-dependency-tracking -$MAKE - -: diff --git a/tests/depmod.tap b/tests/depmod.tap deleted file mode 100755 index e1fbef5..0000000 --- a/tests/depmod.tap +++ /dev/null @@ -1,209 +0,0 @@ -#! /bin/sh -# Copyright (C) 2011 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 . - -# Check that dependency tracking in various flavours works with VPATH -# builds. Examples of reported failures follows ... - -# -# -# Here's the bug: makedepend will prefix VPATH to the object file name, -# thus the second make will invoke depcomp with object='../../src/foo.o', -# causing errors such as: -# touch: cannot touch `../../src/.deps/foo.TPo': No such file or directory -# makedepend: error: cannot open "../../src/.deps/foo.TPo" -# ../../depcomp: line 560: ../../src/.deps/foo.TPo: No such file or directory - -# -# -# -# Here's the bug: hp depmode will prefix VPATH to the object file name, -# thus the second gmake will invoke depcomp with object='../../src/foo.o', -# causing errors such as (broken on multiple lines for clarity): -# cpp: "", line 0: error 4066: Cannot create -# "../../gllib/.deps/nonblocking.TPo" file for -# "-M../../gllib/.deps/nonblocking.TPo" option. -# (No such file or directory[errno=2]) -# - -# -# -# -# A partial failure of an earlier version of this test; some bad -# post-processing of the `*.Po' files led to the following broken -# contents of `src/sub/.deps/subfoo.Po': -# > sub/subfoo.o: ../../depmod-data.dir/src/sub/subfoo.c \ -# > ../../depmod-data.dir/src/foo.h -# > ../../depmod-data.dir/src/sub/subfoo.c \: -# > ../../depmod-data.dir/src/foo.h: -# which caused make to die with an error like: -# "sub/.deps/subfoo.Po:3: *** missing separator. Stop." - -required=cc -. ./defs || Exit 99 - -# Keep this in sync with the contents of depend.m4. -all_depmodes=`\ - sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < "$am_scriptdir/depcomp" \ - | grep -v '^none$'` \ - && : Turn newlines and tabs into spaces, and strip extra whitespace. \ - && all_depmodes=`echo $all_depmodes` \ - && test -n "$all_depmodes" \ - || fatal_ "can't extract list of valid depmodes" - -# Allow the user to select a subset of the tests. -if test $# -gt 0; then - tested_depmodes=$* - for depmode in $tested_depmodes; do - case " $all_depmodes " in - *" $depmode "*);; - *) fatal_ "invalid user-specified depmode '$depmode'" - esac - done - n=`for m in $tested_depmodes; do echo $m; done | wc -l` - # We need to determine the TAP plan adaptively. - # Per each valid depmode three kinds of VPATH, and per each of them - # a test on "./configure" and one on "make & remake"; so there are - # $n * 3 * 2 tests. - plan_ `expr $n '*' 6` - unset n -else - tested_depmodes=$all_depmodes - # Prefer static TAP plan if possible, minimizes the chance of errors. - plan_ 102 -fi - -ocwd=`pwd` || fatal_ "cannot get current working directory" - -srctree=depmod-1.0 -mkdir $srctree -mv missing install-sh depcomp configure.in $srctree -cd $srctree - -mkdir src src/sub - -cat >> configure.in << 'END' -AC_CONFIG_FILES([src/Makefile]) -AC_PROG_CC -AM_PROG_CC_C_O -AC_OUTPUT -END - -echo 'SUBDIRS = src' > Makefile.am - -cat > src/Makefile.am << 'END' -AUTOMAKE_OPTIONS = subdir-objects -bin_PROGRAMS = foo -foo_SOURCES = foo.c foo.h sub/subfoo.c -END - -echo 'extern int subfoo (void);' > src/foo.h - -cat > src/foo.c << 'END' -#include "foo.h" -int main (void) -{ - return subfoo (); -} -END - -# We include subfoo only to be sure that we don't remove too much -# from the object file name. -cat > src/sub/subfoo.c << 'END' -#include "foo.h" -int subfoo (void) -{ - return 0; -} -END - -$ACLOCAL -$AUTOCONF -$AUTOMAKE -a - -# Sanity check: make sure the cache variable we force is used -# by configure. -grep am_cv_CC_dependencies_compiler_type configure \ - || fatal_ "configure lacks required cache variable" - -cd "$ocwd" || fatal_ "cannot chdir back to top directory" - -longpath=this-is/a-path/which-have/quite-a/long_long_name -$srctree/install-sh -d $longpath || fatal_ "cannot create long path" -cp -pR $srctree/* $longpath || fatal_ "cannot populate long path" -cp -pR $srctree/* . || fatal_ "cannot populate top-level directory" - -for vpath in simple long absolute; do - for depmode in $tested_depmodes; do - case $vpath in - simple) - srcdir=..;; - long) - srcdir=../$longpath;; - absolute) - srcdir=$ocwd;; - *) - fatal_ "bad \$vpath value '$vpath'";; - esac - - pfx="$depmode [$vpath VPATH]" - - mkdir $depmode-$vpath.d - cd $depmode-$vpath.d - - if "$srcdir"/configure am_cv_CC_dependencies_compiler_type=$depmode - then - r0='ok' - else - r0='not ok' - fi - result_ "$r0" "$pfx configure" \ - - # Do not fail with the first call to make fails, as the depmode - # we've forced might not actually work, but we have overridden the - # _AM_DEPENDENCIES tests. - r1='not ok' - if $MAKE; then - # We must clean and rebuild, as the actual error only happens the - # second time the objects are built because 'depcomp' has silently - # messed up the .Po files the first time. - $MAKE clean \ - && { e=0; $MAKE >output 2>&1 || e=1; cat output; test $e -eq 0; } \ - && { if grep 'src/[._]deps' output; then false; else :; fi; } \ - && r1='ok' - result_ "$r1" "$pfx make & remake" - else - skip_ -r "can't force depmode" "$pfx make & remake" - fi - - cd "$ocwd" || fatal_ "cannot chdir back to top directory" - - # Remove subdirectories for tests that have passed, to avoid ending up - # with a too big test directory. This is especially important since, - # on each and every system, at least some tests in this script are - # expected to be skipped (which ones exactly depends on the system), - # thus causing the test directory not to be removed when the script - # terminates. - if not am_keeping_testdirs && test "$r0,$r1" = ok,ok; then - rm_rf_ $depmode-$vpath.d \ - || fatal_ "removing directory \`$depmode-$vpath.d'" - else - : For lesser shells with broken 'set -e'. - fi - - done -done - -: diff --git a/tests/gen-testsuite-part b/tests/gen-testsuite-part index 51b634f..40e6dfc 100755 --- a/tests/gen-testsuite-part +++ b/tests/gen-testsuite-part @@ -23,6 +23,8 @@ use warnings FATAL => "all"; use strict; use File::Basename (); +use constant TRUE => 1; +use constant FALSE => 0; my $me = File::Basename::basename $0; @@ -173,6 +175,11 @@ my %deps_extractor = dist_prereqs => "tap-setup.sh", nodist_prereqs => "tap-common-setup.log", }, + depcomp => + { + line_matcher => qr/\bdepcomp\.sh\b/, + dist_prereqs => "depcomp.sh", + }, ); #-------------------------------------------------------------------------- @@ -267,8 +274,6 @@ print <{shell_setup_code} }, 0555; - # Update generated makefile fragment to account for it. - print "generated_TESTS += $wrapper_test\n"; # The generated test works by sourcing the original test, so that # it has to be re-run every time that changes ... print "$base-w.log: $wrapped_test\n"; @@ -307,6 +310,67 @@ while (my ($k, $g) = each %test_generators) } } +print < ["cc"], + disabled => ["cc"], + makedepend => ["cc", "makedepend"], + dashmstdout => ["gcc"], + dashXmstdout => ["gcc"], + cpp => ["gcc"], +# This is for older (pre-3.x) GCC versions. Newer versions +# have depmode "gcc3". + gcc => ["gcc"], + ); + +foreach my $lt (TRUE, FALSE) + { + foreach my $m (keys %depmodes) + { + my @required = + ( + @{$depmodes{$m}}, + $lt ? ("libtoolize",) : (), + ); + my @vars_init = + ( + "depmode=$m", + "depcomp_with_libtool=" . ($lt ? "yes" : "no"), + ); + my $base = "depcomp" . ($lt ? "-lt-" : "-") . $m; + # Register wrapper test as "autogenerated" ... + push @generated_tests, "$base.tap"; + atomic_write ("$base.tap", sub + { + my $file_handle = shift; + print $file_handle unindent <) id 1RuPYa-0004kt-F7 for submit@debbugs.gnu.org; Mon, 06 Feb 2012 09:28:40 -0500 Received: from mx.meyering.net ([88.168.87.75]:45709) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RuPYS-0004kc-R9 for 10434@debbugs.gnu.org; Mon, 06 Feb 2012 09:28:33 -0500 Received: from rho.meyering.net (localhost.localdomain [127.0.0.1]) by rho.meyering.net (Acme Bit-Twister) with ESMTP id 51B8C600FB; Mon, 6 Feb 2012 15:27:34 +0100 (CET) From: Jim Meyering To: Stefano Lattarini Subject: Re: bug#10434: FAIL: depmod.tap 50 - tru64 [long VPATH] make & remake In-Reply-To: <4F2E814B.5090308@gmail.com> (Stefano Lattarini's message of "Sun, 05 Feb 2012 14:16:59 +0100") References: <87obujckam.fsf@rho.meyering.net> <4F055CEB.4020104@gmail.com> <877h16bk8h.fsf@rho.meyering.net> <4F2B03F2.4070503@gmail.com> <4F2B111D.7060105@lysator.liu.se> <4F2E814B.5090308@gmail.com> Date: Mon, 06 Feb 2012 15:27:34 +0100 Message-ID: <87haz4qbop.fsf@rho.meyering.net> Lines: 54 MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 10434 Cc: Peter Rosin , automake-patches@gnu.org, 10434@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) Stefano Lattarini wrote: > On 02/02/2012 11:41 PM, Peter Rosin wrote: >> Stefano Lattarini skrev 2012-02-02 22:45: >>> Reference: >>> >>> >>> OK, the attached patch fixes the two spurious failures of GCC forced into >>> Tru64 mode. About time I'd say. >>> >>> But I'm not sure whether we should apply this without first testing it >>> on a real Tru64 compiler, lest we cause a real regression just to fix a >>> spurious failure. Thoughts? >> >> I just had a look at that test, and it seems like a very crappy test >> to me. I had some failures with cl, but figured it was the same as >> these Tru64 failures that I had seen flying past, and put it all on >> the back burner. But the test is destined to cause troubles if IIUC. >> >> It's just dead wrong to assume that feeding -M or -xM to the compiler >> (or whatever other random stuff depcomp might do) and not get an error >> is the same as dependencies magically appearing. Or do I read the >> test wrong? Please tell me that I do! >> > Unfortunately you read the test right. And in hindsight I must agree > with you: its approach is fundamentally flawed. > > So, what about the attached patch, that overhauls (and hopefully improve) > the coverage for automatic dependency tracking support? It is probably > possible to improve the patch even more (esp. w.r.t. optimizations for > speed), but that can be left for follow-up changes IMHO. > > I will push (to master) in 72 hours if there is no objection by then. ... > Subject: [PATCH] tests: improve and rework tests on dependency tracking > > Fixes automake bug#10434. Suggestion by Peter Rosin. > > The 'depcomp.tap' test case worked by trying to unconditionally > force the compiler in use by the testsuite to use, one by one, *all* > the dependency modes known by the 'depcomp' script, and, for each > such forced mode that was compatible enough with said compiler not > to cause breakage in the basic compilation rules, checking that it > was *also* good enough not to break remake rules in VPATH builds. > > This seemed a good approach when this test was first introduced, as > it apparently increased coverage for the less used and less tested > dependency-tracking modes. But in the log run it turned out the > approach was actually in part to brittle, causing some annoying s/to/too/ FYI, with this, all tests pass on Fedora 16. I haven't reviewed the actual content. From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 06 12:18:47 2012 Received: (at 10434) by debbugs.gnu.org; 6 Feb 2012 17:18:47 +0000 Received: from localhost ([127.0.0.1]:57423 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RuSDH-00034u-5B for submit@debbugs.gnu.org; Mon, 06 Feb 2012 12:18:47 -0500 Received: from mail-bk0-f44.google.com ([209.85.214.44]:55672) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RuSDE-00034g-8S for 10434@debbugs.gnu.org; Mon, 06 Feb 2012 12:18:45 -0500 Received: by bkbzt4 with SMTP id zt4so4721307bkb.3 for <10434@debbugs.gnu.org>; Mon, 06 Feb 2012 09:17:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:mime-version:to:cc:subject:references :in-reply-to:content-type:content-transfer-encoding; bh=EFQx42jbY1NJiYI3yojpN0WeueVr/emS0asK2atWHYY=; b=TfzZIFljX2AS643M+n6rpi/iFrAIX3iEn+1AzcUHp8EHODY1wwfqYwFA7CWBy+zUS6 m0f63o7w0eE3M5hG/Jpt1MMRNyrhiY71g60HyWxQsdFaRWM+kDofwfL5z3uCAsrVVsw+ oPvY8VM0HnkkCfkAwRznOMy28ft9e9UVoMReE= Received: by 10.204.141.15 with SMTP id k15mr8837549bku.132.1328548667417; Mon, 06 Feb 2012 09:17:47 -0800 (PST) Received: from [79.20.98.115] (host115-98-dynamic.20-79-r.retail.telecomitalia.it. [79.20.98.115]) by mx.google.com with ESMTPS id jd17sm47458187bkb.4.2012.02.06.09.17.44 (version=SSLv3 cipher=OTHER); Mon, 06 Feb 2012 09:17:46 -0800 (PST) Message-ID: <4F300B37.4050906@gmail.com> Date: Mon, 06 Feb 2012 18:17:43 +0100 From: Stefano Lattarini MIME-Version: 1.0 To: Jim Meyering Subject: Re: bug#10434: FAIL: depmod.tap 50 - tru64 [long VPATH] make & remake References: <87obujckam.fsf@rho.meyering.net> <4F055CEB.4020104@gmail.com> <877h16bk8h.fsf@rho.meyering.net> <4F2B03F2.4070503@gmail.com> <4F2B111D.7060105@lysator.liu.se> <4F2E814B.5090308@gmail.com> <87haz4qbop.fsf@rho.meyering.net> In-Reply-To: <87haz4qbop.fsf@rho.meyering.net> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Score: -2.6 (--) X-Debbugs-Envelope-To: 10434 Cc: Peter Rosin , automake-patches@gnu.org, 10434@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) Hi Jim, thanks for the feedback. On 02/06/2012 03:27 PM, Jim Meyering wrote: > Stefano Lattarini wrote: > > [SNIP] > >> This seemed a good approach when this test was first introduced, as >> it apparently increased coverage for the less used and less tested >> dependency-tracking modes. But in the log run it turned out the >> approach was actually in part to brittle, causing some annoying > > s/to/too/ > Consider this fixed. > FYI, with this, all tests pass on Fedora 16. > Thanks for the info; I must admit I had tested the patch there in advance ;-) > I haven't reviewed the actual content. > If you intend to review it later, take all the due time -- there's no hurry to apply this patch. Just let me know, so that I won't push it before you have had time do a review. Regards, Stefano From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 06 14:07:35 2012 Received: (at 10434) by debbugs.gnu.org; 6 Feb 2012 19:07:35 +0000 Received: from localhost ([127.0.0.1]:57537 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RuTuY-0005hv-Tb for submit@debbugs.gnu.org; Mon, 06 Feb 2012 14:07:35 -0500 Received: from mx.meyering.net ([88.168.87.75]:46443) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RuTuW-0005hm-6P for 10434@debbugs.gnu.org; Mon, 06 Feb 2012 14:07:33 -0500 Received: from rho.meyering.net (localhost.localdomain [127.0.0.1]) by rho.meyering.net (Acme Bit-Twister) with ESMTP id 8E455600A1; Mon, 6 Feb 2012 20:06:38 +0100 (CET) From: Jim Meyering To: Stefano Lattarini Subject: Re: bug#10434: FAIL: depmod.tap 50 - tru64 [long VPATH] make & remake In-Reply-To: <4F300B37.4050906@gmail.com> (Stefano Lattarini's message of "Mon, 06 Feb 2012 18:17:43 +0100") References: <87obujckam.fsf@rho.meyering.net> <4F055CEB.4020104@gmail.com> <877h16bk8h.fsf@rho.meyering.net> <4F2B03F2.4070503@gmail.com> <4F2B111D.7060105@lysator.liu.se> <4F2E814B.5090308@gmail.com> <87haz4qbop.fsf@rho.meyering.net> <4F300B37.4050906@gmail.com> Date: Mon, 06 Feb 2012 20:06:38 +0100 Message-ID: <87zkcvpyrl.fsf@rho.meyering.net> Lines: 31 MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 10434 Cc: Peter Rosin , automake-patches@gnu.org, 10434@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) Stefano Lattarini wrote: > Hi Jim, thanks for the feedback. > > On 02/06/2012 03:27 PM, Jim Meyering wrote: >> Stefano Lattarini wrote: >> >> [SNIP] > > >>> This seemed a good approach when this test was first introduced, as >>> it apparently increased coverage for the less used and less tested >>> dependency-tracking modes. But in the log run it turned out the >>> approach was actually in part to brittle, causing some annoying >> >> s/to/too/ >> > Consider this fixed. > >> FYI, with this, all tests pass on Fedora 16. >> > Thanks for the info; I must admit I had tested the patch there in > advance ;-) > >> I haven't reviewed the actual content. >> > If you intend to review it later, take all the due time -- there's > no hurry to apply this patch. Just let me know, so that I won't > push it before you have had time do a review. Thanks. I glanced through it, but cannot claim to do it justice in just 10 minutes. Looks like it'd take too long to come up to speed. I'll trust you on this one. From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 07 16:06:15 2012 Received: (at 10434) by debbugs.gnu.org; 7 Feb 2012 21:06:15 +0000 Received: from localhost ([127.0.0.1]:59458 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RusEw-0000LA-F0 for submit@debbugs.gnu.org; Tue, 07 Feb 2012 16:06:15 -0500 Received: from mail.lysator.liu.se ([130.236.254.3]:51446) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RusEr-0000Ky-Fx for 10434@debbugs.gnu.org; Tue, 07 Feb 2012 16:06:11 -0500 Received: from mail.lysator.liu.se (localhost [127.0.0.1]) by mail.lysator.liu.se (Postfix) with ESMTP id 2998340004; Tue, 7 Feb 2012 22:05:09 +0100 (CET) Received: from [10.176.115.214] (host-95-199-147-214.mobileonline.telia.com [95.199.147.214]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.lysator.liu.se (Postfix) with ESMTPSA id 5F27E40003; Tue, 7 Feb 2012 22:05:08 +0100 (CET) Message-ID: <4F319204.30209@lysator.liu.se> Date: Tue, 07 Feb 2012 22:05:08 +0100 From: Peter Rosin User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0) Gecko/20111222 Thunderbird/9.0.1 MIME-Version: 1.0 To: Stefano Lattarini Subject: Re: bug#10434: FAIL: depmod.tap 50 - tru64 [long VPATH] make & remake References: <87obujckam.fsf@rho.meyering.net> <4F055CEB.4020104@gmail.com> <877h16bk8h.fsf@rho.meyering.net> <4F2B03F2.4070503@gmail.com> <4F2B111D.7060105@lysator.liu.se> <4F2E814B.5090308@gmail.com> In-Reply-To: <4F2E814B.5090308@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV using ClamSMTP X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 10434 Cc: automake-patches@gnu.org, 10434@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) Stefano Lattarini skrev 2012-02-05 14:16: > On 02/02/2012 11:41 PM, Peter Rosin wrote: >> Stefano Lattarini skrev 2012-02-02 22:45: >>> Reference: >>> >>> >>> OK, the attached patch fixes the two spurious failures of GCC forced into >>> Tru64 mode. About time I'd say. >>> >>> But I'm not sure whether we should apply this without first testing it >>> on a real Tru64 compiler, lest we cause a real regression just to fix a >>> spurious failure. Thoughts? >> >> I just had a look at that test, and it seems like a very crappy test >> to me. I had some failures with cl, but figured it was the same as >> these Tru64 failures that I had seen flying past, and put it all on >> the back burner. But the test is destined to cause troubles if IIUC. >> >> It's just dead wrong to assume that feeding -M or -xM to the compiler >> (or whatever other random stuff depcomp might do) and not get an error >> is the same as dependencies magically appearing. Or do I read the >> test wrong? Please tell me that I do! >> > Unfortunately you read the test right. And in hindsight I must agree > with you: its approach is fundamentally flawed. > > So, what about the attached patch, that overhauls (and hopefully improve) > the coverage for automatic dependency tracking support? It is probably > possible to improve the patch even more (esp. w.r.t. optimizations for > speed), but that can be left for follow-up changes IMHO. > > I will push (to master) in 72 hours if there is no objection by then. Hi Stefano, This looks promising! Appart from the below inline nitpicking, your method to force a depmode doesn't really seem to work, possibly only when you also force another compiler, as shown by the below grep (after a non-libtool run with CC="cl- nologo"). $ grep "checking dependency style" tests/depcomp-*.log tests/depcomp-auto.log:checking dependency style of cl -nologo... msvc7msys tests/depcomp-auto.log:checking dependency style of cl -nologo... msvc7msys tests/depcomp-auto.log:checking dependency style of cl -nologo... msvc7msys tests/depcomp-auto.log:checking dependency style of cl -nologo... msvc7msys tests/depcomp-cpp.log:checking dependency style of gcc... gcc3 tests/depcomp-cpp.log:checking dependency style of gcc... gcc3 tests/depcomp-cpp.log:checking dependency style of gcc... gcc3 tests/depcomp-cpp.log:checking dependency style of gcc... gcc3 tests/depcomp-dashXmstdout.log:checking dependency style of gcc... gcc3 tests/depcomp-dashXmstdout.log:checking dependency style of gcc... gcc3 tests/depcomp-dashXmstdout.log:checking dependency style of gcc... gcc3 tests/depcomp-dashXmstdout.log:checking dependency style of gcc... gcc3 tests/depcomp-dashmstdout.log:checking dependency style of gcc... gcc3 tests/depcomp-dashmstdout.log:checking dependency style of gcc... gcc3 tests/depcomp-dashmstdout.log:checking dependency style of gcc... gcc3 tests/depcomp-dashmstdout.log:checking dependency style of gcc... gcc3 tests/depcomp-disabled.log:checking dependency style of cl -nologo... none tests/depcomp-disabled.log:checking dependency style of cl -nologo... none tests/depcomp-disabled.log:checking dependency style of cl -nologo... none tests/depcomp-disabled.log:checking dependency style of cl -nologo... none tests/depcomp-gcc.log:checking dependency style of gcc... gcc3 tests/depcomp-gcc.log:checking dependency style of gcc... gcc3 tests/depcomp-gcc.log:checking dependency style of gcc... gcc3 tests/depcomp-gcc.log:checking dependency style of gcc... gcc3 Over to the nitpicking part... > From 2008b6bd27bba6194856cb5a58eb8c5e700e35c8 Mon Sep 17 00:00:00 2001 > Message-Id: <2008b6bd27bba6194856cb5a58eb8c5e700e35c8.1328447619.git.stefano.lattarini@gmail.com> > From: Stefano Lattarini > Date: Fri, 3 Feb 2012 15:05:48 +0100 > Subject: [PATCH] tests: improve and rework tests on dependency tracking > > Fixes automake bug#10434. Suggestion by Peter Rosin. > > The 'depcomp.tap' test case worked by trying to unconditionally > force the compiler in use by the testsuite to use, one by one, *all* > the dependency modes known by the 'depcomp' script, and, for each > such forced mode that was compatible enough with said compiler not > to cause breakage in the basic compilation rules, checking that it > was *also* good enough not to break remake rules in VPATH builds. > > This seemed a good approach when this test was first introduced, as > it apparently increased coverage for the less used and less tested > dependency-tracking modes. But in the log run it turned out the > approach was actually in part to brittle, causing some annoying too (but I later saw that Jim said the same) > spurious failures (as with the Tru64 depmode forced on GCC, see > automake bug#10434), and partly too forgiving, since, for some of > the more corner-case dependency modes, the 'depcomp' script simply > reverts to silently disabling dependency tracking when an error is > encountered (this happened e.g., with the Tru64 depmode forced on > the Sun C compiler 5.9), so that a passing test means nothing, and > only gives a false sense of security. > > As Peter Rosin put it, "it's just dead wrong to assume that feeding > -M or -xM to the compiler (or whatever other random stuff 'depcomp' > might do) and not get an error is the same as dependencies magically > appearing". > > So we get rid of this wrong approach, and in the process proceed to > a complete overhaul of many of the tests on automatic dependency > tracking, extending the offered coverage and rationalizing their > organization. > > * tests/decomp.sh: New helper script, used by several new depcomp.sh > autogenerated tests. > * tests/gen-testsuite-part: Generate several tests based on the > new 'decomp.sh' script. Emit makefile code that declares their depcomp.sh again > dependency on that script, and that extends EXTRA_DIST in order > to distribute it. > * tests/depmod.tap: Remove. *snip* > diff --git a/.gitignore b/.gitignore > index 46607dc..c95a193 100644 > --- a/.gitignore > +++ b/.gitignore > @@ -53,6 +53,7 @@ Makefile > /tests/testsuite-part.am > /tests/*-w.tap > /tests/*-w.test > +/tests/depcomp-*.tap > /tests/*.dir > /tests/*.log > /tests/*.trs > diff --git a/tests/depcomp.sh b/tests/depcomp.sh > new file mode 100755 > index 0000000..147e8ca > --- /dev/null > +++ b/tests/depcomp.sh > @@ -0,0 +1,378 @@ *snip* > + $FGREP 'unknown directive' output && return 1 > + rm -f output > + # Checks for stray files possible left around by less common possibly > + # depmodes. > + find . -name '*.[ud]' | grep . && return 1 > + return 0 *snip* > + skip_row_ 2 -r "automatic dependency tracking couldn't be activated" > + else > + command_ok_ "$pfx generated $po files look correct" $MAKE grep-test > + r=ok \ > + && : "Some checks in the subdir." \ > + && $sleep \ > + && : "Ensure rebuild rules do really kick in." \ "Ensure rebuild rules really do kick in." > + && rewrite "$srcdir"/src/sub2/sub2foo.h echo 'choke me' \ > + && cd src \ > + && not $MAKE \ *snip* Cheers, Peter (still with a *very* sketchy Internet connection...) From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 07 16:40:12 2012 Received: (at 10434) by debbugs.gnu.org; 7 Feb 2012 21:40:12 +0000 Received: from localhost ([127.0.0.1]:59498 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Ruslo-0001Bt-3Q for submit@debbugs.gnu.org; Tue, 07 Feb 2012 16:40:12 -0500 Received: from mail.lysator.liu.se ([130.236.254.3]:55501) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Ruslk-0001Bi-H9 for 10434@debbugs.gnu.org; Tue, 07 Feb 2012 16:40:09 -0500 Received: from mail.lysator.liu.se (localhost [127.0.0.1]) by mail.lysator.liu.se (Postfix) with ESMTP id C3E8640005; Tue, 7 Feb 2012 22:39:06 +0100 (CET) Received: from [10.176.115.214] (host-95-199-147-214.mobileonline.telia.com [95.199.147.214]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.lysator.liu.se (Postfix) with ESMTPSA id 4841540004; Tue, 7 Feb 2012 22:39:06 +0100 (CET) Message-ID: <4F3199FF.2020501@lysator.liu.se> Date: Tue, 07 Feb 2012 22:39:11 +0100 From: Peter Rosin User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0) Gecko/20111222 Thunderbird/9.0.1 MIME-Version: 1.0 To: Stefano Lattarini Subject: Re: bug#10434: FAIL: depmod.tap 50 - tru64 [long VPATH] make & remake References: <87obujckam.fsf@rho.meyering.net> <4F055CEB.4020104@gmail.com> <877h16bk8h.fsf@rho.meyering.net> <4F2B03F2.4070503@gmail.com> <4F2B111D.7060105@lysator.liu.se> <4F2E814B.5090308@gmail.com> In-Reply-To: <4F2E814B.5090308@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV using ClamSMTP X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 10434 Cc: automake-patches@gnu.org, 10434@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) Stefano Lattarini skrev 2012-02-05 14:16: > On 02/02/2012 11:41 PM, Peter Rosin wrote: >> Stefano Lattarini skrev 2012-02-02 22:45: >>> Reference: >>> >>> >>> OK, the attached patch fixes the two spurious failures of GCC forced into >>> Tru64 mode. About time I'd say. >>> >>> But I'm not sure whether we should apply this without first testing it >>> on a real Tru64 compiler, lest we cause a real regression just to fix a >>> spurious failure. Thoughts? >> >> I just had a look at that test, and it seems like a very crappy test >> to me. I had some failures with cl, but figured it was the same as >> these Tru64 failures that I had seen flying past, and put it all on >> the back burner. But the test is destined to cause troubles if IIUC. >> >> It's just dead wrong to assume that feeding -M or -xM to the compiler >> (or whatever other random stuff depcomp might do) and not get an error >> is the same as dependencies magically appearing. Or do I read the >> test wrong? Please tell me that I do! >> > Unfortunately you read the test right. And in hindsight I must agree > with you: its approach is fundamentally flawed. > > So, what about the attached patch, that overhauls (and hopefully improve) > the coverage for automatic dependency tracking support? It is probably > possible to improve the patch even more (esp. w.r.t. optimizations for > speed), but that can be left for follow-up changes IMHO. > > I will push (to master) in 72 hours if there is no objection by then. > > Thanks, > Stefano *snip* > diff --git a/tests/depcomp.sh b/tests/depcomp.sh > new file mode 100755 > index 0000000..147e8ca > --- /dev/null > +++ b/tests/depcomp.sh > @@ -0,0 +1,378 @@ *snip* > +case $depmode in > + auto) > + cfg_deptrack=--enable-dependency-tracking ;; > + disabled) > + cfg_deptrack=--disable-dependency-tracking ;; > + *) > + # Sanity check: ensure the cache variable we force is truly > + # used by configure. > + $FGREP $cachevar configure \ > + || fatal_ "configure lacks required cache variable '$cachevar'" > + cfg_deptrack="cachevar=$depmode" ;; Here's the reason for failing to force the depmode, possibly. It works better with $cachevar > +esac > + > +cd_top > + *snip* From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 07 18:02:32 2012 Received: (at 10434) by debbugs.gnu.org; 7 Feb 2012 23:02:32 +0000 Received: from localhost ([127.0.0.1]:59577 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Ruu3U-0003uq-1q for submit@debbugs.gnu.org; Tue, 07 Feb 2012 18:02:32 -0500 Received: from mail-ee0-f44.google.com ([74.125.83.44]:60597) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Ruu3R-0003ud-Q2 for 10434@debbugs.gnu.org; Tue, 07 Feb 2012 18:02:30 -0500 Received: by eekc41 with SMTP id c41so4124530eek.3 for <10434@debbugs.gnu.org>; Tue, 07 Feb 2012 15:01:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:mime-version:to:cc:subject:references :in-reply-to:content-type:content-transfer-encoding; bh=CfEITNFb4YNO0GgWYeShRnA4TaTFVM3vpVh+QXe1GBY=; b=JALBtMj2K49rADeeReweHbteA95UIeut1mSeK5BhlpTQEChkajD3QKinFU1tlJ2GjX ne/Yrc9iRwaRR7N7npneMN4Et5i5jzTOWaIAN2qUwZUw9qNMxrfq8FU22D8OgWsOOkgD KpVqAQHD/4NOyRg5+5aZh93f7BczENPUrQGKI= Received: by 10.213.35.129 with SMTP id p1mr2393247ebd.19.1328655685989; Tue, 07 Feb 2012 15:01:25 -0800 (PST) Received: from [87.4.96.24] (host24-96-dynamic.4-87-r.retail.telecomitalia.it. [87.4.96.24]) by mx.google.com with ESMTPS id o49sm78728222eei.0.2012.02.07.15.01.23 (version=SSLv3 cipher=OTHER); Tue, 07 Feb 2012 15:01:24 -0800 (PST) Message-ID: <4F31AD42.7020505@gmail.com> Date: Wed, 08 Feb 2012 00:01:22 +0100 From: Stefano Lattarini MIME-Version: 1.0 To: Peter Rosin Subject: Re: bug#10434: FAIL: depmod.tap 50 - tru64 [long VPATH] make & remake References: <87obujckam.fsf@rho.meyering.net> <4F055CEB.4020104@gmail.com> <877h16bk8h.fsf@rho.meyering.net> <4F2B03F2.4070503@gmail.com> <4F2B111D.7060105@lysator.liu.se> <4F2E814B.5090308@gmail.com> <4F3199FF.2020501@lysator.liu.se> In-Reply-To: <4F3199FF.2020501@lysator.liu.se> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Score: -2.6 (--) X-Debbugs-Envelope-To: 10434 Cc: automake-patches@gnu.org, 10434@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) Hi Peter, thanks for the invaluable feedback. On 02/07/2012 10:05 PM, Peter Rosin wrote: > Stefano Lattarini skrev 2012-02-05 14:16: > >> So, what about the attached patch, that overhauls (and hopefully improve) >> the coverage for automatic dependency tracking support? It is probably >> possible to improve the patch even more (esp. w.r.t. optimizations for >> speed), but that can be left for follow-up changes IMHO. >> >> I will push (to master) in 72 hours if there is no objection by then. > > Hi Stefano, > > This looks promising! > > Appart from the below inline nitpicking, your method to force a depmode > doesn't really seem to work, possibly only when you also force another > compiler, as shown by the below grep (after a non-libtool run with > CC="cl- nologo"). > Ouch (but then I see you found out and reported the reason for this below -- thanks!). > Over to the nitpicking part... > > [SNIP well-spotted nitpicks] > Consider all of those fixed. Thanks. >> diff --git a/tests/depcomp.sh b/tests/depcomp.sh >> new file mode 100755 >> index 0000000..147e8ca >> --- /dev/null >> +++ b/tests/depcomp.sh >> @@ -0,0 +1,378 @@ > > *snip* > >> +case $depmode in >> + auto) >> + cfg_deptrack=--enable-dependency-tracking ;; >> + disabled) >> + cfg_deptrack=--disable-dependency-tracking ;; >> + *) >> + # Sanity check: ensure the cache variable we force is truly >> + # used by configure. >> + $FGREP $cachevar configure \ >> + || fatal_ "configure lacks required cache variable '$cachevar'" >> + cfg_deptrack="cachevar=$depmode" ;; > > Here's the reason for failing to force the depmode, possibly. > > It works better with $cachevar > Well spotted! (and I feel like a moron now). To make amend, I've squashed the diff below into 'depmod.sh' (this would have caught the blunder right away). @@ -262,12 +262,15 @@ test -f build-aux/depcomp \ case $depmode in auto) + displayed_depmode='.*' cfg_deptrack=--enable-dependency-tracking ;; disabled) + displayed_depmode=none cfg_deptrack=--disable-dependency-tracking ;; *) # Sanity check: ensure the cache variable we force is truly # used by configure. $FGREP $cachevar configure \ || fatal_ "configure lacks required cache variable '$cachevar'" + displayed_depmode="(cached) $depmode" cfg_deptrack="cachevar=$depmode" ;; @@ -318,7 +321,15 @@ do_test () ;; esac - command_ok_ "$pfx configure" "$srcdir"/configure $cfg_deptrack ${1+"$@"} + command_ok_ \ + "$pfx configure" \ + "$srcdir/configure" $cfg_deptrack ${1+"$@"} >stdout + cat stdout + + command_ok_ \ + "$pfx right depmode selected" \ + grep "^checking dependency style .*\.\.\. $displayed_depmode$" stdout + command_ok_ "$pfx simple make" make_ok # Some bugs in VPATH builds only kick in during a rebuild. command_ok_ "$pfx clean & rebuild" eval '$MAKE clean && make_ok' I will push the patch by tomorrow, barring objections. Thanks, Stefano From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 07 18:30:29 2012 Received: (at 10434) by debbugs.gnu.org; 7 Feb 2012 23:30:29 +0000 Received: from localhost ([127.0.0.1]:59595 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RuuUW-0004Yu-Lb for submit@debbugs.gnu.org; Tue, 07 Feb 2012 18:30:28 -0500 Received: from mail.lysator.liu.se ([130.236.254.3]:53630) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1RuuUU-0004Yk-RJ for 10434@debbugs.gnu.org; Tue, 07 Feb 2012 18:30:28 -0500 Received: from mail.lysator.liu.se (localhost [127.0.0.1]) by mail.lysator.liu.se (Postfix) with ESMTP id 3841440004; Wed, 8 Feb 2012 00:29:26 +0100 (CET) Received: from [192.168.0.150] (h57n3fls301o1095.telia.com [81.230.178.57]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.lysator.liu.se (Postfix) with ESMTPSA id DB7AE40003; Wed, 8 Feb 2012 00:29:25 +0100 (CET) Message-ID: <4F31B3D1.1010105@lysator.liu.se> Date: Wed, 08 Feb 2012 00:29:21 +0100 From: Peter Rosin User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0) Gecko/20111222 Thunderbird/9.0.1 MIME-Version: 1.0 To: Stefano Lattarini Subject: Re: bug#10434: FAIL: depmod.tap 50 - tru64 [long VPATH] make & remake References: <87obujckam.fsf@rho.meyering.net> <4F055CEB.4020104@gmail.com> <877h16bk8h.fsf@rho.meyering.net> <4F2B03F2.4070503@gmail.com> <4F2B111D.7060105@lysator.liu.se> <4F2E814B.5090308@gmail.com> <4F3199FF.2020501@lysator.liu.se> <4F31AD42.7020505@gmail.com> In-Reply-To: <4F31AD42.7020505@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV using ClamSMTP X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 10434 Cc: automake-patches@gnu.org, 10434@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) Stefano Lattarini skrev 2012-02-08 00:01: > Hi Peter, thanks for the invaluable feedback. Thanks for the appreciation, but "invaluable" is perhaps a bit over the top... > On 02/07/2012 10:05 PM, Peter Rosin wrote: >> Stefano Lattarini skrev 2012-02-05 14:16: >>> +case $depmode in >>> + auto) >>> + cfg_deptrack=--enable-dependency-tracking ;; >>> + disabled) >>> + cfg_deptrack=--disable-dependency-tracking ;; >>> + *) >>> + # Sanity check: ensure the cache variable we force is truly >>> + # used by configure. >>> + $FGREP $cachevar configure \ >>> + || fatal_ "configure lacks required cache variable '$cachevar'" >>> + cfg_deptrack="cachevar=$depmode" ;; >> >> Here's the reason for failing to force the depmode, possibly. >> >> It works better with $cachevar >> > Well spotted! (and I feel like a moron now). To make amend, I've squashed > the diff below into 'depmod.sh' (this would have caught the blunder right depcomp.sh > away). > > @@ -262,12 +262,15 @@ test -f build-aux/depcomp \ > > case $depmode in > auto) > + displayed_depmode='.*' > cfg_deptrack=--enable-dependency-tracking ;; > disabled) > + displayed_depmode=none > cfg_deptrack=--disable-dependency-tracking ;; > *) > # Sanity check: ensure the cache variable we force is truly > # used by configure. > > $FGREP $cachevar configure \ > || fatal_ "configure lacks required cache variable '$cachevar'" > + displayed_depmode="(cached) $depmode" > cfg_deptrack="cachevar=$depmode" ;; > @@ -318,7 +321,15 @@ do_test () > ;; > esac > > - command_ok_ "$pfx configure" "$srcdir"/configure $cfg_deptrack ${1+"$@"} > + command_ok_ \ > + "$pfx configure" \ > + "$srcdir/configure" $cfg_deptrack ${1+"$@"} >stdout > + cat stdout > + > + command_ok_ \ > + "$pfx right depmode selected" \ > + grep "^checking dependency style .*\.\.\. $displayed_depmode$" stdout > + > command_ok_ "$pfx simple make" make_ok > # Some bugs in VPATH builds only kick in during a rebuild. > command_ok_ "$pfx clean & rebuild" eval '$MAKE clean && make_ok' Remember to also bump plan_... > I will push the patch by tomorrow, barring objections. And thanks for this new depcomp testing infrastructure! Cheers, Peter From debbugs-submit-bounces@debbugs.gnu.org Wed Feb 08 04:09:41 2012 Received: (at 10434) by debbugs.gnu.org; 8 Feb 2012 09:09:41 +0000 Received: from localhost ([127.0.0.1]:59969 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Rv3X3-0001yZ-Hr for submit@debbugs.gnu.org; Wed, 08 Feb 2012 04:09:41 -0500 Received: from mail-bk0-f44.google.com ([209.85.214.44]:57340) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Rv3X1-0001yH-6P; Wed, 08 Feb 2012 04:09:39 -0500 Received: by bkuw12 with SMTP id w12so245536bku.3 for ; Wed, 08 Feb 2012 01:08:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:mime-version:to:cc:subject:references :in-reply-to:content-type:content-transfer-encoding; bh=9ETOeQQgtI8lSEW+pppbwpsVYPJc8bvCT3NhUHbncRQ=; b=Y82pQguWZ3ngfwrAx92rp/KpiEaDpzSn2vaKJbNiBHFOyqFAK+oYswFLrIFZHKtoOx yiR/CdiHGl7n173GSdmRNJPryiw/rjqgD0M6TpSTxrYfG1/Zu1lJDd290TsykBcQ0c9p G267v9hj2t5958NxF4yQc+hJ23MQldWFytAjw= Received: by 10.204.129.208 with SMTP id p16mr12068747bks.131.1328692112621; Wed, 08 Feb 2012 01:08:32 -0800 (PST) Received: from [82.60.30.74] (host74-30-dynamic.60-82-r.retail.telecomitalia.it. [82.60.30.74]) by mx.google.com with ESMTPS id jd17sm2369783bkb.4.2012.02.08.01.08.29 (version=SSLv3 cipher=OTHER); Wed, 08 Feb 2012 01:08:31 -0800 (PST) Message-ID: <4F323B85.40304@gmail.com> Date: Wed, 08 Feb 2012 10:08:21 +0100 From: Stefano Lattarini MIME-Version: 1.0 To: Peter Rosin Subject: Re: bug#10434: FAIL: depmod.tap 50 - tru64 [long VPATH] make & remake References: <87obujckam.fsf@rho.meyering.net> <4F055CEB.4020104@gmail.com> <877h16bk8h.fsf@rho.meyering.net> <4F2B03F2.4070503@gmail.com> <4F2B111D.7060105@lysator.liu.se> <4F2E814B.5090308@gmail.com> <4F3199FF.2020501@lysator.liu.se> <4F31AD42.7020505@gmail.com> <4F31B3D1.1010105@lysator.liu.se> In-Reply-To: <4F31B3D1.1010105@lysator.liu.se> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Score: -2.6 (--) X-Debbugs-Envelope-To: 10434 Cc: automake-patches@gnu.org, 10434@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) tags 10434 + patch close 10434 thanks On 02/08/2012 12:29 AM, Peter Rosin wrote: > Stefano Lattarini skrev 2012-02-08 00:01: >> Hi Peter, thanks for the invaluable feedback. > > Thanks for the appreciation, but "invaluable" is perhaps a bit over > the top... > Not for what concerns this patch IMHO. > [SNIP] > > Remember to also bump plan_... > I had done that yesterday already (after a complain by 'depcomp-lt-auto.tap' that I was making it run too many tests ;-) Patch pushed now. I'm thus closing this bug report. Regards, Stefano From unknown Sat Sep 20 12:00:43 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Wed, 07 Mar 2012 12:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator