From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS22989 209.51.188.0/24 X-Spam-Status: No, score=-3.9 required=3.0 tests=AWL,BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id CE4AA1F461 for ; Fri, 19 Jul 2019 07:31:07 +0000 (UTC) Received: from localhost ([::1]:42796 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hoNMA-0001lL-Fa for normalperson@yhbt.net; Fri, 19 Jul 2019 03:31:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34564) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hoNM8-0001lE-0n for bug-gnulib@gnu.org; Fri, 19 Jul 2019 03:31:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hoNM5-0003H5-Uk for bug-gnulib@gnu.org; Fri, 19 Jul 2019 03:31:03 -0400 Received: from mout.kundenserver.de ([212.227.17.10]:48555) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hoNM4-0003Fo-UW for bug-gnulib@gnu.org; Fri, 19 Jul 2019 03:31:01 -0400 Received: from [192.168.101.10] ([93.218.104.70]) by mrelayeu.kundenserver.de (mreue107 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MPXQi-1i22ce1vxi-00MZCf; Fri, 19 Jul 2019 09:30:46 +0200 Subject: Re: maintainer-makefile: catch uses of $< in non-implicit rules To: Akim Demaille , Paul Eggert References: <96ECC7FF-BBAA-47C9-80FF-397FCF1502F5@gmail.com> From: Bernhard Voelker Openpgp: preference=signencrypt Autocrypt: addr=mail@bernhard-voelker.de; prefer-encrypt=mutual; keydata= mQENBFPirzMBCACyzYldTjQ4ufFOkByY5Nn5USb5GFoL48nWBwNHjd9KUbtRRNlQiPNKd6hK Gvd3BGi5aoFKA4ytfRk6jbAbW3jVb3R8wYaV08mOy4KVEKxqN4bxsXlMjNChXVR+rtKDmfI+ oPTL+cPH2X6gW4W02IRbVw0uUhNm6zEedC/gNrY/mTlf1enZ46jxZ7BTUZaG+kx38UMISIMB zSzLRtdkwgmHj4jS3p1fF2cwRqLclIfMjKGpbNFPEXeXKWrCLcqHw78795eAR9q0YvrDkfIn GdDBwfb3VM4NdulwIFzvYZMSXvSbbyPLB5YkHU5aAWQHUse4WlfT5ccDpbzUYldRAvF9ABEB AAG0K0Jlcm5oYXJkIFZvZWxrZXIgPG1haWxAYmVybmhhcmQtdm9lbGtlci5kZT6JATkEEwEC ACMFAlPirzMCGwMHCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRBGUC73lpFxle5wCACC dbs0QaJ0vR3Sff2cKdTk41rUq3YfWngsR///IOU0C5DdkePmCnJE/lUsUy0LRTxcUDLxQR+x QHU8ssRT0JUO9726dI3miy36UdsgmBYaOtLvQcidGmW1R7o0PYYf04+TFtyqKgngOUBPpMgR 6o4UsQxy/OD4bN1WDqOgIjL+D/qJpkKmgp6L6+hhaBCpiOFKRmmV7YyQ3SqVlfQNiHs5ZtkR nXpIjgZARV+GllKucI17bO0CGmTJZ1tstVy0+W3DQT1lbBkTTc++5LONM99D3jjn23l1ocOp folR53F7I4cb2RNfT23v1I59RH37lB9wMOqrKj0UjYAC2YoPGQ3BuQENBFPirzMBCADXLWWp QihBldY6reca8ZKdc3T9qXEOa3akE3DWKztIBmNJhtYOjmpLYajQTkGa7UoJTnbmZE2Rn6ZE oNnvb0gcFNAIcY95KOI+bjOR8HEgh4cx2REXh6L6olIgyXqt/KFusE4wtVZAFxZl+30HzN6n D+1HvrjXxPJRX6MsIYOYyyX9/6OofwJK6QHODYGp8WL2olHDnmsXg4AT6Wlr7qKpKrQELlcF R4xkvdmgL/Ghw/tK0yJTxMIcewCCZWLPOXRmFRbvAadZWPAgVsJ63siNyUlVnVMSzDgTJl+s l/DMabXpqrJQx3/1Yy6mTaDs3XZT/wmBKaTLXx/LByaPxQQ7ABEBAAGJAR8EGAECAAkFAlPi rzMCGwwACgkQRlAu95aRcZWVPwgAqZT6iTXkoP37wYb41323RzhBcJ8JSk4cyBDBUXX0lMrM 3qhiClKG7phpxVdu817Gwc6Hsecg7FfjQAV8MHQ0ZFeEFdk3b2rKBqfsStc+h49/xF3Fb+if CzR9qeQF82fMSxkg18++7hMcHCMO/hPZ/Q0xRi+lrSr2QKDJQuLzSyVU14TxrCkevZjEhtma VNvcJlJzCbiBXee9Fpc5jITUXPFG8E8dxqo1n+duOyIMgozrAnzP7X5V/Ob/Ozf/aGGX9+Jd inyfCX18nWcHALKMU/36Eua/ylalf/2c2YkBp9KCLVmGgPkUgW52EeRPgroIsiwu+rwCSV6Z UyCJ+OymCg== Message-ID: <6c6e84f1-4a3a-1f0f-84fb-fbe233e1412e@bernhard-voelker.de> Date: Fri, 19 Jul 2019 09:30:43 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:yazE2erM4kN2fgyC/M0nZDuvN0H31uUC5GZGA6gnfQQyU4tCHG0 RkqgsRGz1FgW8GP0y53OKhetCrNQrU9Sjd2CG+H8V3qbATif5ZriUYRsRl5X8gaucZYaYul agh2iUw8yh7T3sTBEzyfftCniLEH/ZRyYIV9gtm9v8qYqswnQ/qeAZFeGIbprxjAJrabq6I JJN8XBPRdt93fqXhLXOEA== X-UI-Out-Filterresults: notjunk:1;V03:K0:PLu5iiozgGk=:2fE8GO1Bz4soCurS6b5coG 2dkzEoLxb9vfTObtr9cdal0oP0DXTXXM3dRaAgvDD7Q+NzoUO5CMAsYE4NJetHadFbNiJil2O ZWXgFuG6kHSbc/S8+m2HlN4vJ7D1F8zFdqxdFFWRkvIoS4Cdu0eRYKyEJp27c20wVWKB8IwdU 9aD8CHyuL3tGzvTwqxZqgx7DB7QxEm9+aQEAloRaBFf1pwbJ9GPhayQAh6scEP3+MZFx3fGdD PzBQy+yu4U+EKJGTUILKrEx5r+mZC7XCZf4/WFLeMFjBDTtmbCq4At+GT5RVFz37O6g9N9QMA v7+Mha22kZsrWXSu4+DAlZHZl9xmZA2z18NsxBze3mPM70UTTM9fiawwgJCHsqeepzJiRNVcW nMY+V7pjWXAsmn9h0zQUEs8XxBYnNjLGm4iL3d5zPggKg58/rUf9XIWxyqjl/OpbLmSEObNRL VmrHs1//gSiEMqXPjRTZYWek8Hot/ry7xahFNSZl8wo6+JCGqaD9S7m3VWXouVQ6APTJiOjQ0 Ko7Ciw1H2LEBmmdOv/z51Em0LKqkAWfZDK1lr1gceCHk0490os1x7Zz4qyHxrzVPZ2kAoEHhH K2Oe9ZQezYErl4kp7YtcQsiWt5UiI9X6Dsgf/BTA/mKZ6xstEu3rGwRQqjV97pW1CnmI2B7wh ycy5jsLRAxjt/YNQxN7k0i+XL8cnp4PDHIUwdWmgu47nxLwdISaPM6MZ/kv5DCyc2tK9258Uh KKSfsBXcVQ0diJtshrE7v0bjL5GmiefPNEUBVxobSBBkxdoPscEn8QWx4lXJzj85I9aS0u11N djW71Nk X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.17.10 X-BeenThere: bug-gnulib@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Gnulib discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Gnulib bugs Errors-To: bug-gnulib-bounces+normalperson=yhbt.net@gnu.org Sender: "bug-gnulib" Hi Akim, On 5/18/19 11:51 AM, Akim Demaille wrote: > commit 2e801e81bb362429d0e252d076233bfdac20e367 > Author: Akim Demaille > Date: Sat May 18 08:46:00 2019 +0200 > > maintainer-makefile: catch uses of $< in non-implicit rules > > * top/maint.mk (sc_prohibit_magic_number_exit): New. Wrong sc rule - it should have been this: * top/maint.mk (sc_prohibit_gnu_make_extensions_awk_): New. (sc_prohibit_gnu_make_extensions): New. Do we fix the ChangeLog in cases like this? Thanks & have a nice day, Berny > > diff --git a/ChangeLog b/ChangeLog > index 1918041f0..8d5a4ca6e 100644 > --- a/ChangeLog > +++ b/ChangeLog > @@ -1,3 +1,8 @@ > +2019-05-18 Akim Demaille > + > + maintainer-makefile: catch uses of $< in non-implicit rules > + * top/maint.mk (sc_prohibit_magic_number_exit): New. > + > 2019-05-14 Paul Eggert > > close-stream, closein, closeout: simplify > diff --git a/top/maint.mk b/top/maint.mk > index e9d5ee7d4..3dbe9c378 100644 > --- a/top/maint.mk > +++ b/top/maint.mk > @@ -408,6 +408,41 @@ sc_prohibit_magic_number_exit: > halt='use EXIT_* values rather than magic number' \ > $(_sc_search_regexp) > > +# Check that we don't use $< in non-implicit Makefile rules. > +# > +# To find the Makefiles, trace AC_CONFIG_FILES. Using VC_LIST would > +# miss the Makefiles that are not under VC control (e.g., symlinks > +# installed for gettext). "Parsing" (recursive) uses of SUBDIRS seems > +# too delicate. > +# > +# Use GNU Make's --print-data-base to normalize the rules into some > +# easy to parse format: they are separated by two \n. Look for the > +# "section" about non-pattern rules (marked with "# Files") inside > +# which there are still the POSIX Make like implicit rules (".c.o"). > +sc_prohibit_gnu_make_extensions_awk_ = \ > + BEGIN { \ > + RS = "\n\n"; \ > + in_rules = 0; \ > + } \ > + /^\# Files/ { \ > + in_rules = 1; \ > + } \ > + /\$$ + print "Error: " file ": $$< in a non implicit rule\n" $$0; \ > + status = 1; \ > + } \ > + END { \ > + exit status; \ > + } > +sc_prohibit_gnu_make_extensions: > + (cd $(srcdir) && autoconf --trace AC_CONFIG_FILES:'$$1') | \ > + tr ' ' '\n' | \ > + $(SED) -ne '/Makefile/{s/\.in$$//;p;}' | \ > + while read m; do \ > + $(MAKE) -qp -f $$m .DUMMY-TARGET 2>/dev/null | \ > + awk -v file=$$m -e '$($@_awk_)' || exit 1; \ > + done > + > # Using EXIT_SUCCESS as the first argument to error is misleading, > # since when that parameter is 0, error does not exit. Use '0' instead. > sc_error_exit_success: