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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.