RE: __rw_once warnings in non-reentrant Windows builds?

2007-10-19 Thread Farid Zaripov
 -Original Message-
 From: Martin Sebor [mailto:[EMAIL PROTECTED] 
 Sent: Tuesday, October 16, 2007 6:10 PM
 To: stdcxx-dev@incubator.apache.org
 Subject: Re: __rw_once warnings in non-reentrant Windows builds?
 
We could safely #undefine _RWSTD_REENTRANT macro for out 
  single-threaded builds.
 
 I think we *should* do that. The Visual Studio CRT can always 
 be thread safe but if we give our users the choice between 
 reentrant builds of stdcxx and non-reentrant ones and they 
 pick the latter we need to honor it.

  The patch is below.

 For 4.2.0, I think we just need to go with what we have now 
 but we should make this work right in 4.2.1.

  ChangeLog:
  * etc/config/windows/configure.wsf (configure): #define
_RWSTD_NO_REENTRANT macro
  in config.h file for single-threaded builds.
  * include/rw/_config-msvcrt.h: #define _RWSTD_REENTRANT macro only if
#defined _MT
  and not #defined _RWSTD_NO_REENTRANT, for single-threaded builds with
compilers,
  that doesn't have the single-threaded CRT (i.e MSVC 8, MSVC 9).

--
Index: etc/config/windows/configure.wsf
===
--- etc/config/windows/configure.wsf(revision 586373)
+++ etc/config/windows/configure.wsf(working copy)
@@ -265,6 +265,11 @@
 // headers and functions check
 checkHeaders();
 
+if (confInfo.mt)
+appendLineToOutFile(// #define _RWSTD_NO_REENTRANT);
+else
+appendLineToOutFile(#define _RWSTD_NO_REENTRANT);
+
 // compile .lib.cpp s
 if (0 == compileLibs(confInfo.dll))
 cleanQuit(1, exitmsg);
Index: include/rw/_config-msvcrt.h
===
--- include/rw/_config-msvcrt.h (revision 586373)
+++ include/rw/_config-msvcrt.h (working copy)
@@ -185,7 +185,7 @@
 #  define _WIN32
 #endif
 
-#ifdef _MT
+#if defined (_MT)  !defined (_RWSTD_NO_REENTRANT)
 #  ifndef _RWSTD_REENTRANT
 #define _RWSTD_REENTRANT 1
 #  endif   // _RWSTD_REENTRANT
@@ -196,11 +196,14 @@
 #  define _RWSTD_THREAD   __declspec (thread)
 #endif   // _RWSTD_THREAD
 #  endif   // _RWSTD_NO_TLS
-#else   // if !defined (_MT)
+#else   // if !defined (_MT) || defined (_RWSTD_NO_REENTRANT)
+#  ifdef _RWSTD_REENTRANT
+#undef _RWSTD_REENTRANT
+#  endif   // _RWSTD_REENTRANT
 #  ifndef _RWSTD_THREAD
 #define _RWSTD_THREAD   /* empty */
 #  endif   // _RWSTD_THREAD
-#endif   //_MT
+#endif   // _MT  !_RWSTD_NO_REENTRANT
 
 #if defined (_CPPRTTI)
  // override in case library was configured with -GR-
--

Farid.


RE: [Fwd: [VOTE RESULT] graduate stdcxx to TLP]

2007-10-19 Thread Tim Adams
Thanks for the candor, and the update Bill.   

-- Tim

-Original Message-
From: William A. Rowe, Jr. [mailto:[EMAIL PROTECTED] 
Sent: Thursday, October 18, 2007 9:05 PM
To: stdcxx-dev@incubator.apache.org
Subject: Re: [Fwd: [VOTE RESULT] graduate stdcxx to TLP]

Justin Erenkrantz wrote:
 On 10/18/07, Tim Adams [EMAIL PROTECTED] wrote:
 Has anyone heard any news about the Board vote?
 
 The Incubator PMC vote closed too late to be included in this month's 
 meeting.  It'll have to wait until next month's meeting.  -- justin

Correction; I would have added it to the agent; unfortunately however,
nobody (Noel, Martin, Justin or I) forwarded it to the board@ to even
consider.  Our collective mistake, this will be taken up Wed the 14th at
ApacheCon, and you'll have the news up or down (likely up) before the
fast feather tracks on Thursday.

Bill


RE: [VOTE] release stdcxx 4.2.0

2007-10-19 Thread Travis Vitek

Sure. 

Martin Sebor wrote:

Ugh. I thought you had covered all the issues in your patch.
I should have read your post more carefully. Let me work on
sections 4.4, and 6. I could use help with section 4.6, the
Windows build directory structure and Windows installation.
I'm not sure if Farid's still online after pulling an
allnighter last night. If not, Travis, can you give it a try?

Martin



Re: [Fwd: [VOTE RESULT] graduate stdcxx to TLP]

2007-10-19 Thread Martin Sebor

William A. Rowe, Jr. wrote:

Justin Erenkrantz wrote:

On 10/18/07, Tim Adams [EMAIL PROTECTED] wrote:

Has anyone heard any news about the Board vote?


The Incubator PMC vote closed too late to be included in this month's
meeting.  It'll have to wait until next month's meeting.  -- justin


Correction; I would have added it to the agent; unfortunately however,
nobody (Noel, Martin, Justin or I) forwarded it to the board@ to even
consider.  Our collective mistake, this will be taken up Wed the 14th
at ApacheCon, and you'll have the news up or down (likely up) before
the fast feather tracks on Thursday.


I thought about asking what else needed to be done when I closed
the vote but in the end decided against it on the assumption that
it would get automatically picked up by someone from the IPMC.
I should have read the Graduation Guide more carefully -- my bad.
Unless one of you has already beat me to it, I'll forward the
resolution in the expected format to the Board in time for the
next meeting, i.e., at least 3 days prior to 11/14.

Martin


Re: [Fwd: [VOTE RESULT] graduate stdcxx to TLP]

2007-10-19 Thread William A. Rowe, Jr.

Martin Sebor wrote:

I should have read the Graduation Guide more carefully -- my bad.


:)


Unless one of you has already beat me to it, I'll forward the
resolution in the expected format to the Board in time for the
next meeting, i.e., at least 3 days prior to 11/14.


Please do - in fact you can go ahead and do that now, we'll make
sure it lands in the agenda.


Re: svn commit: r586502 - /incubator/stdcxx/branches/4.2.0/include/rw/_config-msvcrt.h

2007-10-19 Thread Martin Sebor

Martin Sebor wrote:

Martin Sebor wrote:

Farid Zaripov wrote:

[...]

  I think we can also include the following patch in 4.2.0 release:
http://www.nabble.com/__rw_once-warnings-in-non-reentrant-Windows-builds
--tf4634599.html#a13295746


This makes it possible to do non-reentrant builds with MSVC 8
just like with MSVC 7, correct? I.e., it makes the 8s and 11s
build types non-reentrant when using MSVC 8, as they are in
stdcxx 4.1.3 (when using MSVC 7). If you're comfortable that
the patch is good for all compilers and build types I have no
objection. Does anyone have a problem with this?


Since I haven't heard any objections I'm going to put this in.


Okay, it's in. Farid, I took the liberty to tweak your change
log entry to add a little bit more detail (and correct the
formatting).

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

Martin



Re: svn commit: r586502 - /incubator/stdcxx/branches/4.2.0/include/rw/_config-msvcrt.h

2007-10-19 Thread Martin Sebor

Farid Zaripov wrote:

-Original Message-
From: Martin Sebor [mailto:[EMAIL PROTECTED] 
Sent: Friday, October 19, 2007 7:40 PM

To: stdcxx-dev@incubator.apache.org
Subject: Re: svn commit: r586502 - 
/incubator/stdcxx/branches/4.2.0/include/rw/_config-msvcrt.h



  I think we can also include the following patch in 4.2.0 release:


http://www.nabble.com/__rw_once-warnings-in-non-reentrant-Windows-buil

ds
--tf4634599.html#a13295746
This makes it possible to do non-reentrant builds with MSVC 8 
just like with MSVC 7, correct? I.e., it makes the 8s and 11s 
build types non-reentrant when using MSVC 8, as they are in 
stdcxx 4.1.3 (when using MSVC 7).


  Yes. This patch puts in config.h _RWSTD_NO_REENTRANT macro at
configuration step. And then if this macro is defined, then
_RWSTD_REENTRANT
macro will not be defined or undefined (if it already defined) in
_config-msvcrt.h.

 If you're comfortable that 
the patch is good for all compilers and build types I have no 
objection. Does anyone have a problem with this?


  This patch affects only MSVC and ICC/Windows compilers.


Right, that's what I meant, but we have a number of them on
our test matrix (MSVC 7.1, 8.0, and the 9.0 beta, and Intel
C++ 9.1 and 10). I'm looking for assurance that the patch
won't break any of them, in any configuration (build type).

Martin


RE: svn commit: r586502 - /incubator/stdcxx/branches/4.2.0/include/rw/_config-msvcrt.h

2007-10-19 Thread Farid Zaripov
 -Original Message-
 From: Martin Sebor [mailto:[EMAIL PROTECTED] 
 Sent: Friday, October 19, 2007 7:40 PM
 To: stdcxx-dev@incubator.apache.org
 Subject: Re: svn commit: r586502 - 
 /incubator/stdcxx/branches/4.2.0/include/rw/_config-msvcrt.h
 
I think we can also include the following patch in 4.2.0 release:
  
 http://www.nabble.com/__rw_once-warnings-in-non-reentrant-Windows-buil
  ds
  --tf4634599.html#a13295746
 
 This makes it possible to do non-reentrant builds with MSVC 8 
 just like with MSVC 7, correct? I.e., it makes the 8s and 11s 
 build types non-reentrant when using MSVC 8, as they are in 
 stdcxx 4.1.3 (when using MSVC 7).

  Yes. This patch puts in config.h _RWSTD_NO_REENTRANT macro at
configuration step. And then if this macro is defined, then
_RWSTD_REENTRANT
macro will not be defined or undefined (if it already defined) in
_config-msvcrt.h.

  If you're comfortable that 
 the patch is good for all compilers and build types I have no 
 objection. Does anyone have a problem with this?

  This patch affects only MSVC and ICC/Windows compilers.

Farid.


Re: svn commit: r586502 - /incubator/stdcxx/branches/4.2.0/include/rw/_config-msvcrt.h

2007-10-19 Thread Martin Sebor

Farid Zaripov wrote:

-Original Message-
From: Martin Sebor [mailto:[EMAIL PROTECTED] 
Sent: Friday, October 19, 2007 6:51 PM

To: stdcxx-dev@incubator.apache.org
Subject: Re: svn commit: r586502 - 
/incubator/stdcxx/branches/4.2.0/include/rw/_config-msvcrt.h


I take it this is necessary for 4.2.0?


  Definitely. I've tested the 4.2.0 HEAD revision and got many
linker errors in static builds. The same results you can see
in nightly builds results. There all static builds are pink color.


Okay, let me also merge it out to 4.2.x (the latest -rc-6 tag
is based off of 4.2.x rather than 4.2.0 as all the previous
tags; going forward, i.e., after the 4.2.0 release, we will
continue to maintain and update 4.2.x for 4.2.1, 4.2.2, etc.,
but we won't touch the [misnamed] 4.2.0 branch).



http://people.apache.org/~sebor/stdcxx/results/


(If so, we will have to create a new release candidate.)


  I think we can also include the following patch in 4.2.0 release:
http://www.nabble.com/__rw_once-warnings-in-non-reentrant-Windows-builds
--tf4634599.html#a13295746


This makes it possible to do non-reentrant builds with MSVC 8
just like with MSVC 7, correct? I.e., it makes the 8s and 11s
build types non-reentrant when using MSVC 8, as they are in
stdcxx 4.1.3 (when using MSVC 7). If you're comfortable that
the patch is good for all compilers and build types I have no
objection. Does anyone have a problem with this?

Martin