You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stdcxx.apache.org by Martin Sebor <se...@roguewave.com> on 2007/09/10 17:49:49 UTC

improving Windows build logs

I find the Windows build logs very hard to read, and exceedingly
difficult to find errors in. One big problem, IMO, is all the junk
(presumably) emitted by IDE to tell us what the command line looks
like. What can be done about this to make the Windows logs as
readable as the UNIX ones?

For instance, here's the output of building the accumulate example
with Intel C++:

Build started: Project: accumulate, Configuration: 12d Optimized 
Thread-safe Dll|Win32

-------

Creating temporary file "C:\DOCUME~1\batman\LOCALS~1\Temp\RSP1E05.bs" 
with contents
[
/c /O1 /I "D:\bman5\builds\34008642\source-buildspace\examples\include" 
/I "D:\bman5\builds\34008642\source-buildspace\include" /I 
"D:\bman5\builds\34008642\source-buildspace\include\ansi" /I 
"D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\include" 
/D "_RWSHARED" /D "_MBCS" /FD /EHsc /MD /GS- /GR 
/Fo"D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\examples\accumulate/" 
/W3 /nologo /Zi /Gd /D_CRT_SECURE_NO_DEPRECATE  /GA /Qvc8 
/Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 8\VC\bin"
..\..\..\..\examples\manual\accumulate.cpp
]
Creating command line "icl.exe 
"@C:\DOCUME~1\batman\LOCALS~1\Temp\RSP1E05.bs""
Creating temporary file "C:\DOCUME~1\batman\LOCALS~1\Temp\RSP1E09.bs" 
with contents
[
kernel32.lib user32.lib kernel32.lib user32.lib gdi32.lib winspool.lib 
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib 
odbc32.lib odbccp32.lib 
/OUT:"D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\examples\accumulate.exe" 
/INCREMENTAL:NO /nologo /NODEFAULTLIB:"libcp.lib" 
/NODEFAULTLIB:"libcpd.lib" /NODEFAULTLIB:"libcpmt.lib" 
/NODEFAULTLIB:"libcpmtd.lib" /NODEFAULTLIB:"msvcprt.lib" 
/NODEFAULTLIB:"msvcprtd.lib" /TLBID:1 /DEBUG 
/PDB:"D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\examples\accumulate.pdb" 
/SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF 
/IMPLIB:"D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\examples\accumulate.lib" 
/MANIFEST 
/MANIFESTFILE:"D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\examples\accumulate\accumulate.exe.intermediate.manifest"
D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\lib\libstd12d.lib
D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\examples\accumulate/accumulate.obj
]
Creating command line "xilink.exe 
"@C:\DOCUME~1\batman\LOCALS~1\Temp\RSP1E09.bs""
Creating temporary file "C:\DOCUME~1\batman\LOCALS~1\Temp\RSP1E0E.bs" 
with contents
[
/nologo /manifest 
"D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\examples\accumulate\accumulate.exe.intermediate.manifest" 
/outputresource:"D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\examples\accumulate.exe";#1
]
Creating command line "mt.exe 
"@C:\DOCUME~1\batman\LOCALS~1\Temp\RSP1E0E.bs""

-------

Compiling with Intel(R) C++ 10.0.026 [IA-32]... (Intel C++ Environment)
accumulate.cpp
Linking... (Intel C++ Environment)
xilink: executing 'link'
Embedding manifest... (Microsoft VC++ Environment)

-------

Build log was saved at 
"file://D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\examples\accumulate\BuildLog.htm"
accumulate - 0 error(s), 0 warning(s)


Contrast that to the gcc log on CygWin:

generating dependencies for $(TOPDIR)/examples/manual/accumulate.cpp
gcc -M -I$(TOPDIR)/include/ansi   -D_REENTRANT -mthreads 
-I$(TOPDIR)/include -I$(BUILDDIR)/include -I$(TOPDIR)/examples/include 
-pedantic -nostdinc++ -O2   -W -Wall -Wcast-qual -Winline -Wshadow 
-Wwrite-strings -Wno-long-long -Wcast-align 
$(TOPDIR)/examples/manual/accumulate.cpp

