Boost C++ Libraries: Ticket #4475: OpenVMS patch for 64 bit support https://svn.boost.org/trac10/ticket/4475 <p> Hello, </p> <p> This patch provides 64 bit fixes for OpenVMS platform. </p> <p> It is <strong>very important</strong> for the organization I work for to submit them to upstream Boost in order to make an upgrade to future Boost versions simpler. </p> <p> This patch related to ticket: <a class="new ticket" href="https://svn.boost.org/trac10/ticket/4473" title="#4473: Patches: OpenVMS patch for Asio (new)">#4473</a> </p> <p> Thanks, </p> <blockquote> <p> Artyom </p> </blockquote> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/4475 Trac 1.4.3 artyomtnk@… Tue, 27 Jul 2010 14:10:29 GMT attachment set https://svn.boost.org/trac10/ticket/4475 https://svn.boost.org/trac10/ticket/4475 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">date_time.patch</span> </li> </ul> Ticket Rob Stewart Thu, 13 Jan 2011 13:09:48 GMT <link>https://svn.boost.org/trac10/ticket/4475#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/4475#comment:1</guid> <description> <p> You propose the following structure: </p> <pre class="wiki">#if defined(__VMS) &amp;&amp; __INITIAL_POINTER_SIZE == 64 std::tm tmp; if(!localtime_r(t,&amp;tmp)) result = 0; else *result = tmp; #else result = localtime_r(t, result); #endif </pre><p> Why not this instead? That is, why is <code>tmp</code> needed? </p> <pre class="wiki">#if defined(__VMS) &amp;&amp; __INITIAL_POINTER_SIZE == 64 if (!localtime_r(t, result)) result = 0; #else result = localtime_r(t, result); #endif </pre> </description> <category>Ticket</category> </item> <item> <author>artyomtnk@…</author> <pubDate>Thu, 13 Jan 2011 13:33:37 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/4475#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/4475#comment:2</guid> <description> <p> The problem is that VMS allows mixed 32 and 64 bit pointers (something like DOS's near/far) and some system functions - in this case localetime_r, accept only 32 bit pointers while most accept both type of pointer. </p> <p> What happens is that I need to pass 32 bit pointer to the function to make sure it works. Result is 64 bit pointer so I can't pass it as is. So I create a local variable tmp that is placed on stack. And it is promised that stack is always placed in 32bit region so I can relate on the fact that the pointer would be 32bit pointer. </p> <p> And after I get the result I can copy it to the location of 64 bit pointer. </p> <p> This is quite ugly but that is how OpenVMS works. </p> <p> Thanks, </p> <blockquote> <p> Artyom </p> </blockquote> </description> <category>Ticket</category> </item> <item> <dc:creator>Marshall Clow</dc:creator> <pubDate>Wed, 30 Mar 2011 22:25:28 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/4475#comment:3 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/4475#comment:3</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/70767" title="Applied patch - Refs #4475">[70767]</a>) Applied patch - Refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/4475" title="#4475: Patches: OpenVMS patch for 64 bit support (closed: fixed)">#4475</a> </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Marshall Clow</dc:creator> <pubDate>Mon, 04 Apr 2011 23:33:56 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/4475#comment:4 https://svn.boost.org/trac10/ticket/4475#comment:4 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/70982" title="Merge date/time fixes to release. Fixes #4475">[70982]</a>) Merge date/time fixes to release. Fixes <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/4475" title="#4475: Patches: OpenVMS patch for 64 bit support (closed: fixed)">#4475</a> </p> Ticket