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/07 00:10:30 UTC

Re: svn commit: r573337 - in /incubator/stdcxx/trunk: etc/config/windows/projects.js include/rw/_mutex.h src/i86/atomic.asm src/i86_64/atomic.asm src/once.cpp

faridz@apache.org wrote:
> Author: faridz
> Date: Thu Sep  6 12:05:30 2007
> New Revision: 573337
> 
> URL: http://svn.apache.org/viewvc?rev=573337&view=rev
> Log:
> 2007-09-06 Farid Zaripov <Fa...@epam.com>
> 
> 	* projects.js: Added definitions of the platform dependent files.
> 	* i86/atomic.asm: New file with definitions of the __rw_atomic_xxx()
> 	functions for Win32 platform.
> 	* i86_64/atomic.asm: New file with definitions of the
> 	__rw_atomic_xxx() functions for Windows/x64 platform.
> 	* _mutex.h: Use new __rw_atomic_xxx() functions if corresponding
> 	InterlockedXXX() functions are not present.
> 	[_MSC_VER >= 1400]: Use intrinsic InterlockedXXX() functions
> 	on MSVC 8 and higher.
> 	* once.cpp [_WIN32 && _DLL]: Tell linker to export __atomic_xxx()
> 	functions, defined in .asm files.

Is there any particular reason why the export directives should
be in once.cpp? We have an export.cpp (currently used only by
the EDG eccp C++ export feature) which seems like it might be
a better choice. Alternatively, we could add a new file, say
atomic.cpp. I don't suppose we could put the pragmas in the
.asm files themselves?

> 
[...]
> --- incubator/stdcxx/trunk/etc/config/windows/projects.js (original)
> +++ incubator/stdcxx/trunk/etc/config/windows/projects.js Thu Sep  6 12:05:30 2007
> @@ -85,6 +85,10 @@
>      projectDefs.push(new Array(configureDef));
>  
>  ///////////////////////////////////////////////////////////////////////////////
> +    // add platform dependent files
> +    customFileDefs.push(new CustomFileDef("i86\\atomic.asm", "Win32", InitAsmTool));
> +    customFileDefs.push(new CustomFileDef("i86_64\\atomic.asm", "x64", InitAsmTool));

Is there a way to get the Windows infrastructure to pick up these
files automatically just like it does .cpp files so that we avoid
this kind of coupling?

Martin

RE: svn commit: r573337 - in /incubator/stdcxx/trunk: etc/config/windows/projects.js include/rw/_mutex.h src/i86/atomic.asm src/i86_64/atomic.asm src/once.cpp

Posted by Farid Zaripov <Fa...@epam.com>.
> -----Original Message-----
> From: Martin Sebor [mailto:sebor@roguewave.com] 
> Sent: Friday, September 07, 2007 1:11 AM
> To: stdcxx-dev@incubator.apache.org
> Subject: Re: svn commit: r573337 - in 
> /incubator/stdcxx/trunk: etc/config/windows/projects.js 
> include/rw/_mutex.h src/i86/atomic.asm src/i86_64/atomic.asm 
> src/once.cpp
> 
> Is there any particular reason why the export directives 
> should be in once.cpp?
  No reason. The export directives can be in any .cpp file.

> We have an export.cpp (currently used 
> only by the EDG eccp C++ export feature) which seems like it 
> might be a better choice. Alternatively, we could add a new 
> file, say atomic.cpp.

> I don't suppose we could put the pragmas in the .asm files themselves?
  No, we can't.

> Is there a way to get the Windows infrastructure to pick up 
> these files automatically just like it does .cpp files so 
> that we avoid this kind of coupling?
  Done: http://svn.apache.org/viewvc?rev=573571&view=rev

Farid.