make-w32
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GNU make 4.2 (and 4.2.1) failing due to length of command-line


From: Adrian Muresan
Subject: Re: GNU make 4.2 (and 4.2.1) failing due to length of command-line
Date: Wed, 22 Jun 2016 17:44:33 +0000

Adrian Muresan has shared OneDrive files with you. To view them, click the links below.

This is an interesting data-point.

I used make 3.81 directly from SourceForge and it also failed with same error.


C:\Users\mureadr\Desktop\A\HMI_FORGF\bld\armle-v7\release\fordhmi>"C:\GnuWin32\bin\make.exe" deploy_marketProperties --debug=vjm --print-data-base > 381-SForge.err 2>&1
See 381-SForge.err

But when I used the 3.81 that comes with the QNX SDK, it works fine

C:\Users\mureadr\Desktop\A\HMI_FORGF\bld\armle-v7\release\fordhmi>where make
C:\QNX650\host\win32\x86\usr\bin\make.exe

C:\Users\mureadr\Desktop\A\HMI_FORGF\bld\armle-v7\release\fordhmi>make --ver
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for Windows32

C:\Users\mureadr\Desktop\A\HMI_FORGF\bld\armle-v7\release\fordhmi>make deploy_marketProperties --debug=vjm --print-data-base > 381-QNX.err 2>&1
See 381-QNX.err




From: Adrian Muresan <address@hidden>
Sent: Wednesday, June 22, 2016 1:01 PM
To: Eli Zaretskii
Cc: address@hidden
Subject: Re: GNU make 4.2 (and 4.2.1) failing due to length of command-line
 
The way that I built make 4.2.1 (and 4.2) is:
1) download http://ftp.gnu.org/gnu/make/make-4.2.1.tar.gz and http://ftp.gnu.org/gnu/make/make-4.2.tar.gz
2) open .sln file in VS 2008
3) a conversion process occurs because .sln is from an earlier version of
4) build release version

---------------------------
Checksum information for make 4.2.1 release executable
---------------------------
Name: make_msvc.net2003.exe
Size: 318464 bytes (0 MB)


CRC32: 92E7648E


CRC64: 9A025110B0589AD5


SHA256: 70479CE11C92ECB45AEDAEB2CBE3EFA96990A5804774C1D70E67135E404CCC08


SHA1: 7CF3919C78357084FE0D7C65BADC9BF41E4C6C8F


BLAKE2sp: 0A0A543305D67DC66DD823943B42489B507CE74FDD2EE1506039A76E6E9642B1


---------------------------
OK   
---------------------------



---------------------------
Checksum information for make 4.2 release executable
---------------------------
Name: make_msvc.net2003.exe
Size: 318976 bytes (0 MB)


CRC32: C98E40B9


CRC64: 1CDD9590939C9B97


SHA256: 980C00EAF8ED3CB58D56B4CBFF061C38C28A6E351B8963EE689DDCDC7C5837F5


SHA1: C84C705747C02CCEAF749CC92BF97B16EA5148C1


BLAKE2sp: 7B511AA39FC52732BF691B7552C1EF6BDBD97A01B36FE4A4685A1E54295A6108


---------------------------
OK   
---------------------------



I downloaded
https://sourceforge.net/projects/ezwinports/files/make-4.2-without-guile-w32-bin.zip/download

I ran the command
C:\Users\mureadr\Desktop\A\HMI_FORGF\bld\armle-v7\release\fordhmi>"C:\Users\mureadr\Downloads\make-4.2-without-guile-w32-bin\bin\make.exe" deploy_marketProperties --debug=vjm --print-data-base > 42-SForge.err 2>&1

And I still got the same error (see attachment).
This time, I kept the entire output so you can reproduce it exactly.

My sh --help
C:\Users\mureadr\Desktop\A\HMI_FORGF\bld\armle-v7\release\fordhmi>where sh
C:\QNX650\host\win32\x86\usr\bin\sh.exe

C:\Users\mureadr\Desktop\A\HMI_FORGF\bld\armle-v7\release\fordhmi>sh --help
GNU bash, version 3.1.17(1)-release-(i686-pc-msys)
Usage:  sh [GNU long option] [option] ...
        sh [GNU long option] [option] script-file ...
GNU long options:
        --debug
        --debugger
        --dump-po-strings
        --dump-strings
        --help
        --init-file
        --login
        --noediting
        --noprofile
        --norc
        --posix
        --protected
        --rcfile
        --restricted
        --verbose
        --version
        --wordexp
Shell options:
        -irsD or -c command or -O shopt_option          (invocation only)
        -abefhkmnptuvxBCHP or -o option
Type `sh -c "help set"' for more information about shell options.
Type `sh -c help' for more information about shell builtin commands.
Use the `bashbug' command to report bugs.



From: Eli Zaretskii <address@hidden>
Sent: Wednesday, June 22, 2016 10:48 AM
To: Adrian Muresan
Cc: address@hidden
Subject: Re: GNU make 4.2 (and 4.2.1) failing due to length of command-line
   
> From: Adrian Muresan <address@hidden>
> Date: Tue, 21 Jun 2016 22:53:50 +0000
>
> For more complete info, go to here
>
http://stackoverflow.com/questions/37932984/gnu-make-4-2-and-4-2-1-on-windows-bug



GNU make 4.2 (and 4.2.1) on windows truncates line in recipe
stackoverflow.com
I want to move to make 4.2 so I can have the ability to do parallel jobs on Windows using --jobs=N. make 4.2 is not available in binary form from SourceForge, only 3.81 So I had to build it from


That discussion is full of misinformation, so let's ignore it, OK?

> I am making this target only
>
> deploy_marketProperties:
> echo Copying application data... && $(MKDIR)
> "C:/Users/User1/Desktop/A/Proj/src/../lib/armle-v7/release/marketProperties" && $(COPY_DIR) $(wildcard
> C:/Users/User1/Desktop/A/Proj/src/subProj/marketProperties/*)
> "C:/Users/User1/Desktop/A/Proj/src/../lib/armle-v7/release/marketProperties"
>
> Using following command
> make deploy_marketProperties --debug=vjm
>
> On GNU make 3.81, it works fine. But on make 4.2 and 4.2.1, I get an error:
>
> cp: target `C' is not a directory
>
> The problem appears to be the length of the command. If I delete some JSON files, it works fine.

I cannot reproduce this.  in general, Make on Windows uses APIs that
support command lines up to 32K bytes.  I just successfully ran a
Makefile that invoked a command with 23K bytes (which is more than
your 18K, as reported on Stackoverflow), with no problems.

So I think some other factor is at work here.  The first suspect is
the way you built Make 4.2.  Could you please try the binaries
available from this site:

  https://sourceforge.net/projects/ezwinports/files/?source=navbar

(I'm guessing you don't need Guile support in Make, so the
"without-guile" binary zip is for you.)  This is the binary I used in
the experiment described above.  The command line I tried was this:

  echo 123456789 123456789 123456789 123456789 123456789 ...

etc., up to 23K characters.  Also, since you seem to be using the MSYS
Bash, I used it as well (I have MSYS installed here).  I don't know
what kind of Bash build you got from the QNX toolkit, but at least the
output of "sh --help" I get here is identical to what you show, so
there's hope it's the same or similar binary.

So please try the above-mentioned binary distribution of Make 4.2, and
please try the simple command I used.  If that works, then I suggest
to try your real target with the same binary of Make.
   

reply via email to

[Prev in Thread] Current Thread [Next in Thread]