Boost C++ Libraries: Ticket #2114: Patch for export symbols from shared library https://svn.boost.org/trac10/ticket/2114 <p> Attached patch provides macroses: <br /> <em>BOOST_DSO_EXPORT</em><br /> <em>BOOST_DSO_IMPORT</em><br /> etc...<br /> They specify what symbol to export/import when building/using <br /> shared library. Only compilers msvc, borland and gcc affected.<br /> For the others toolsets macroses do nothing.<br /> Also, all the libraries updated <br /> (mainly config.hpp and Jamfile.v2 files) in order to use <br /> export/import functionality.<br /> Boost.Serialization and Boost.Python wasn't touched because <br /> Serialization had a lot of linker errors when running <br /> test cases and <br /> Boost.Python had it's own gcc export/import stuff. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/2114 Trac 1.4.3 anonymous Mon, 14 Jul 2008 06:02:24 GMT attachment set https://svn.boost.org/trac10/ticket/2114 https://svn.boost.org/trac10/ticket/2114 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">dso_export.patch</span> </li> </ul> <p> patch file </p> Ticket Jürgen Hunold Wed, 10 Sep 2008 17:00:31 GMT <link>https://svn.boost.org/trac10/ticket/2114#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/2114#comment:1</guid> <description> <p> One example of missing visibility support is <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/2309" title="#2309: Bugs: Lack of g++ symbol visibility support in Boost.Thread (closed: fixed)">#2309</a>. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Fri, 05 Dec 2008 14:40:58 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/2114#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/2114#comment:2</guid> <description> <p> I don't see BOOST_DSO_EXPORT_EXCEPTION and BOOST_DSO_IMPORT_EXCEPTION used anywere. What does it means? </p> </description> <category>Ticket</category> </item> <item> <author>arhipjan@…</author> <pubDate>Fri, 05 Dec 2008 16:00:14 GMT</pubDate> <title>owner set https://svn.boost.org/trac10/ticket/2114#comment:3 https://svn.boost.org/trac10/ticket/2114#comment:3 <ul> <li><strong>owner</strong> set to <span class="trac-author">Dave Abrahams</span> </li> </ul> Ticket anonymous Fri, 05 Dec 2008 16:22:08 GMT <link>https://svn.boost.org/trac10/ticket/2114#comment:4 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/2114#comment:4</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/2114#comment:2" title="Comment 2">anonymous</a>: </p> <blockquote class="citation"> <p> I don't see BOOST_DSO_EXPORT_EXCEPTION and BOOST_DSO_IMPORT_EXCEPTION used anywere. What does it means? </p> </blockquote> <p> These macroses are intended for re-exporting symbols from shared libraries. <br /> (This use case - re-exporting - usually is only applied to exceptions ). <br /> You can find more details about exceptions that reside in shared libraries <br /> in this message: <br /> <a class="ext-link" href="http://thread.gmane.org/gmane.comp.lib.boost.devel/177304/focus=177414"><span class="icon">​</span>http://thread.gmane.org/gmane.comp.lib.boost.devel/177304/focus=177414</a> <br /> Yes, BOOST_DSO_EXPORT/IMPORT_EXCEPTION are not used anywhere, but they should.<br /> So, patch should be updated. But at first, <br /> exception re-exporting policy should be discussed with boost community<br /> </p> </description> <category>Ticket</category> </item> <item> <author>arhipjan@…</author> <pubDate>Thu, 11 Dec 2008 13:55:44 GMT</pubDate> <title>attachment set https://svn.boost.org/trac10/ticket/2114 https://svn.boost.org/trac10/ticket/2114 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">boost_build_symbol_export.patch</span> </li> </ul> <p> patch updated: boost-build part </p> Ticket anonymous Thu, 11 Dec 2008 13:57:15 GMT attachment set https://svn.boost.org/trac10/ticket/2114 https://svn.boost.org/trac10/ticket/2114 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">boost_symbol_export.patch</span> </li> </ul> <p> patch updated: boost part </p> Ticket Jürgen Hunold Fri, 29 May 2009 07:10:39 GMT <link>https://svn.boost.org/trac10/ticket/2114#comment:5 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/2114#comment:5</guid> <description> <p> I have attached an improved version of this path. Features: </p> <ul><li>no new headers needed, everything is in the current config headers </li><li>clearer macro names </li></ul><p> </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Vladimir Prus</dc:creator> <pubDate>Fri, 29 May 2009 07:45:30 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/2114#comment:6 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/2114#comment:6</guid> <description> <p> Jürgen, </p> <p> what is the meaning of BOOST_SYMBOL_FORWARD_EXPORT and BOOST_SYMBOL_FORWARD_IMPORT and BOOST_EXCEPTION_EXPORT and BOOST_EXCEPTION_IMPORT? Are there cases where special import/export is necessary? </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Jürgen Hunold</dc:creator> <pubDate>Fri, 29 May 2009 13:59:10 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/2114#comment:7 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/2114#comment:7</guid> <description> <p> Hi Dave, those two are used in Boost.Python: </p> <blockquote> <p> python/detail/config.hpp:73:#define BOOST_PYTHON_DECL_FORWARD BOOST_SYMBOL_FORWARD_EXPORT </p> </blockquote> <blockquote> <p> python/detail/config.hpp:74:#define BOOST_PYTHON_DECL_EXCEPTION BOOST_EXCEPTION_EXPORT </p> </blockquote> <p> I simply replaced the existing logic. I thought that you should know what they do. And please verify that I'm doing things right for Boost.Python. And Boost.Serialization uses some strange logic for Borland. Files: </p> <blockquote> <p> boost/serialization/config.hpp boost/archive/detail/decl.hpp </p> </blockquote> <p> I hope that helps </p> </description> <category>Ticket</category> </item> <item> <author>arhipjan@…</author> <pubDate>Fri, 29 May 2009 15:01:22 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/2114#comment:8 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/2114#comment:8</guid> <description> <p> 2 jhunold:<br /> Comments on updated patch<br /> </p> <ul><li>Why do you mind using separate headers? </li><li>win32.hpp: are you sure all the compilers (e.g., Intel) supports dllexport? </li><li>Strange diff in gcc.hpp: #define BOOST_NO_CHAR16_T </li><li>Originally, one of the ideas of BOOST_SYMBOL_XXX macro was to save typing, i.e.: <pre class="wiki">#if defined(BOOST_HAS_DECLSPEC) # if defined(BOOST_THREAD_BUILD_DLL) # define BOOST_THREAD_DECL __declspec(dllexport) //... becomes: //... #if defined(BOOST_THREAD_BUILD_DLL) # define BOOST_THREAD_DECL BOOST_SYMBOL_EXPORT </pre></li></ul><p> Regards </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Jürgen Hunold</dc:creator> <pubDate>Fri, 29 May 2009 17:48:51 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/2114#comment:9 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/2114#comment:9</guid> <description> <p> First, for longer discussions I prefer threaded Mails ;-)) I'm not strictly against separate headers, but the macros just fit into the existing headers. No need to introduce another one. </p> <p> win32.hpp did just #define BOOST_HAS_DECLSPEC for all compilers including <a class="missing wiki">Intel/Windows</a>. I can not test <a class="missing wiki">Intel/Linux</a>, so no changes for this one. The only thing I am not sure are the strange things Boost.Serialization does for Borland what no other library does. So I skipped serialization,too. </p> <p> gcc.hpp: Thanks for pointing this out, seems like a merge relict. Beman added the tr1 macros at the same place. </p> <p> And finally I decided to make the patches small and remove the code duplication in the libraries later. The complete patches are more difficult to understand. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Jürgen Hunold</dc:creator> <pubDate>Fri, 29 May 2009 17:55:50 GMT</pubDate> <title>attachment set https://svn.boost.org/trac10/ticket/2114 https://svn.boost.org/trac10/ticket/2114 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">boost_visibility.diff</span> </li> </ul> <p> Fixed patch using existing headers </p> Ticket viboes Sat, 06 Jun 2009 15:04:16 GMT component changed https://svn.boost.org/trac10/ticket/2114#comment:10 https://svn.boost.org/trac10/ticket/2114#comment:10 <ul> <li><strong>component</strong> <span class="trac-field-old">None</span> → <span class="trac-field-new">config</span> </li> </ul> Ticket bschaeling Thu, 06 Aug 2009 13:31:32 GMT <link>https://svn.boost.org/trac10/ticket/2114#comment:11 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/2114#comment:11</guid> <description> <p> It would be nice if support for Sun CC was added, too. According to <a class="ext-link" href="http://developers.sun.com/solaris/articles/symbol_scope.html"><span class="icon">​</span>http://developers.sun.com/solaris/articles/symbol_scope.html</a> __declspec(dllimport) maps to __global and __declspec(dllexport) to the __symbolic specifier. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Thu, 06 Aug 2009 13:52:20 GMT</pubDate> <title>owner changed https://svn.boost.org/trac10/ticket/2114#comment:12 https://svn.boost.org/trac10/ticket/2114#comment:12 <ul> <li><strong>owner</strong> changed from <span class="trac-author">Dave Abrahams</span> to <span class="trac-author">John Maddock</span> </li> </ul> Ticket John Maddock Thu, 06 Aug 2009 16:16:43 GMT <link>https://svn.boost.org/trac10/ticket/2114#comment:13 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/2114#comment:13</guid> <description> <p> Is this nearly ready to go in Trunk now? </p> <p> Before it does at the very least we need: </p> <p> 1) An update for <a href="http://www.boost.org/development/separate_compilation.html">http://www.boost.org/development/separate_compilation.html</a> 2) An update for the Boost.Config docs for each of these new macros. 3) A clear understanding of what BOOST_SYMBOL_FORWARD_EXPORT/IMPORT do. 4) A clear understanding of what needs re-exporting - IMO BOOST_EXCEPTION_EXPORT is somewhat misleading since as I understand the gcc docs this may need to be applied to any class that has "vague linkage" whatever that is. Also do we need to re-export std lib exceptions from our SO's? Do we have a dependency analysis to know when we need to use these (or that we don't need to)? </p> <p> John. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Jürgen Hunold</dc:creator> <pubDate>Fri, 07 Aug 2009 07:25:22 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/2114#comment:14 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/2114#comment:14</guid> <description> <p> John, thanks for the comment. I'm quite busy at the moment and do not think this should be added before the 1.40 release is out. I'll take a look at the docs. The question about re-export is quite tricky, as this is used without explanation in Boost.Python. I'll see what I can find. If there is more discussion necessary, we should use the mailing list. Threads are much nicer to handle ;-)) And Sun CC should be eays once the new macros are in. </p> </description> <category>Ticket</category> </item> <item> <author>arhipjan@…</author> <pubDate>Fri, 07 Aug 2009 08:50:39 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/2114#comment:15 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/2114#comment:15</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/2114#comment:13" title="Comment 13">johnmaddock</a>: </p> <blockquote class="citation"> <blockquote> <p> Is this nearly ready to go in Trunk now? </p> </blockquote> <p> </p> <blockquote> <p> Before it does at the very least we need: </p> </blockquote> <p> [snip] Also do we need to re-export std lib exceptions from our SO's? Do we have a dependency analysis to know when we need to use these (or that we don't need to)? </p> <blockquote> <p> John. </p> </blockquote> </blockquote> <p> JFYI, stdcxx library (at least of version 4.1.1 and later) <br /> already have default visibility for std::exception, std::bad_exception, i.e: </p> <pre class="wiki">//exception header #pragma GCC visibility push(default) namespace std { class exception {/*...*/}; class bad_exception {/*...*/}; //... </pre><p> Also logic_error, runtime_error don't cause abnormal program termination<br /> since they have key functions <br /> (i.e. at least one non-inline virtual function). </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Fri, 07 Aug 2009 11:04:16 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/2114#comment:16 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/2114#comment:16</guid> <description> <p> I forgot one other requirement: we should maybe try and put together a small test case to check that this all works. </p> <p> Good to hear that libstdc++ already does the necessary work, does this mean that exceptions that inherit from std::runtime_error (as I think all Boost exceptions do?) are automatically visable and don't need re-exporting on account of their virtual functions? </p> <p> Oops, one other thing (sorry!), how if at all is Boost.Exception effected by this - especially as it's header only? </p> <p> Cheers, John. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Mon, 12 Oct 2009 16:59:06 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/2114#comment:17 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/2114#comment:17</guid> <description> <p> Boost.Exception should be fixed as well. </p> <p> Let me explain: If I make a DSO, say a.so, which throws an exception, say my_exception, which is derived from std::exception and boost::exception, and use the GCC -fvisibility=hidden flag in building the a.so, boost::exception typeinfo is not visible to the application using the a.so, since it will be looked for inside the DSO where it's hidden. As a consequence, for example, if I try to catch a my_exception thrown from the a.so in the application side as a reference to boost::exception, it will pass right through and bad things will happen. Hence IMO boost::exception should always use default visibility with GCC similar to std::exception. In 1.40 it does not. </p> <p> Another issue with Boost.Exception is the BOOST_THROW_EXCEPTION macro since it seems to throw an instance of boost::exception_detail::clone_impl&lt;my_exception&gt;. Since it is a template, there is an easy, non-intrusive workaround: I can just declare the specialization in my own header file with default visibility attribute. Unfortunately this can not be done for boost::exception. </p> <p> All in all, IMO boost::exception should always use default visibility. Setting it in boost/exception/exception.hpp at least fixed my problems with visibility and boost exceptions. </p> </description> <category>Ticket</category> </item> <item> <author>Braden McDaniel <braden@…></author> <pubDate>Wed, 05 May 2010 15:30:52 GMT</pubDate> <title>cc set https://svn.boost.org/trac10/ticket/2114#comment:18 https://svn.boost.org/trac10/ticket/2114#comment:18 <ul> <li><strong>cc</strong> <span class="trac-author">braden@…</span> added </li> </ul> Ticket John Maddock Thu, 22 Jul 2010 09:57:12 GMT <link>https://svn.boost.org/trac10/ticket/2114#comment:19 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/2114#comment:19</guid> <description> <p> Can this issue be closed now, or are there still bits missing from Trunk? </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Jürgen Hunold</dc:creator> <pubDate>Thu, 21 Jul 2011 16:14:47 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/2114#comment:20 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/2114#comment:20</guid> <description> <p> Lots of bits missing from trunk. I've patches for all non-header libraries and try to get them in now. I try to get the okay from each author/maintainer but the quickest solution would be to commit them in one go. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Jürgen Hunold</dc:creator> <pubDate>Fri, 22 Jul 2011 12:08:06 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/2114#comment:21 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/2114#comment:21</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/73299" title="Enable visibility support. Refs #2114. ">[73299]</a>) Enable visibility support. Refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/2114" title="#2114: Patches: Patch for export symbols from shared library (closed: obsolete)">#2114</a>. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Jürgen Hunold</dc:creator> <pubDate>Fri, 22 Jul 2011 14:15:48 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/2114#comment:22 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/2114#comment:22</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/73301" title="Enable visibility support. Refs #2114. ">[73301]</a>) Enable visibility support. Refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/2114" title="#2114: Patches: Patch for export symbols from shared library (closed: obsolete)">#2114</a>. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Jürgen Hunold</dc:creator> <pubDate>Sat, 23 Jul 2011 09:24:38 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/2114#comment:23 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/2114#comment:23</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/73308" title="Enable visibility support. Refs #2114. ">[73308]</a>) Enable visibility support. Refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/2114" title="#2114: Patches: Patch for export symbols from shared library (closed: obsolete)">#2114</a>. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Jürgen Hunold</dc:creator> <pubDate>Tue, 26 Jul 2011 17:40:26 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/2114#comment:24 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/2114#comment:24</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/73381" title="Merge 73299,73301,73308 from ^/trunk ...">[73381]</a>) Merge 73299,73301,73308 from <sup>/trunk </sup></p> <hr /> <p> <a class="changeset" href="https://svn.boost.org/trac10/changeset/73299" title="Enable visibility support. Refs #2114. ">r73299</a> | jhunold | 2011-07-22 14:08:03 +0200 (Fr, 22 Jul 2011) | 2 lines </p> <p> Enable visibility support. Refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/2114" title="#2114: Patches: Patch for export symbols from shared library (closed: obsolete)">#2114</a>. </p> <hr /> <p> <a class="changeset" href="https://svn.boost.org/trac10/changeset/73301" title="Enable visibility support. Refs #2114. ">r73301</a> | jhunold | 2011-07-22 16:15:45 +0200 (Fr, 22 Jul 2011) | 2 lines </p> <p> Enable visibility support. Refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/2114" title="#2114: Patches: Patch for export symbols from shared library (closed: obsolete)">#2114</a>. </p> <hr /> <p> <a class="changeset" href="https://svn.boost.org/trac10/changeset/73308" title="Enable visibility support. Refs #2114. ">r73308</a> | jhunold | 2011-07-23 11:24:35 +0200 (Sa, 23 Jul 2011) | 2 lines </p> <p> Enable visibility support. Refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/2114" title="#2114: Patches: Patch for export symbols from shared library (closed: obsolete)">#2114</a>. </p> <hr /> </description> <category>Ticket</category> </item> <item> <dc:creator>Jürgen Hunold</dc:creator> <pubDate>Wed, 27 Jul 2011 12:16:18 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/2114#comment:25 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/2114#comment:25</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/73400" title="Enable visibility support. Refs #2114.">[73400]</a>) Enable visibility support. Refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/2114" title="#2114: Patches: Patch for export symbols from shared library (closed: obsolete)">#2114</a>. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Jürgen Hunold</dc:creator> <pubDate>Sat, 30 Jul 2011 10:45:34 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/2114#comment:26 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/2114#comment:26</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/73438" title="Merge 73400 from ^/trunk ...">[73438]</a>) Merge 73400 from <sup>/trunk </sup></p> <hr /> <p> <a class="changeset" href="https://svn.boost.org/trac10/changeset/73400" title="Enable visibility support. Refs #2114.">r73400</a> | jhunold | 2011-07-27 14:16:16 +0200 (Mi, 27 Jul 2011) | 1 line </p> <p> Enable visibility support. Refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/2114" title="#2114: Patches: Patch for export symbols from shared library (closed: obsolete)">#2114</a>. </p> <hr /> </description> <category>Ticket</category> </item> <item> <dc:creator>viboes</dc:creator> <pubDate>Sun, 04 Dec 2011 09:40:25 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/2114#comment:27 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/2114#comment:27</guid> <description> <p> See also <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/2309" title="#2309: Bugs: Lack of g++ symbol visibility support in Boost.Thread (closed: fixed)">#2309</a> Lack of g++ symbol visibility support in Boost.Thread </p> </description> <category>Ticket</category> </item> <item> <dc:creator>viboes</dc:creator> <pubDate>Wed, 16 Jan 2013 23:25:13 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/2114#comment:28 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/2114#comment:28</guid> <description> <p> Could this ticket be closed? </p> </description> <category>Ticket</category> </item> <item> <dc:creator>John Maddock</dc:creator> <pubDate>Tue, 31 Jul 2018 18:27:36 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/2114#comment:29 https://svn.boost.org/trac10/ticket/2114#comment:29 <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">obsolete</span> </li> </ul> Ticket