From debbugs-submit-bounces@debbugs.gnu.org Wed Oct 15 22:57:50 2014 Received: (at submit) by debbugs.gnu.org; 16 Oct 2014 02:57:50 +0000 Received: from localhost ([127.0.0.1]:45037 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XebG9-0004Nz-UV for submit@debbugs.gnu.org; Wed, 15 Oct 2014 22:57:50 -0400 Received: from eggs.gnu.org ([208.118.235.92]:49729) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XebG6-0004Nq-QN for submit@debbugs.gnu.org; Wed, 15 Oct 2014 22:57:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XebG1-0006u9-AR for submit@debbugs.gnu.org; Wed, 15 Oct 2014 22:57:46 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:33631) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XebG1-0006td-7K for submit@debbugs.gnu.org; Wed, 15 Oct 2014 22:57:41 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50842) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XebFw-0004KE-Qu for bug-automake@gnu.org; Wed, 15 Oct 2014 22:57:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XebFs-0006ej-EH for bug-automake@gnu.org; Wed, 15 Oct 2014 22:57:36 -0400 Received: from out4-smtp.messagingengine.com ([66.111.4.28]:38399) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XebFs-0006d4-5a for bug-automake@gnu.org; Wed, 15 Oct 2014 22:57:32 -0400 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by gateway2.nyi.internal (Postfix) with ESMTP id 3515B20814 for ; Wed, 15 Oct 2014 22:57:30 -0400 (EDT) Received: from web5 ([10.202.2.215]) by compute3.internal (MEProxy); Wed, 15 Oct 2014 22:57:30 -0400 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=iSKUNK.ORG; h= message-id:x-sasl-enc:from:to:mime-version :content-transfer-encoding:content-type:subject:date; s=mesmtp; bh=fQKrZzci1wSp7qAg38aXUXtqRts=; b=Vl/ImC+5FZ+jPgvCGGU64VJZpXqB NAhcEXvs76ieASEsNkAVdUDEMGJietZnohBQPsuQFVTA4JKv8d7IQRUv7kM/ZYcD FDQLyRgck58YewJqiLzRQuV/4QfGNuVGWPRwBYiPI0AJBR7NbQDDqh8+AMDemu6H pCyPu89X7T7I/5w= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=message-id:x-sasl-enc:from:to :mime-version:content-transfer-encoding:content-type:subject :date; s=smtpout; bh=fQKrZzci1wSp7qAg38aXUXtqRts=; b=Y2F5M5TJoWb Fdb7mc3j0/e+YXL+I0RQgMg0ZHpWGyeH3pmcmjIM2N/uJorSq4kDwGxZEttIL2ZO Plw4kQVbeSzPJBhPou1Su25/f5zdN+oLkIgUUOueQkvZCWt7ikU8yDNb4jYS4+hT Djz6Selg3FA/fY+L6bm+FKiFEsyYYhdM= Received: by web5.nyi.internal (Postfix, from userid 99) id 02045B424A7; Wed, 15 Oct 2014 22:57:29 -0400 (EDT) Message-Id: <1413428249.1886678.179543997.6435D1A3@webmail.messagingengine.com> X-Sasl-Enc: YbLXxZchq5au+/8MqNAtbsPVQ5cvMDUFiyhfHOmp7Ee9 1413428249 From: "Daniel Richard G." To: bug-automake@gnu.org MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain X-Mailer: MessagingEngine.com Webmail Interface - html Subject: Problem with am__is_gnu_make: Arg list too long Date: Wed, 15 Oct 2014 22:57:29 -0400 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.1 (----) Hello gnus, I was hacking on libarchive for compatibility with an older Tru64 system, in conjuction with Automake 1.14.1, when I encountered a problem during "gmake check": [...] gmake check-TESTS gmake[2]: Entering directory `/tmp/libarchive-3.1.2/_build' gmake[3]: Entering directory `/tmp/libarchive-3.1.2/_build' ../build/autoconf/test-driver: line 107: 23320 Segmentation fault "$@"= >$log_file 2>&1 FAIL: libarchive_test FAIL: bsdtar_test FAIL: bsdcpio_test FAIL: bsdcat_test gmake[3]: execvp: bash: Arg list too long gmake[3]: *** [test-suite.log] Error 127 gmake[3]: Leaving directory `/tmp/libarchive-3.1.2/_build' gmake[2]: *** [check-TESTS] Error 2 gmake[2]: Leaving directory `/tmp/libarchive-3.1.2/_build' gmake[1]: *** [check-am] Error 2 gmake[1]: Leaving directory `/tmp/libarchive-3.1.2/_build' gmake: *** [check] Error 2 Where was that "Arg list too long" error coming from? I removed some leading "@" specifiers from some makefile recipe lines, and got this: [...] FAIL: libarchive_test FAIL: bsdtar_test FAIL: bsdcpio_test FAIL: bsdcat_test bases=3D'libarchive_test.log bsdtar_test.log bsdcpio_test.log bsdcat_test.l= og'; bases=3D`for i in $bases; do echo $i; done | sed 's/\.log$//'`; bases= =3D`echo $bases`; \ am__f_ok () { test -f "$1" && test -r "$1"; }; \ redo_bases=3D`for i in $bases; do \ am__f_ok $i.trs && am__f_ok $i.log || echo $i; \ done`; \ if test -n "$redo_bases"; then \ redo_logs=3D`for i in $redo_bases; do echo $i.log; done`; \ redo_results=3D`for i in $redo_bases; do echo $i.trs; done`; \ if (target_option=3Dn; case ${target_option-} in ?) ;; *) echo "am__make= _running_with_option: internal error: invalid" "target option '${target_opt= ion-}' specified" >&2; exit 1;; esac; has_opt=3Dno; sane_makeflags=3D$MAKEF= LAGS; if test -n ' Makefile cat/.deps/bsdcat-bsdcat.Po cat/.deps/bsdcat-cmd= line.Po cat/test/.deps/bsdcat_test-main.Po cat/test/.deps/bsdcat_test-test_= 0.Po cat/test/.deps/bsdcat_test-test_empty_gz.Po cat/test/.deps/bsdcat_test= -test_empty_lz4.Po cat/test/.deps/bsdcat_test-test_empty_xz.Po cat/test/.de= ps/bsdcat_test-test_error.Po cat/test/.deps/bsdcat_test-test_error_mixed.Po= cat/test/.deps/bsdcat_test-test_expand_Z.Po cat/test/.deps/bsdcat_test-tes= t_expand_bz2.Po cat/test/.deps/bsdcat_test-test_expand_gz.Po cat/test/.deps= /bsdcat_test-test_expand_lz4.Po cat/test/.deps/bsdcat_test-test_expand_mixe= d.Po cat/test/.deps/bsdcat_test-test_expand_plain.Po cat/test/.deps/bsdcat_= test-test_expand_xz.Po cat/test/.deps/bsdcat_test-test_help.Po cat/test/.de= ps/bsdcat_test-test_version.Po cpio/.deps/bsdcpio-cmdline.Po cpio/.deps/bsd= cpio-cpio.Po cpio/.deps/bsdcpio-cpio_windows.Po cpio/.deps/bsdcpio_test-cmd= line.Po cpio/test/.deps/bsdcpio_test-main.Po cpio/test/.deps/bsdcpio_test-t= est_0.Po cpio/test/.deps/bsdcpio_test-test_basic.Po [...] That last "if test -n" statement includes what appears to be every *.Po and *.Plo file in the entire project---not helped, perhaps, by the fact that this project has a bazillion source files and only a single top- level makefile. Not only that, the output showed *two* full instances of this list in the same recipe line, presumably resulting from two expansions of the same problematic construct. This appeared to be $(am__make_dryrun) at first, but nested within was $(am__make_running_with_option), and in turn $(am__is_gnu_make): am__is_gnu_make =3D test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' To confirm that this was the problem, I added the following rule to the makefile... print-makefile-list: : $(MAKEFILE_LIST) ...and then tried $ gmake print-makefile-list : Makefile cat/.deps/bsdcat-bsdcat.Po cat/.deps/bsdcat-cmdline.Po cat/= test/.deps/bsdcat_test-main.Po cat/test/.deps/bsdcat_test-test_0.Po cat/tes= t/.deps/bsdcat_test-test_empty_gz.Po [...] Yep, those *.Po/*.Plo files are makefile fragments that get include'd, so it makes sense that we end up with a huge MAKEFILE_LIST. If I change am__is_gnu_make to... am__is_gnu_make =3D test -n '$(MAKE_VERSION)' && test -n '$(MAKELEVEL)' ...given that MAKE_VERSION appears to be a shorter example of a GNU-Make- only variable, then things work as they should: [...] gmake[5]: Nothing to be done for `all-am'. gmake[5]: Leaving directory `/tmp/libarchive-3.1.2/_build' gmake[4]: Leaving directory `/tmp/libarchive-3.1.2/_build' =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D Testsuite summary for libarchive 3.1.2 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D # TOTAL: 4 # PASS: 0 # SKIP: 0 # XFAIL: 0 # FAIL: 4 # XPASS: 0 # ERROR: 0 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D See ./test-suite.log Please report to libarchive-discuss@googlegroups.com =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D gmake[3]: *** [test-suite.log] Error 1 gmake[3]: Leaving directory `/tmp/libarchive-3.1.2/_build' gmake[2]: *** [check-TESTS] Error 2 gmake[2]: Leaving directory `/tmp/libarchive-3.1.2/_build' gmake[1]: *** [check-am] Error 2 gmake[1]: Leaving directory `/tmp/libarchive-3.1.2/_build' gmake: *** [check] Error 2 (At least as far as the test infrastructure is concerned!) --Daniel --=20 Daniel Richard G. || skunk@iSKUNK.ORG My ASCII-art .sig got a bad case of Times New Roman. From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 19 09:16:47 2014 Received: (at 18744) by debbugs.gnu.org; 19 Dec 2014 14:16:47 +0000 Received: from localhost ([127.0.0.1]:50950 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Y1yMI-0002JP-CK for submit@debbugs.gnu.org; Fri, 19 Dec 2014 09:16:47 -0500 Received: from mail-wg0-f52.google.com ([74.125.82.52]:53022) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Y1yMF-0002JH-U9 for 18744@debbugs.gnu.org; Fri, 19 Dec 2014 09:16:44 -0500 Received: by mail-wg0-f52.google.com with SMTP id x12so1428902wgg.25 for <18744@debbugs.gnu.org>; Fri, 19 Dec 2014 06:16:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:mime-version:to:subject:references:in-reply-to :content-type:content-transfer-encoding; bh=fbosFrFg+nBGhnlXDE9XMdobjGvRxRVe0/g9SGoMjEE=; b=oYpC4KG3SXN9bhWwxh4/RUOKB7baw19iKQO+P/CvERGinrwR2E1PbBNFXdr4zvbRpn OfRJEu4BWQogvTMDTpavfCJ4TMMcwWji9FOquhxFKeWyv/xTubb2NIJnSE85fEkjCfvU qYFF3Rmxgb2dZnWDwzcDQWpO+OPqr/X0/uxzHBUtup5IBp6eTfzPOC4v1JYc1rIyHFAX GIenrywbt+ZQodyDO41Ivrzx0tTLF4wNfc0PB6eA0DTQENtJ9TK8T4eBylblJpLxWGTD XQRA8dfSwqDjgdPegGfhTjtBoXryYf5VazSTmzkFk3CkB2RuLDG/EixjZJviBo/gkFE8 5L+A== X-Received: by 10.194.57.43 with SMTP id f11mr14848466wjq.6.1418998603225; Fri, 19 Dec 2014 06:16:43 -0800 (PST) Received: from [192.168.0.101] (host159-94-dynamic.7-79-r.retail.telecomitalia.it. [79.7.94.159]) by mx.google.com with ESMTPSA id n3sm2513757wiw.5.2014.12.19.06.16.42 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 19 Dec 2014 06:16:42 -0800 (PST) Message-ID: <54943349.8090605@gmail.com> Date: Fri, 19 Dec 2014 15:16:41 +0100 From: Stefano Lattarini MIME-Version: 1.0 To: "Daniel Richard G." , 18744@debbugs.gnu.org Subject: Re: bug#18744: Problem with am__is_gnu_make: Arg list too long References: <1413428249.1886678.179543997.6435D1A3@webmail.messagingengine.com> In-Reply-To: <1413428249.1886678.179543997.6435D1A3@webmail.messagingengine.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 18744 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Reference: http://debbugs.gnu.org/18744 On 10/16/2014 04:57 AM, Daniel Richard G. wrote: > Hello gnus, > > I was hacking on libarchive for compatibility with an older Tru64 > system, in conjuction with Automake 1.14.1, when I encountered a problem > during "gmake check": > > [...] > gmake check-TESTS > gmake[2]: Entering directory `/tmp/libarchive-3.1.2/_build' > gmake[3]: Entering directory `/tmp/libarchive-3.1.2/_build' > ../build/autoconf/test-driver: line 107: 23320 Segmentation fault "$@" >$log_file 2>&1 > FAIL: libarchive_test > FAIL: bsdtar_test > FAIL: bsdcpio_test > FAIL: bsdcat_test > gmake[3]: execvp: bash: Arg list too long > gmake[3]: *** [test-suite.log] Error 127 > gmake[3]: Leaving directory `/tmp/libarchive-3.1.2/_build' > gmake[2]: *** [check-TESTS] Error 2 > gmake[2]: Leaving directory `/tmp/libarchive-3.1.2/_build' > gmake[1]: *** [check-am] Error 2 > gmake[1]: Leaving directory `/tmp/libarchive-3.1.2/_build' > gmake: *** [check] Error 2 > > > Where was that "Arg list too long" error coming from? I removed some > leading "@" specifiers from some makefile recipe lines, and got this: > > [...] > FAIL: libarchive_test > FAIL: bsdtar_test > FAIL: bsdcpio_test > FAIL: bsdcat_test > bases='libarchive_test.log bsdtar_test.log bsdcpio_test.log bsdcat_test.log'; bases=`for i in $bases; do echo $i; done | sed 's/\.log$//'`; bases=`echo $bases`; \ > am__f_ok () { test -f "$1" && test -r "$1"; }; \ > redo_bases=`for i in $bases; do \ > am__f_ok $i.trs && am__f_ok $i.log || echo $i; \ > done`; \ > if test -n "$redo_bases"; then \ > redo_logs=`for i in $redo_bases; do echo $i.log; done`; \ > redo_results=`for i in $redo_bases; do echo $i.trs; done`; \ > if (target_option=n; case ${target_option-} in ?) ;; *) echo "am__make_running_with_option: internal error: invalid" "target option '${target_option-}' specified" >&2; exit 1;; esac; has_opt=no; sane_makeflags=$MAKEFLAGS; if test -n ' Makefile cat/.deps/bsdcat-bsdcat.Po cat/.deps/bsdcat-cmdline.Po cat/test/.deps/bsdcat_test-main.Po cat/test/.deps/bsdcat_test-test_0.Po cat/test/.deps/bsdcat_test-test_empty_gz.Po cat/test/.deps/bsdcat_test-test_empty_lz4.Po cat/test/.deps/bsdcat_test-test_empty_xz.Po cat/test/.deps/bsdcat_test-test_error.Po cat/test/.deps/bsdcat_test-test_error_mixed.Po cat/test/.deps/bsdcat_test-test_expand_Z.Po cat/test/.deps/bsdcat_test-test_expand_bz2.Po cat/test/.deps/bsdcat_test-test_expand_gz.Po cat/test/.deps/bsdcat_test-test_expand_lz4.Po cat/test/.deps/bsdcat_test-test_expand_mixed.Po cat/test/.deps/bsdcat_test-test_expand_plain.Po cat/test/.deps/bsdcat_test-test_expand_xz.Po cat/test/.deps/bsdcat_test-test_help.Po cat/test/.deps/bsdcat_test-test_version. Po cpio/.deps/bsdcpio-cmdline.Po cpio/.deps/bsdcpio-cpio.Po cpio/.deps/bsdcpio-cpio_windows.Po cpio/.deps/bsdcpio_test-cmdline.Po cpio/test/.deps/bsdcpio_test-main.Po cpio/test/.deps/bsdcpio_test-test_0.Po cpio/test/.deps/bsdcpio_test-test_basic.Po [...] > > > That last "if test -n" statement includes what appears to be every *.Po > and *.Plo file in the entire project---not helped, perhaps, by the fact > that this project has a bazillion source files and only a single top- > level makefile. Not only that, the output showed *two* full instances of > this list in the same recipe line, presumably resulting from two > expansions of the same problematic construct. > > This appeared to be $(am__make_dryrun) at first, but nested within was > $(am__make_running_with_option), and in turn $(am__is_gnu_make): > > am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' > > To confirm that this was the problem, I added the following rule to the > makefile... > > print-makefile-list: > : $(MAKEFILE_LIST) > > ...and then tried > > $ gmake print-makefile-list > : Makefile cat/.deps/bsdcat-bsdcat.Po cat/.deps/bsdcat-cmdline.Po cat/test/.deps/bsdcat_test-main.Po cat/test/.deps/bsdcat_test-test_0.Po cat/test/.deps/bsdcat_test-test_empty_gz.Po [...] > > Yep, those *.Po/*.Plo files are makefile fragments that get include'd, > so it makes sense that we end up with a huge MAKEFILE_LIST. If I change > am__is_gnu_make to... > > am__is_gnu_make = test -n '$(MAKE_VERSION)' && test -n '$(MAKELEVEL)' > > ...given that MAKE_VERSION appears to be a shorter example of a GNU-Make- > only variable, then things work as they should: > > [...] > gmake[5]: Nothing to be done for `all-am'. > gmake[5]: Leaving directory `/tmp/libarchive-3.1.2/_build' > gmake[4]: Leaving directory `/tmp/libarchive-3.1.2/_build' > ============================================================================ > Testsuite summary for libarchive 3.1.2 > ============================================================================ > # TOTAL: 4 > # PASS: 0 > # SKIP: 0 > # XFAIL: 0 > # FAIL: 4 > # XPASS: 0 > # ERROR: 0 > ============================================================================ > See ./test-suite.log > Please report to libarchive-discuss@googlegroups.com > ============================================================================ > gmake[3]: *** [test-suite.log] Error 1 > gmake[3]: Leaving directory `/tmp/libarchive-3.1.2/_build' > gmake[2]: *** [check-TESTS] Error 2 > gmake[2]: Leaving directory `/tmp/libarchive-3.1.2/_build' > gmake[1]: *** [check-am] Error 2 > gmake[1]: Leaving directory `/tmp/libarchive-3.1.2/_build' > gmake: *** [check] Error 2 > > > (At least as far as the test infrastructure is concerned!) > > > --Daniel > > Thanks for the report. I agree with the spirit of your fix, but unfortunately the $(MAKE_VERSION) macro seem present also in non-GNU implementations of make (e.g., FreeBSD's). Let me look for a better variable... From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 19 12:12:21 2014 Received: (at 18744) by debbugs.gnu.org; 19 Dec 2014 17:12:21 +0000 Received: from localhost ([127.0.0.1]:51741 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Y216C-0008DW-Fi for submit@debbugs.gnu.org; Fri, 19 Dec 2014 12:12:20 -0500 Received: from mail-wg0-f41.google.com ([74.125.82.41]:49886) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Y2168-0008DE-N5; Fri, 19 Dec 2014 12:12:17 -0500 Received: by mail-wg0-f41.google.com with SMTP id y19so1895962wgg.0; Fri, 19 Dec 2014 09:12:16 -0800 (PST) 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; bh=xof+WaH8YTAuv8OvRVQxFWQDvyz4kkpmqamJ2tcAtco=; b=loNfc+4P12f+l0AMHFrGpVmMRpG1PMvjIu2VklMVHe9I3zOw94iApBGBIU58hjp1aO qHdaUOkNLKm5LfxtSH72uvWxcptCeCiSF7gLqpsUe6YyOtdrLj3yG8y7e8OWJUHii7+p Ora7p00BV1ht74af1sfo6APOUeuEwJi2HrLbRTuC0h/qUt7lhIN5C5pZcHo/aPniKHfw cjqil7S3lGLvSlv/G/8NjcgNSf8JO9WnE/lm1MPLZvo+jXexkXX/76C5DH5BJ16wwWrH hy5LT9qTiUkcuzGRT15ISD2oTq27DHa1a0oxRWq084At79Wide9CvLSfHvW0f0ryzwVV jW0A== X-Received: by 10.194.19.131 with SMTP id f3mr16374573wje.46.1419009136175; Fri, 19 Dec 2014 09:12:16 -0800 (PST) Received: from [192.168.0.101] (host159-94-dynamic.7-79-r.retail.telecomitalia.it. [79.7.94.159]) by mx.google.com with ESMTPSA id mo12sm13388543wjc.35.2014.12.19.09.12.15 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 19 Dec 2014 09:12:15 -0800 (PST) Message-ID: <54945C6E.3010506@gmail.com> Date: Fri, 19 Dec 2014 18:12:14 +0100 From: Stefano Lattarini MIME-Version: 1.0 To: "Daniel Richard G." , 18744@debbugs.gnu.org Subject: Re: bug#18744: Problem with am__is_gnu_make: Arg list too long References: <1413428249.1886678.179543997.6435D1A3@webmail.messagingengine.com> In-Reply-To: <1413428249.1886678.179543997.6435D1A3@webmail.messagingengine.com> Content-Type: multipart/mixed; boundary="------------070508070705050701000101" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 18744 Cc: "automake-patches@gnu.org" X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) This is a multi-part message in MIME format. --------------070508070705050701000101 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit tags 18744 + patch close 18744 stop Reference: http://debbugs.gnu.org/18744 Should be fixed by the attached patch. Thanks, Stefano --------------070508070705050701000101 Content-Type: text/x-patch; name="0001-Improve-detection-of-GNU-make-avoiding-Arg-list-too-.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0001-Improve-detection-of-GNU-make-avoiding-Arg-list-too-.pa"; filename*1="tch" >From ff40472d4f5ad85c27c6f5a9c5dc2beaeca41c85 Mon Sep 17 00:00:00 2001 Message-Id: From: Stefano Lattarini Date: Fri, 19 Dec 2014 15:10:09 +0100 Subject: [PATCH] Improve detection of GNU make, avoiding "Arg list too long" errors. Such errors could take place when the main makefile included too many sub-makefiles, making $(MAKEFILE_LIST) too long and causing the recipes $(am__is_gnu_make) to exceed the shell's command-line length limits. This is not a theoretical issue: it could happen for projects having lots of C/C++ sources and using automatic dependency tracking, which created an included .Po sub-makefile for each of such sources. Fixes http://debbugs.gnu.org/18744 * lib/am/header-vars.am (am__is_gnu_make): Fix the logic to avoid the use of $(MAKEFILE_LIST). * NEWS: Update. Signed-off-by: Stefano Lattarini --- NEWS | 5 +++++ lib/am/header-vars.am | 35 +++++++++++++++++++++++++++++++---- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/NEWS b/NEWS index 626d295..9f35bbc 100644 --- a/NEWS +++ b/NEWS @@ -111,6 +111,11 @@ New in 1.14.2: - The expansion of AM_INIT_AUTOMAKE ends once again with a trailing newline (bug#16841). Regression introduced in Automake 1.14. + - The code used to detect whether the currently used make is GNU make + or not not (relying on the private macro 'am__is_gnu_make') no longer + risk causing "Arg list too long" for projects using automatic + dependency tracking and having a ton of source files (bug#18744). + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ New in 1.14.1: diff --git a/lib/am/header-vars.am b/lib/am/header-vars.am index d25efa6..a0ca3fc 100644 --- a/lib/am/header-vars.am +++ b/lib/am/header-vars.am @@ -1,5 +1,5 @@ ## automake - create Makefile.in from Makefile.am -## Copyright (C) 1994-2013 Free Software Foundation, Inc. +## Copyright (C) 1994-2014 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 @@ -27,9 +27,36 @@ VPATH = @srcdir@ ## DESTDIR = ## Shell code that determines whether we are running under GNU make. -## This is somewhat of an hack, and might be improved, but is good -## enough for now. -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +## +## Why the this needs to be so convoluted? +## +## (1) We can't unconditionally use make functions or special variables +## starting with a dot, as that cause non-GNU implmentations to +## crash hard. +## +## (2) We can't use $(MAKE_VERSION) here, as it also defined in some +## non-GNU make implementations (e.g., FreeBSD make). But at least +## BSD make does *not* define the $(CURDIR) variable -- it uses +## $(.CURDIR) instead. +## +## (3) We can't use $(MAKEFILE_LIST) here, as in some situations it +## might cause to die with "Arg list too long" (see automake +## bug#18744). +## +## (4) We can't use $(MAKE_HOST) unconditionally, as it is only +## defined in GNU make 4.0 or later. +## +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} ## Shell code that determines whether the current make instance is ## running with a given one-letter option (e.g., -k, -n) that takes -- 2.1.3 --------------070508070705050701000101-- From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 19 14:13:33 2014 Received: (at 18744) by debbugs.gnu.org; 19 Dec 2014 19:13:33 +0000 Received: from localhost ([127.0.0.1]:51799 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Y22zU-0005We-Ae for submit@debbugs.gnu.org; Fri, 19 Dec 2014 14:13:32 -0500 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:50516) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Y22zR-0005WS-Vl for 18744@debbugs.gnu.org; Fri, 19 Dec 2014 14:13:31 -0500 Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 94B20205F9 for <18744@debbugs.gnu.org>; Fri, 19 Dec 2014 14:13:29 -0500 (EST) Received: from web6 ([10.202.2.216]) by compute6.internal (MEProxy); Fri, 19 Dec 2014 14:13:29 -0500 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=iSKUNK.ORG; h= message-id:x-sasl-enc:from:to:cc:mime-version :content-transfer-encoding:content-type:subject:date:in-reply-to :references; s=mesmtp; bh=tL/G1mkyeJqpO5k50gyTApYtEZ8=; b=lOUByY Ty941CfELpTR3QFtVBRSuopzW9WSBlM0+ckC7zX1OzEUisd4sKAJjISysPfIGOuX JqkwmiVuN7SVc42N/w2zwwRHTtvti7eB+ESCaPJ/jA0avDVZs/gGov8S9IzFsQ7P eJHX8/iWrJVYxJmt5KYY4NNHoSRFvzPjfmaMI= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=message-id:x-sasl-enc:from:to:cc :mime-version:content-transfer-encoding:content-type:subject :date:in-reply-to:references; s=smtpout; bh=tL/G1mkyeJqpO5k50gyT ApYtEZ8=; b=TuVG5YNhSdape5ewoNiFFl9PHX3rVeD+PeRbmfyxNef2mQBhcrKi WdN4Wcd4B27vPHLhfz2S3JMQG2/vUUW+x41irF4TGjpHs+eX+ZKDLfqXCRg63nhy QP0jeh3ldohnBq5L5Cae6HND0gYRtov6K8qXqGVkZQoqwiZK9zLrB5A= Received: by web6.nyi.internal (Postfix, from userid 99) id 6BA2C4691A; Fri, 19 Dec 2014 14:13:29 -0500 (EST) Message-Id: <1419016409.2312806.204961713.368136D2@webmail.messagingengine.com> X-Sasl-Enc: GO5pdg9xLJrRe/L/hmKzNHlndIF96fmVsXvFrYdYZ8Hj 1419016409 From: "Daniel Richard G." To: Stefano Lattarini , 18744@debbugs.gnu.org MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain X-Mailer: MessagingEngine.com Webmail Interface - html Subject: Re: bug#18744: Problem with am__is_gnu_make: Arg list too long Date: Fri, 19 Dec 2014 14:13:29 -0500 In-Reply-To: <54945C6E.3010506@gmail.com> References: <1413428249.1886678.179543997.6435D1A3@webmail.messagingengine.com> <54945C6E.3010506@gmail.com> X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 18744 Cc: "automake-patches@gnu.org" X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On Fri, 2014 Dec 19 18:12+0100, Stefano Lattarini wrote: > tags 18744 + patch > close 18744 > stop > > Reference: http://debbugs.gnu.org/18744 > > Should be fixed by the attached patch. Thank you Stefano, just a few comment typos I noticed: * "The code used to detect whether the currently used make is GNU make or not not" * Probably should read "no longer risks causing" rather than "risk" * "as those cause non-GNU implementations" rather than "that cause ... implmentations" * "We can't use $(MAKE_VERSION) here, as it is also defined" rather than "as it also" * "might cause the shell to die" rather than "might cause to die"? --Daniel -- Daniel Richard G. || skunk@iSKUNK.ORG My ASCII-art .sig got a bad case of Times New Roman. From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 19 15:00:46 2014 Received: (at 18744) by debbugs.gnu.org; 19 Dec 2014 20:00:46 +0000 Received: from localhost ([127.0.0.1]:51825 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Y23jA-0007OI-Co for submit@debbugs.gnu.org; Fri, 19 Dec 2014 15:00:45 -0500 Received: from mail-wg0-f44.google.com ([74.125.82.44]:39385) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Y23j7-0007Kf-CS for 18744@debbugs.gnu.org; Fri, 19 Dec 2014 15:00:42 -0500 Received: by mail-wg0-f44.google.com with SMTP id b13so2229607wgh.3 for <18744@debbugs.gnu.org>; Fri, 19 Dec 2014 12:00:40 -0800 (PST) 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=HXz9qfcBySSCu5MzoG7YGR40Mne7KnqN8jlTKpqmUAs=; b=a5ctxGyOLVs0qyfqSQyU87/5eCd5Mi4R2VZ9+/FgSUh4uQVdubnIKDtxIeKeoYXjIG YqI+5Lcq2oBJFrsuq7DymqziCNgMXtqtJG1b1erFtdedvpM5TwfN7j3Oy9VQPbWbWpU3 xLSMaIldxGbQ4zH01usvPmAXpt9nMn0HOUhD3pRiZhYWfhPFrVippSBDr4JN9HLKLvDH Po7hzfodaNWv+lMo/mVrP8B7ANsNkBIcIwQVzCxSIgtRG27ImJb0GiyM5AptCVPTq68G TfyoHX+vm7SFSMoYNN4yNyeS5A2Nyh3Xt2R9QgSzTft11yxf3G6eXOq2xM2Q54fL70tX 6kow== X-Received: by 10.194.235.193 with SMTP id uo1mr17538703wjc.105.1419019240749; Fri, 19 Dec 2014 12:00:40 -0800 (PST) Received: from [192.168.0.101] (host159-94-dynamic.7-79-r.retail.telecomitalia.it. [79.7.94.159]) by mx.google.com with ESMTPSA id j10sm4421777wjn.23.2014.12.19.12.00.38 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 19 Dec 2014 12:00:40 -0800 (PST) Message-ID: <549483E3.6070307@gmail.com> Date: Fri, 19 Dec 2014 21:00:35 +0100 From: Stefano Lattarini MIME-Version: 1.0 To: "Daniel Richard G." , 18744@debbugs.gnu.org Subject: Re: bug#18744: Problem with am__is_gnu_make: Arg list too long References: <1413428249.1886678.179543997.6435D1A3@webmail.messagingengine.com> <54945C6E.3010506@gmail.com> <1419016409.2312806.204961713.368136D2@webmail.messagingengine.com> In-Reply-To: <1419016409.2312806.204961713.368136D2@webmail.messagingengine.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 18744 Cc: "automake-patches@gnu.org" X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On 12/19/2014 08:13 PM, Daniel Richard G. wrote: > On Fri, 2014 Dec 19 18:12+0100, Stefano Lattarini wrote: >> tags 18744 + patch >> close 18744 >> stop >> >> Reference: http://debbugs.gnu.org/18744 >> >> Should be fixed by the attached patch. > > Thank you Stefano, just a few comment typos I noticed: > > * "The code used to detect whether the currently used make is GNU make > or not not" > > * Probably should read "no longer risks causing" rather than "risk" > > * "as those cause non-GNU implementations" rather than "that cause ... > implmentations" > > * "We can't use $(MAKE_VERSION) here, as it is also defined" rather than > "as it also" > > * "might cause the shell to die" rather than "might cause to die"? > > > --Daniel > > Thanks Daniel, I've applied all your suggested fixes before pushing. From unknown Mon Jun 23 14:56:32 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 17 Jan 2015 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