Hello I have cross-compiled grep for Windows using the mingw-w64 32-bit
toolchain. I have some problems with it on Windows and I had some problems
building. The steps I took in Ubuntu were:
sudo apt-get install gcc-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64-tool
sudo apt-get install autopoint bison libbison-dev gperf texinfo
Clone the grep repo; currently at master 846e7ee.
./bootstrap
./configure --host=i686-w64-mingw32
There were errors because Werror is enabled. I edited the lib/Makefile
directly to remove -Werror from WERROR_CFLAGS. I built again and got
warnings like "cast from function call of type 'intptr_t' to non-matching
type 'void *'". A list of the warnings is attached.
Now I have a grep.exe but wild cards aren't working from the command
prompt. And from the msys bash shell directories are bad file descriptor.
grep -r a *
grep: *: Invalid argument
>From bash I get bad file descriptors for directories:
$ /c/grep -r a *
c:\grep.exe: dir: Bad file descriptor
I really would like to use grep on windows, primarily from the command
prompt. I don't know if I've done anything that is wrong or maybe there is
a bug somewhere. Unfortunately I don't think I'll be able to fix what is
happening. Can you help?
dup2.c: In function 'ms_windows_dup2':
dup2.c:53:11: warning: cast from function call of type 'intptr_t' to
non-matching type 'void *' [-Wbad-function-cast]
if ((HANDLE) _get_osfhandle (fd) == INVALID_HANDLE_VALUE)
^
error.c:112:1: warning: function declaration isn't a prototype
[-Wstrict-prototypes]
int strerror_r ();
^
error.c: In function 'is_open':
error.c:135:10: warning: cast from function call of type 'intptr_t' to
non-matching type 'void *' [-Wbad-function-cast]
return (HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE;
^
error.c: In function 'error':
error.c:320:3: warning: function might be possible candidate for 'gnu_printf'
format attribute [-Wsuggest-attribute=format]
error_tail (status, errnum, message, args);
^
error.c: In function 'error_at_line':
error.c:390:3: warning: function might be possible candidate for 'gnu_printf'
format attribute [-Wsuggest-attribute=format]
error_tail (status, errnum, message, args);
^
fcntl.c: In function 'dupfd':
fcntl.c:55:23: warning: cast from function call of type 'intptr_t' to
non-matching type 'void *' [-Wbad-function-cast]
HANDLE old_handle = (HANDLE) _get_osfhandle (oldfd);
^
fcntl.c: In function 'fcntl':
fcntl.c:289:25: warning: cast from function call of type 'intptr_t' to
non-matching type 'void *' [-Wbad-function-cast]
HANDLE handle = (HANDLE) _get_osfhandle (fd);
^
isatty.c: In function 'rpl_isatty':
isatty.c:68:14: warning: cast from function call of type 'intptr_t' to
non-matching type 'void *' [-Wbad-function-cast]
HANDLE h = (HANDLE) _get_osfhandle (fd);
^
lseek.c: In function 'rpl_lseek':
lseek.c:40:14: warning: cast from function call of type 'intptr_t' to
non-matching type 'void *' [-Wbad-function-cast]
HANDLE h = (HANDLE) _get_osfhandle (fd);
^
nl_langinfo.c: In function 'ctype_codeset':
nl_langinfo.c:37:10: warning: unused variable 'buflen' [-Wunused-variable]
size_t buflen = 0;
^
nl_langinfo.c: In function 'nl_langinfo':
nl_langinfo.c:168:7: warning: return discards 'const' qualifier from pointer
target type [enabled by default]
return "ISO-8859-1";
^
nl_langinfo.c:181:7: warning: return discards 'const' qualifier from pointer
target type [enabled by default]
return "%a %b %e %H:%M:%S %Y";
^
nl_langinfo.c:184:7: warning: return discards 'const' qualifier from pointer
target type [enabled by default]
return "%m/%d/%y";
^
nl_langinfo.c:187:7: warning: return discards 'const' qualifier from pointer
target type [enabled by default]
return "%H:%M:%S";
^
nl_langinfo.c:189:7: warning: return discards 'const' qualifier from pointer
target type [enabled by default]
return "%I:%M:%S %p";
^
nl_langinfo.c:192:9: warning: return discards 'const' qualifier from pointer
target type [enabled by default]
return "AM";
^
nl_langinfo.c:197:9: warning: return discards 'const' qualifier from pointer
target type [enabled by default]
return "PM";
^
nl_langinfo.c:277:7: warning: return discards 'const' qualifier from pointer
target type [enabled by default]
return "";
^
nl_langinfo.c:279:7: warning: return discards 'const' qualifier from pointer
target type [enabled by default]
return "\0\0\0\0\0\0\0\0\0\0";
^
nl_langinfo.c:314:7: warning: return discards 'const' qualifier from pointer
target type [enabled by default]
return "^[yY]";
^
nl_langinfo.c:316:7: warning: return discards 'const' qualifier from pointer
target type [enabled by default]
return "^[nN]";
^
nl_langinfo.c:318:7: warning: return discards 'const' qualifier from pointer
target type [enabled by default]
return "";