From: Junio C Hamano <hidden> Date: 2016-06-15 22:47:05
I noticed that the first "grep -C1" test in t7002 does not pass on my
SunOS-5.11-i86pc, and that is not because our way to spawn external
grep is broken, but because the native grep does not understand -C<n>.
Is it just me and my installation (i.e. I might have failed to install
saner grep from the distribution that everybody uses), or everybody on
SunOS is using this option himself because our Makefile doesn't do that
automatically for them?
Just in case it is the latter, here is a proposed patch.
---
Makefile | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
From: Jeff King <hidden> Date: 2016-06-15 22:47:05
On Thu, Jul 23, 2009 at 10:30:07PM -0700, Junio C Hamano wrote:
I noticed that the first "grep -C1" test in t7002 does not pass on my
SunOS-5.11-i86pc, and that is not because our way to spawn external
grep is broken, but because the native grep does not understand -C<n>.
Is it just me and my installation (i.e. I might have failed to install
saner grep from the distribution that everybody uses), or everybody on
SunOS is using this option himself because our Makefile doesn't do that
automatically for them?
Just in case it is the latter, here is a proposed patch.
Yes, I've been building with NO_EXTERNAL_GREP for my test box. The grep
from Solaris 8, at least, doesn't understand '-e' either, which causes
it to fail many other tests.
-Peff
I noticed that the first "grep -C1" test in t7002 does not pass on my
SunOS-5.11-i86pc, and that is not because our way to spawn external
grep is broken, but because the native grep does not understand -C<n>.
Is it just me and my installation (i.e. I might have failed to install
saner grep from the distribution that everybody uses), or everybody on
SunOS is using this option himself because our Makefile doesn't do that
automatically for them?
Hmm. I have _not_ been setting NO_EXTERNAL_GREP and the tests have _not_
been failing.
The system grep does not seem to have the -C option:
# /usr/xpg4/bin/grep -C1 include ws.c
/usr/xpg4/bin/grep: illegal option -- C
Usage: grep [-E|-F] [-c|-l|-q] [-bhinsvwx] [file ...]
grep [-E|-F] [-c|-l|-q] [-bhinsvwx] -e pattern... [-f pattern_file]...[file...]
grep [-E|-F] [-c|-l|-q] [-bhinsvwx] [-e pattern]... -f pattern_file [file...]
but git grep -C1 works fine
# git grep -C1 include ws.c
ws.c-
ws.c:#include "cache.h"
ws.c:#include "attr.h"
ws.c-
I have been compiling with the SUNWspro compiler suite though, and I see these
statements in builtin-grep.c:
#ifndef NO_EXTERNAL_GREP
#ifdef __unix__
#define NO_EXTERNAL_GREP 0
#else
#define NO_EXTERNAL_GREP 1
#endif
#endif
So possibly, the SUNWspro compiler does not set the __unix__ macro. A quick
compile of a test program confirms it.
#include <stdio.h>
int main (int argc, char* argv[])
{
#ifdef __unix__
puts("__unix__ is set");
#else
puts("__unix__ is not set");
#endif
return 0;
}
# /opt/SUNWspro/bin/cc -o test.out test.c
./test.out
__unix__ is not set
# gcc -o test.out test.c
__unix__ is set
So, I have been getting NO_EXTERNAL_GREP all along without knowing it.
-brandon