Alex Chapiro wrote:
I'm using cygwin make and WinXP for testing, i.e. exactly the case we
discussed. It successfully accepts command line longer than 16K. I
guess the limit is 32K (I just was lazy to test it), which is, I
suppose, much more than any reasonable requirement. What I'm saying,
there is no problem of command line length limitation with GNU make on
Windows environment. It still maybe exists for nmake.
Recoskie, Chris wrote:
Yes, but of course YMMV depending on what make utility and OS you are
using.
You might find this tidbit I culled from the web interesting
(http://blogs.msdn.com/oldnewthing/archive/2003/12/10/56028.aspx)
What is the command line length limit?
It depends on whom you ask.
The maximum command line length for the CreateProcess function is
32767
characters. This limitation comes from the UNICODE_STRING structure.
CreateProcess is the core function for creating processes, so if you
are
talking directly to Win32, then that's the only limit you have to
worry
about. But if you are reaching CreateProcess by some other means,
then
the path you travel through may have other limits.
If you are using the CMD.EXE command processor, then you are also
subject to the 8192 character command line length limit imposed by
CMD.EXE.
If you are using the ShellExecute/Ex function, then you become
subject
to the INTERNET_MAX_URL_LENGTH (around 2048) command line length
limit
imposed by the ShellExecute/Ex functions. (If you are running on
Windows
95, then the limit is only MAX_PATH.)
While I'm here, I may as well mention another limit: The maximum size
of
your environment is 32767 characters. The size of the environment
includes the all the variable names plus all the values.
Okay, but what if you want to pass more than 32767 characters of
information to a process? You'll have to find something other than
the
command line. We'll discuss some options tomorrow.
___________________________________________
Chris Recoskie
Software Designer
Texas Instruments, Toronto
http://eclipse.org/cdt
-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx
[mailto:cdt-dev-bounces@xxxxxxxxxxx]
On
Behalf Of Alex Chapiro
Sent: Friday, September 30, 2005 2:30 PM
To: CDT General developers list.
Subject: Re: [cdt-dev] Using nmake with managed builds
I included the following command into make file (WinXP) :
gcc -c -D$(TTTTT) myFile.c
where TTTTT contained 7000 characters and launched it. File
myFile.c
was successfully compiled. Are you talking about this command line?
Recoskie, Chris wrote:
Like Mikhail says, the make utility (whether it's GNU make, nmake,
any
make-alike will do) issues the commands via the OS shell. The OS
(in
this case, windows) will generally have a limitation on the length
of
a
command.
Make and nmake themselves don't limit the length to my knowledge,
but
when they try to invoke the command via the shell, it fails due to
the
length issue.
___________________________________________
Chris Recoskie
Software Designer
Texas Instruments, Toronto
http://eclipse.org/cdt
-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx
[mailto:cdt-dev-bounces@xxxxxxxxxxx]
On
Behalf Of Alex Chapiro
Sent: Friday, September 30, 2005 1:52 PM
To: CDT General developers list.
Subject: Re: [cdt-dev] Using nmake with managed builds
If you are talking about make command line, you can for example
instead
of generating long command line , create temporary make file, fill
it
with your command line arguments and add include Makefile at the
end
of
it, then launch make --file=<tempFile>, then remove <tempFile>. If
you
are taking about length limitation of commands in make file, I
don't
know about it. Does it really exist?
Sennikovsky, Mikhail wrote:
Hi,
Cygwin make has also command length limitation, that actually has
to
do
with the command length limitation on windows in general.
Please see the bugzilla# 72965 related to this.
Thanks,
Mikhail
-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx
[mailto:cdt-dev-bounces@xxxxxxxxxxx]
On Behalf Of vladchuk@xxxxxxxxxxx
Sent: Friday, September 30, 2005 9:32 PM
To: Cdt-dev@xxxxxxxxxxx
Subject: [cdt-dev] Using nmake with managed builds
Apparently, nmake has a makefile command length limitation (is
it
1024
chars?) so it is impossible to use it with anything but trivial
projects.
Does anybody know how toget around this problem?
Thanks,
vladchuk
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev
Well, after reading all the responses and doing some investigation of my
own it indeed appears that 8K (CMD shell limit) all we can get when
using nmake.
The solution is then (also suggested by Microsoft) to keep the paths as
short as possible. I don't suppose it is possible to use any other shell
with nmake.
I wonder how MS gets around their own limitations when using nmake on
large projects?
vladchuk
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev