Re: Right place for possible bug in mingw32-make
Jeroen Cranendonk <[email protected]>
| Newsgroups | gmane.comp.gnu.make.windows |
|---|---|
| Message-ID | <[email protected]> |
Hi! See inline replies :) On 4/19/2010 9:41 AM, Eli Zaretskii wrote: >> Date: Fri, 16 Apr 2010 02:07:02 +0200 >> From: Jeroen Cranendonk<[email protected]> >> >> empty test.txt in folder. >> Makefile in same folder with: >> all: >> "cat.exe" test.txt test.txt test.txt test.txt test.txt test.txt>> >> (27440 bytes in this example, for just the arguments). >> cat.exe in the same folder. >> >> Btw, the quotes around cat.exe seem to matter. >> > Yes, the quotes cause the shell to be invoked to handle the command, > instead of invoking cat.exe directly. > Ahh, interesting. Is there a way to not use quotes and handle spaces in folders gracefully? Probably a noob question, sorry :) I'm just using makefiles from existing projects, not an expert on them ;) >> If I now call 'mingw32-make' in the folder, the output ends with: >> >> test.txt test.txt test.txt test.txt test.txt test.txt test.txt >> test.txt test.tx >> t test.txt >> cat.exe: est.txt: No such file or directory >> cat.exe: tet.txt: No such file or directory >> cat.exe: testtxt: No such file or directory >> mingw32-make: *** [all] Error -1 >> >> Notice the mangled names there, dissapearing characters. >> > Hm, I cannot reproduce this. Does the number of characters have to be > _exactly_ 27440, or will larger numbers do as well? I tried to hit > the exact number, but I'm not sure I succeeded. > The number of characters does not have to be 27440 exactly :) That was just what I happend to end up with after a lot of copy pasting. There seems to be a disspearing character at exactly every 8k'th position in the arguments (not including the .exe). Mind, the test I gave you was a quickly thrown together one, my actual problem occurs with java.exe, which logs in more detail what went wrong, so in that case I could really find the positions, with cat you can only see some files are misnamed. > Anyway, on my system, I get 2 kinds of results: > > . with a port of Unixy shell sh.exe somewhere on PATH, I get the > full unmangled output. > > . if I remove sh.exe from PATH, and Make uses cmd.exe as the shell, > I get this self-explanatory error message: > > The input line is too long. > make: *** [all] Error 255 > > With cmd.exe, the error message is expected, because cmd.exe is > documented to have a limit of 4K characters in input lines. > > My make.exe is built from patched sources, but I tried with the MinGW > build from make-3.81-20090914-mingw32-bin.tar.gz, and I get the same > results as shown above. > > What OS are you running this on? Do you have some sh.exe on PATH, and > if you do, what port of which Unix shell is that? > > Hmm, OS may be a big factor here, running Windows 7 64 bit here! Should've mentioned that sooner, sorry :) There is no sh.exe anywhere, it's a pretty minimal mingw install. Mayby with windows 7 cmd.exe they decided to allow longer arguments? And mayby that's not supported well in make-w32 since noone could test it before? OR mayby windows7 cmd.exe is broken, now that'd be fun :) If XP will give a too long error anyways, I need to get back to the guy who writes the makefiles though, since this won't work there anyways. Let me know if I can be of more assistance :) Cheers! Jeroen