RE: __rw_once warnings in non-reentrant Windows builds?
-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]
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
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]
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]
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
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
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
-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
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