Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] Using nmake with managed builds

Sounds strange. I tried nmake and got 32K length limit which is quite enough for any reasonable project. I used VC++6.0 for testing.

vladchuk wrote:

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



Back to the top