gcc -c -I$(TOPDIR)/include/ansi   -D_REENTRANT -mthreads 
-I$(TOPDIR)/include -I$(BUILDDIR)/include -I$(TOPDIR)/examples/include 
-pedantic -nostdinc++ -O2   -W -Wall -Wcast-qual -Winline -Wshadow 
-Wwrite-strings -Wno-long-long -Wcast-align 
$(TOPDIR)/examples/manual/accumulate.cpp

gcc accumulate.o -o accumulate -mthreads  -L$(BUILDDIR)/lib  -lstd 
-lsupc++ -lcatgets -liconv -lm


Re: improving Windows build logs

Posted by Martin Sebor <se...@roguewave.com>.
Martin Sebor wrote:
> I find the Windows build logs very hard to read, and exceedingly
> difficult to find errors in. One big problem, IMO, is all the junk
> (presumably) emitted by IDE to tell us what the command line looks
> like. What can be done about this to make the Windows logs as
> readable as the UNIX ones?
> 
[...]

Here are a few ideas...

> Creating command line "icl.exe 
> "@C:\DOCUME~1\batman\LOCALS~1\Temp\RSP1E05.bs""
> Creating temporary file "C:\DOCUME~1\batman\LOCALS~1\Temp\RSP1E09.bs" 
> with contents
> [
> kernel32.lib user32.lib kernel32.lib user32.lib gdi32.lib winspool.lib 
> comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib 
> odbc32.lib odbccp32.lib 

Here's something that we might be able to use to reduce some of
the clutter...

Does this mean we're linking with all these libraries? AFAIK, all
we should need is kernel32.lib and maybe user32.lib (once), and
none of the others.


> /OUT:"D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\examples\accumulate.exe" 

Replacing the BUILDDIR prefix with $(BUILDDIR) like we do on UNIX
would reduce the length of the path and improve the readibility.

> /INCREMENTAL:NO /nologo /NODEFAULTLIB:"libcp.lib" 
> /NODEFAULTLIB:"libcpd.lib" /NODEFAULTLIB:"libcpmt.lib" 
> /NODEFAULTLIB:"libcpmtd.lib" /NODEFAULTLIB:"msvcprt.lib" 
> /NODEFAULTLIB:"msvcprtd.lib"

Here might be another opportunity...

IIRC from builds with the Rogue Wave infrastructure, we would
only list one library in /NODEFAULTLIB for each build type.
E.g., in a static (archive), multithreaded, debug build we'd
only specify /NODEFAULTLIB:libcpmtd.lib. The others shouldn't
be necessary.

> /TLBID:1 /DEBUG 
> /PDB:"D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\examples\accumulate.pdb" 
> /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF 
> /IMPLIB:"D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\examples\accumulate.lib" 
> /MANIFEST 
> /MANIFESTFILE:"D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\examples\accumulate\accumulate.exe.intermediate.manifest" 
> 
> D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\lib\libstd12d.lib 
> 
> D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\examples\accumulate/accumulate.obj 
> 
> ]
> Creating command line "xilink.exe 
> "@C:\DOCUME~1\batman\LOCALS~1\Temp\RSP1E09.bs""
> Creating temporary file "C:\DOCUME~1\batman\LOCALS~1\Temp\RSP1E0E.bs" 
> with contents
> [
> /nologo /manifest 
> "D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\examples\accumulate\accumulate.exe.intermediate.manifest" 
> /outputresource:"D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\examples\accumulate.exe";#1 
> 
> ]
> Creating command line "mt.exe 
> "@C:\DOCUME~1\batman\LOCALS~1\Temp\RSP1E0E.bs""
> 
> -------
> 
> Compiling with Intel(R) C++ 10.0.026 [IA-32]... (Intel C++ Environment)
> accumulate.cpp
> Linking... (Intel C++ Environment)
> xilink: executing 'link'
> Embedding manifest... (Microsoft VC++ Environment)
> 
> -------
> 
> Build log was saved at 
> "file://D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\examples\accumulate\BuildLog.htm" 

