GNU bug report logs - #25283
grep: (standard input): invalid argument when run from make

Previous Next

Package: grep;

Reported by: Benno Fünfstück <benno.fuenfstueck <at> gmail.com>

Date: Tue, 27 Dec 2016 18:29:01 UTC

Severity: normal

Done: Paul Eggert <eggert <at> cs.ucla.edu>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Paul Eggert <eggert <at> cs.ucla.edu>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#25283: closed (grep: (standard input): invalid argument when
 run from make)
Date: Tue, 27 Dec 2016 19:24:01 +0000
[Message part 1 (text/plain, inline)]
Your message dated Tue, 27 Dec 2016 11:23:32 -0800
with message-id <716a788b-9130-6793-c6cf-197f9a07cab0 <at> cs.ucla.edu>
and subject line Re: bug#25283: grep: (standard input): invalid argument when run from make
has caused the debbugs.gnu.org bug report #25283,
regarding grep: (standard input): invalid argument when run from make
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
25283: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=25283
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Benno Fünfstück <benno.fuenfstueck <at> gmail.com>
To: bug-grep <at> gnu.org
Subject: grep: (standard input): invalid argument when run from make
Date: Tue, 27 Dec 2016 18:14:27 +0000
[Message part 3 (text/plain, inline)]
The following Makefile illustrates the issue:

$ cat >Makefile <<EOF
all:
echo "abc" | grep "b"
.PHONY: all
$ make all # works as expected
$ make all > /dev/null
grep: (standard input): Invalid argument
make: *** [Makefile:2: all] Error 2

The bug was introduced by commit 4fa6f48b573267e758650e114ec158d97916411e
(introducing the usage of splice), which was first released in grep version
2.27.

My environment:

$ make --version
GNU Make 4.2.1
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html
>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

$ grep --version
grep (GNU grep) 2.27
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html
>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Mike Haertel and others, see <
http://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>.


Patch attached.

--
Benno Fünfstück
[Message part 4 (text/html, inline)]
[fix-splice-einval.patch (text/x-patch, attachment)]
[Message part 6 (message/rfc822, inline)]
From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Benno Fünfstück <benno.fuenfstueck <at> gmail.com>
Cc: 25283-done <at> debbugs.gnu.org
Subject: Re: bug#25283: grep: (standard input): invalid argument when run from
 make
Date: Tue, 27 Dec 2016 11:23:32 -0800
[Message part 7 (text/plain, inline)]
Thanks for reporting that problem. I wonder why GNU 'make' sets stdout to append 
mode? That surprises me, and I don't see where POSIX allows it. Anyway, it's 
clearly a bug in 'grep' no matter what 'make' is doing. I wrote up a test case 
for the bug and installed the attached, which is a bit more conservative than 
the patch you submitted.
[0001-grep-fix-bug-with-.-grep-pat-dev-null.txt (text/plain, attachment)]

This bug report was last modified 8 years and 206 days ago.

Previous Next


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