> -----Original Message-----
> From: Martin Sebor [mailto:[EMAIL PROTECTED] 
> Sent: Monday, September 10, 2007 6:35 PM
> To: stdcxx-dev@incubator.apache.org
> Subject: Re: svn commit: r574015 - 
> /incubator/stdcxx/trunk/etc/config/windows/projectdef.js
> 
> [EMAIL PROTECTED] wrote:
> > Author: faridz
> > Date: Sun Sep  9 06:57:32 2007
> > New Revision: 574015
> > 
> > URL: http://svn.apache.org/viewvc?rev=574015&view=rev
> > Log:
> > 2007-09-09 Farid Zaripov <[EMAIL PROTECTED]>
> > 
> >     * projectdef.js (projectCreateVCProject): Enable using of the
> >     intrinsic functions in release builds.
> 
> Unless it's obvious, it's helpful to say why a change was made.
> You might know why now and some of the rest of us who read 
> the list might be able to guess (to enable the Interlocked functions,
> right?) but others who just read the ChangeLog may not.

  No. The Interlocked functions will be intrinsic in all builds, because
of
presence of the #pragma intrinsic (Interlockedxxx) in _mutex.h

  The purpose of this patch is enable using of some CRT functions
(memcmp, memcpy, memset, ...) as intrinsic in release builds.
The full list of intrinsic CRT functions here:
http://msdn2.microsoft.com/en-us/library/tzkfha43(VS.80).aspx

  But now I can say, that this patch is useless. The projects in
release builds are compiled with /O1 optimization, which not includes
/Oi option. And setting of the EnableIntrinsicFunctions property to true
doesn't leads to compiling with /Oi option unless /O1 or /O2 options
are not specified. So we should append /Oi to the command line manually
(using AdditionalOptions property) to enable using of CRT functions
as intrinsic (or use /O2 optimization, because /O2 implies /Oi).

Farid.

Reply via email to