Unless we make these build logs available in our own build reports
removing this bit would eliminate some more clutter.

Martin

> 
> accumulate - 0 error(s), 0 warning(s)
> 
> 
> Contrast that to the gcc log on CygWin:
> 
> generating dependencies for $(TOPDIR)/examples/manual/accumulate.cpp
> gcc -M -I$(TOPDIR)/include/ansi   -D_REENTRANT -mthreads 
> -I$(TOPDIR)/include -I$(BUILDDIR)/include -I$(TOPDIR)/examples/include 
> -pedantic -nostdinc++ -O2   -W -Wall -Wcast-qual -Winline -Wshadow 
> -Wwrite-strings -Wno-long-long -Wcast-align 
> $(TOPDIR)/examples/manual/accumulate.cpp
> 
> gcc -c -I$(TOPDIR)/include/ansi   -D_REENTRANT -mthreads 
> -I$(TOPDIR)/include -I$(BUILDDIR)/include -I$(TOPDIR)/examples/include 
> -pedantic -nostdinc++ -O2   -W -Wall -Wcast-qual -Winline -Wshadow 
> -Wwrite-strings -Wno-long-long -Wcast-align 
> $(TOPDIR)/examples/manual/accumulate.cpp
> 
> gcc accumulate.o -o accumulate -mthreads  -L$(BUILDDIR)/lib  -lstd 
> -lsupc++ -lcatgets -liconv -lm
> 


RE: improving Windows build logs

Posted by Farid Zaripov <Fa...@epam.com>.
> -----Original Message-----
> From: Travis Vitek [mailto:tvitek@quovadx.com] 
> Sent: Wednesday, September 26, 2007 8:49 PM
> To: stdcxx-dev@incubator.apache.org
> Subject: RE: improving Windows build logs
> 
> The kernel32.lib and user32.lib libraries appear in the 
> 'Additional Dependencies' list in the Linker | Input section 
> of the project properties. These libraries are in addition to 
> the default libraries that the project assumes.
> 
> You can disable all default libraries by adding the 
> /NODEFAULTLIB linker option without specifying a library 
> name. In that case, I believe that you could eliminate the 
> /NODEFAULTLIB:msvcprtd.lib entry also.
> 
> If you use the /NODEFAULTLIB option, then you need to 
> remember to add the C library to the Additional Dependencies 
> list. The C library you need to add depends on the build type 
> [more specifically, it depends on the /MT or /MD flag that is 
> used]. Information on which library to link can be found here 
> http://msdn2.microsoft.com/en-us/library/abx4dbyh(VS.80).aspx.

  Yes, I know about /NODEFAULTLIB option. Unfortunatelly
specifying of this option ignores the CRT, ATL, MFC libraries only
and not including the libraries from CoreWin.vsprops file. You can
see that setting this option doesn't removes list of the WinAPI
libraries from command line in Linker | Command Line section
of the project properties.

Farid.

RE: improving Windows build logs

Posted by Travis Vitek <tv...@quovadx.com>.
Farid Zaripov wrote
>
>
>  The first "kernel32.lib user32.lib" are appended by the solution
>generation script
>because the default list on MSVCExpress contains kernel32.lib only.
>
>  I can't do enything with appending of the default list of libraries.
>The only I can do is remove that list from build logs.
>
>Farid.
>

The kernel32.lib and user32.lib libraries appear in the 'Additional
Dependencies' list in the Linker | Input section of the project
properties. These libraries are in addition to the default libraries
that the project assumes.

You can disable all default libraries by adding the /NODEFAULTLIB linker
option without specifying a library name. In that case, I believe that
you could eliminate the /NODEFAULTLIB:msvcprtd.lib entry also.

If you use the /NODEFAULTLIB option, then you need to remember to add
the C library to the Additional Dependencies list. The C library you
need to add depends on the build type [more specifically, it depends on
the /MT or /MD flag that is used]. Information on which library to link
can be found here
http://msdn2.microsoft.com/en-us/library/abx4dbyh(VS.80).aspx.

Travis


Re: improving Windows build logs

Posted by Martin Sebor <se...@roguewave.com>.
Farid Zaripov wrote:
>> -----Original Message-----
>> From: Martin Sebor [mailto:sebor@roguewave.com] 
>> Sent: Wednesday, September 26, 2007 8:10 AM
>> To: stdcxx-dev@incubator.apache.org
>> Subject: RE: improving Windows build logs
>>
>>
>> Farid, if it works for you, it would be great to get rid of 
>> the unnecessary libraries before the planned merge so we can 
>> test the changes.
> 
>   As you can see the libraries list begins from "kernel32.lib
> user32.lib"
> and then follows "kernel32.lib user32.lib gdi32.lib winspool.lib ...".
> The first "kernel32.lib user32.lib" is coming from solution generation
> script,
> that specifies to link the all project with this libraries. The rest
> libraries
> (including the kernel32.lib user32.lib too) is appended by VisualStudio
> build
> environment automatically. Actually this list is located in
> %VCInstallDir%\VCProjectDefaults\CoreWin.vsprops file
> (%VCInstallDir%\VCProjectDefaults\CoreWin.vcstyle file for MSVC 7.1)

That's frustrating. The tool shouldn't be forcing us to link with
libraries that aren't used. It's possible that they are ignored
(and eliminated) by the linker but it still sends the wrong
message to users who copy the command line options from our logs
into their makefiles. I'm beginning to think that we might want
to consider generating and using makefiles to build the library
instead of (or in addition to) the library project/solution.

> 
>   The first "kernel32.lib user32.lib" are appended by the solution
> generation script
> because the default list on MSVCExpress contains kernel32.lib only.
> 
>   I can't do enything with appending of the default list of libraries.
> The only I
> can do is remove that list from build logs.

I would definitely not do that. If we're linking with the libs
it needs to show in the logs, if only as a reminder to us that
we should see about removing them in the next version of Visual
Studio, if it's possible.

Martin

RE: improving Windows build logs

Posted by Farid Zaripov <Fa...@epam.com>.
> -----Original Message-----
> From: Martin Sebor [mailto:sebor@roguewave.com] 
> Sent: Wednesday, September 26, 2007 8:10 AM
> To: stdcxx-dev@incubator.apache.org
> Subject: RE: improving Windows build logs
> 
> 
> Farid, if it works for you, it would be great to get rid of 
> the unnecessary libraries before the planned merge so we can 
> test the changes.

  As you can see the libraries list begins from "kernel32.lib
user32.lib"
and then follows "kernel32.lib user32.lib gdi32.lib winspool.lib ...".
The first "kernel32.lib user32.lib" is coming from solution generation
script,
that specifies to link the all project with this libraries. The rest
libraries
(including the kernel32.lib user32.lib too) is appended by VisualStudio
build
environment automatically. Actually this list is located in
%VCInstallDir%\VCProjectDefaults\CoreWin.vsprops file
(%VCInstallDir%\VCProjectDefaults\CoreWin.vcstyle file for MSVC 7.1)

  The first "kernel32.lib user32.lib" are appended by the solution
generation script
because the default list on MSVCExpress contains kernel32.lib only.

  I can't do enything with appending of the default list of libraries.
The only I
can do is remove that list from build logs.

Farid.

RE: improving Windows build logs

Posted by Martin Sebor <se...@roguewave.com>.
Farid, if it works for you, it would be great to get rid of the
unnecessary libraries before the planned merge so we can
test the changes.

Martin


Martin Sebor wrote:
> 
> 
> Farid Zaripov-2 wrote:
>> 
>>> -----Original Message-----
>>> From: Martin Sebor [mailto:sebor@roguewave.com] 
>>> Sent: Monday, September 17, 2007 8:32 PM
>>> To: stdcxx-dev@incubator.apache.org
>>> Subject: Re: improving Windows build logs
>>> 
>>> Any ideas or thoughts on this, anyone? Farid?
>> 
>>   I've already implemented some of your hints:
>> - replacing of the long paths to the $(BUILDDIR), $(TOPDIR);
>> - specifying only one library in /NODEFAULTLIB option;
>> - removing "Build log was saved at file:///.../BuildLoh.htm".
>> 
>> http://svn.apache.org/viewvc?rev=574643&view=rev
>> 
>> 
>>   Any other hints will be appreciated :)
>> 
>> Farid.
>> 
>> 
> 
> I noticed some of the changes, they are a definite improvement!
> 
> I would also remove all the  unnecessary libs. I'm 90% sure we
> only need kernel32.lib and user32.lib.
> 
> Martin
> 

-- 
View this message in context: http://www.nabble.com/improving-Windows-build-logs-tf4416086.html#a12894090
Sent from the stdcxx-dev mailing list archive at Nabble.com.


RE: improving Windows build logs

Posted by Martin Sebor <se...@roguewave.com>.

Farid Zaripov-2 wrote:
> 
>> -----Original Message-----
>> From: Martin Sebor [mailto:sebor@roguewave.com] 
>> Sent: Monday, September 17, 2007 8:32 PM
>> To: stdcxx-dev@incubator.apache.org
>> Subject: Re: improving Windows build logs
>> 
>> Any ideas or thoughts on this, anyone? Farid?
> 
>   I've already implemented some of your hints:
> - replacing of the long paths to the $(BUILDDIR), $(TOPDIR);
> - specifying only one library in /NODEFAULTLIB option;
> - removing "Build log was saved at file:///.../BuildLoh.htm".
> 
> http://svn.apache.org/viewvc?rev=574643&view=rev
> 
> 
>   Any other hints will be appreciated :)
> 
> Farid.
> 
> 

I noticed some of the changes, they are a definite improvement!

I would also remove all the  unnecessary libs. I'm 90% sure we
only need kernel32.lib and user32.lib.

Martin
-- 
View this message in context: http://www.nabble.com/improving-Windows-build-logs-tf4416086.html#a12790651
Sent from the stdcxx-dev mailing list archive at Nabble.com.


RE: improving Windows build logs

Posted by Farid Zaripov <Fa...@epam.com>.
> -----Original Message-----
> From: Martin Sebor [mailto:sebor@roguewave.com] 
> Sent: Monday, September 17, 2007 8:32 PM
> To: stdcxx-dev@incubator.apache.org
> Subject: Re: improving Windows build logs
> 
> Any ideas or thoughts on this, anyone? Farid?

  I've already implemented some of your hints:
- replacing of the long paths to the $(BUILDDIR), $(TOPDIR);
- specifying only one library in /NODEFAULTLIB option;
- removing "Build log was saved at file:///.../BuildLoh.htm".

http://svn.apache.org/viewvc?rev=574643&view=rev


  Any other hints will be appreciated :)

Farid.

Re: improving Windows build logs

Posted by Martin Sebor <se...@roguewave.com>.
Any ideas or thoughts on this, anyone? Farid?

Martin


Martin Sebor wrote:
> I find the Windows build logs very hard to read, and exceedingly
> difficult to find errors in. One big problem, IMO, is all the junk
> (presumably) emitted by IDE to tell us what the command line looks
> like. What can be done about this to make the Windows logs as
> readable as the UNIX ones?
> 
> For instance, here's the output of building the accumulate example
> with Intel C++:
> 
> Build started: Project: accumulate, Configuration: 12d Optimized 
> Thread-safe Dll|Win32
> 
> -------
> 
> Creating temporary file "C:\DOCUME~1\batman\LOCALS~1\Temp\RSP1E05.bs" 
> with contents
> [
> /c /O1 /I "D:\bman5\builds\34008642\source-buildspace\examples\include" 
> /I "D:\bman5\builds\34008642\source-buildspace\include" /I 
> "D:\bman5\builds\34008642\source-buildspace\include\ansi" /I 
> "D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\include" 
> /D "_RWSHARED" /D "_MBCS" /FD /EHsc /MD /GS- /GR 
> /Fo"D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\examples\accumulate/" 
> /W3 /nologo /Zi /Gd /D_CRT_SECURE_NO_DEPRECATE  /GA /Qvc8 
> /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 8\VC\bin"
> ..\..\..\..\examples\manual\accumulate.cpp
> ]
> Creating command line "icl.exe 
> "@C:\DOCUME~1\batman\LOCALS~1\Temp\RSP1E05.bs""
> Creating temporary file "C:\DOCUME~1\batman\LOCALS~1\Temp\RSP1E09.bs" 
> with contents
> [
> kernel32.lib user32.lib kernel32.lib user32.lib gdi32.lib winspool.lib 
> comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib 
> odbc32.lib odbccp32.lib 
> /OUT:"D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\examples\accumulate.exe" 
> /INCREMENTAL:NO /nologo /NODEFAULTLIB:"libcp.lib" 
> /NODEFAULTLIB:"libcpd.lib" /NODEFAULTLIB:"libcpmt.lib" 
> /NODEFAULTLIB:"libcpmtd.lib" /NODEFAULTLIB:"msvcprt.lib" 
> /NODEFAULTLIB:"msvcprtd.lib" /TLBID:1 /DEBUG 
> /PDB:"D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\examples\accumulate.pdb" 
> /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF 
> /IMPLIB:"D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\examples\accumulate.lib" 
> /MANIFEST 
> /MANIFESTFILE:"D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\examples\accumulate\accumulate.exe.intermediate.manifest" 
> 
> D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\lib\libstd12d.lib 
> 
> D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\examples\accumulate/accumulate.obj 
> 
> ]
> Creating command line "xilink.exe 
> "@C:\DOCUME~1\batman\LOCALS~1\Temp\RSP1E09.bs""
> Creating temporary file "C:\DOCUME~1\batman\LOCALS~1\Temp\RSP1E0E.bs" 
> with contents
> [
> /nologo /manifest 
> "D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\examples\accumulate\accumulate.exe.intermediate.manifest" 
> /outputresource:"D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\examples\accumulate.exe";#1 
> 
> ]
> Creating command line "mt.exe 
> "@C:\DOCUME~1\batman\LOCALS~1\Temp\RSP1E0E.bs""
> 
> -------
> 
> Compiling with Intel(R) C++ 10.0.026 [IA-32]... (Intel C++ Environment)
> accumulate.cpp
> Linking... (Intel C++ Environment)
> xilink: executing 'link'
> Embedding manifest... (Microsoft VC++ Environment)
> 
> -------
> 
> Build log was saved at 
> "file://D:\bman5\builds\34008642\source-buildspace\build\icc-10.0\12d\examples\accumulate\BuildLog.htm" 
> 
> accumulate - 0 error(s), 0 warning(s)
> 
> 
> Contrast that to the gcc log on CygWin:
> 
> generating dependencies for $(TOPDIR)/examples/manual/accumulate.cpp
> gcc -M -I$(TOPDIR)/include/ansi   -D_REENTRANT -mthreads 
> -I$(TOPDIR)/include -I$(BUILDDIR)/include -I$(TOPDIR)/examples/include 
> -pedantic -nostdinc++ -O2   -W -Wall -Wcast-qual -Winline -Wshadow 
> -Wwrite-strings -Wno-long-long -Wcast-align 
> $(TOPDIR)/examples/manual/accumulate.cpp
> 
> gcc -c -I$(TOPDIR)/include/ansi   -D_REENTRANT -mthreads 
> -I$(TOPDIR)/include -I$(BUILDDIR)/include -I$(TOPDIR)/examples/include 
> -pedantic -nostdinc++ -O2   -W -Wall -Wcast-qual -Winline -Wshadow 
> -Wwrite-strings -Wno-long-long -Wcast-align 
> $(TOPDIR)/examples/manual/accumulate.cpp
> 
> gcc accumulate.o -o accumulate -mthreads  -L$(BUILDDIR)/lib  -lstd 
> -lsupc++ -lcatgets -liconv -lm
> 
>