Boost C++ Libraries: Ticket #4828: Boost fails to compile on AIX 6.1 with IBM XL C/C++ V10.01 https://svn.boost.org/trac10/ticket/4828 <p> Hi, </p> <p> I'm trying to compile Boost 1.44.0 on a IBM P575 Power6 cluster with XL 10.01 but got a lot of errors, especially regarding Math, Python and Xpressive. </p> <p> While I don't care much about Math and Python, Xpressive is a dependency of graph readers (and other stuff) in the (Parallel) Boost Graph Library, a key component of our application. </p> <p> The failed build log will follow. </p> <p> Any help will be appreciated, thanks in advance. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/4828 Trac 1.4.3 cpaolino@… Tue, 09 Nov 2010 15:50:13 GMT attachment set https://svn.boost.org/trac10/ticket/4828 https://svn.boost.org/trac10/ticket/4828 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">boost_fail.log</span> </li> </ul> <p> Failed build log </p> Ticket Michael Haubenwallner <michael.haubenwallner@…> Fri, 26 Nov 2010 15:49:51 GMT <link>https://svn.boost.org/trac10/ticket/4828#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/4828#comment:1</guid> <description> <p> Same problems here on AIX 6.1, although using gcc: </p> <pre class="wiki"> "g++" -ftemplate-depth-128 -fno-strict-aliasing -finline-functions -Wno-inline -Wall -pthread -fPIC -DBOOST_ALL_NO_LIB=1 -DBOOST_MATH_TR1_DYN_LINK=1 -DNDEBUG -I"." -I"libs/math/src/tr1" -c -o "bin.v2/libs/math/build/gcc-4.5.1/gentoorelease/pch-off/threading-multi/acoshl.o" "libs/math/build/../src/tr1/acoshl.cpp" libs/math/build/../src/tr1/acoshl.cpp:14:44: error: redefinition of 'long double acoshl(long double)' /prefix/lib/gcc/powerpc-ibm-aix6.1.0.0/4.5.1/include-fixed/math.h:860:20: error: 'long double acoshl(long double)' previously defined here </pre><p> This isn't bound to boost-1.44.0 or gcc-4.5.1, I do have this same problem with boost-1.45.0 (using gcc-4.5.1) as well as boost-1.39 (using gcc-4.2.4). </p> <p> Thing is, AIX6.1 defines many math-functions as inlines in /usr/include/math.h already, as one can see in <a class="ext-link" href="http://gcc.gnu.org/bugzilla/attachment.cgi?id=15004"><span class="icon">​</span>http://gcc.gnu.org/bugzilla/attachment.cgi?id=15004</a> </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Noel Belcourt</dc:creator> <pubDate>Sat, 27 Nov 2010 02:53:06 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/4828#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/4828#comment:2</guid> <description> <p> Hi, </p> <p> I run some tests with vacpp-10.1 under Linux, not AIX, and most of the Math library is pretty good. A few failures here and there but mostly okay (see the Sandia-vacpp-10.1 trunk regression tester). </p> <p> Is it possible that some / many of your problems are due to your limits being hosed? </p> <p> xlC_r: 1501-245 (W) Warning: Hard ulimit has been reduced to less than RLIM_INFINITY. There may not be enough space to complete the compilation. </p> <p> Can you un-limit you RLIM and see if that helps clears up some of the problems? </p> </description> <category>Ticket</category> </item> <item> <author>Michael Haubenwallner <michael.haubenwallner@…></author> <pubDate>Mon, 29 Nov 2010 08:46:09 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/4828#comment:3 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/4828#comment:3</guid> <description> <p> Nope, this doesn't have anything to do with limits. It even doesn't have to do so much with vacpp/xlc itself except that it is the reference-compiler on AIX. The problem has to do with /usr/include/math.h, which is completely different on AIX compared to Linux. </p> <p> Since AIX 6.1, /usr/include/math.h defines math-functions as inlines, while they are in boost since ages. </p> <p> The question simply is: Where is the (most) right place to declare/define these math functions: in boost, or in /usr/include/math.h? </p> <p> Thank you! </p> </description> <category>Ticket</category> </item> <item> <author>cpaolino@…</author> <pubDate>Mon, 29 Nov 2010 09:00:51 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/4828#comment:4 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/4828#comment:4</guid> <description> <p> As Michael said, I don't think the problem lies in limits, because I don't see any error like "Not enough space" from the compiler. </p> <p> Also, we solved the problem with Python and zlibs. This is the compile script we are using now: <a class="ext-link" href="https://gist.github.com/37e4e7d544e92e53489d"><span class="icon">​</span>https://gist.github.com/37e4e7d544e92e53489d</a> </p> <p> I will attach the new build log soon. </p> </description> <category>Ticket</category> </item> <item> <author>cpaolino@…</author> <pubDate>Mon, 29 Nov 2010 09:04:23 GMT</pubDate> <title>attachment set https://svn.boost.org/trac10/ticket/4828 https://svn.boost.org/trac10/ticket/4828 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">boost_fail.2.log</span> </li> </ul> <p> Failed build log (Boost 1.45). Compiled with the aforementioned script </p> Ticket Michael Haubenwallner <michael.haubenwallner@…> Mon, 13 Dec 2010 13:49:13 GMT attachment set https://svn.boost.org/trac10/ticket/4828 https://svn.boost.org/trac10/ticket/4828 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">boost-1.45.0-aix61-math.patch</span> </li> </ul> <p> Patch for boost-1.45.0 to avoid duplicate symbols both compile- and link-time on AIX 6.1 </p> Ticket Michael Haubenwallner <michael.haubenwallner@…> Mon, 13 Dec 2010 14:22:39 GMT <link>https://svn.boost.org/trac10/ticket/4828#comment:5 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/4828#comment:5</guid> <description> <p> This patch allows for building boost without duplicate symbols on AIX 6.1 both compile- and link-time. </p> <p> However, I don't think using '#ifdef _AIX61' is the right thing to do here. </p> <p> But I don't have an idea where the /real/ problem is: </p> <ul><li>in AIX6.1's &lt;math.h&gt; in that it should not define these symbols as inlines<br /> (so a proper fix should go to AIX6.1's math.h to drop them, we use #ifndef _AIX61 meanwhile), or </li><li>in other platform's &lt;math.h&gt; in that they lack the (inline) definition of these symbols<br /> (so a proper fix should go to their math.h (and math-lib), we keep them in boost meanwhile), or </li><li>in boost in that it should not define these symbols itself at all<br /> (so a proper fix should drop these definitions from boost code), or </li><li>in boost in that it does not know that AIX6.1 defines these symbols<br /> (so using #ifndef _AIX61 is the proper fix), or </li><li>others? </li></ul><p> Thank you! </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Vladimir Prus</dc:creator> <pubDate>Tue, 01 Feb 2011 09:33:54 GMT</pubDate> <title>component changed; owner set https://svn.boost.org/trac10/ticket/4828#comment:6 https://svn.boost.org/trac10/ticket/4828#comment:6 <ul> <li><strong>owner</strong> set to <span class="trac-author">John Maddock</span> </li> <li><strong>component</strong> <span class="trac-field-old">Building Boost</span> → <span class="trac-field-new">math</span> </li> </ul> <p> This appears to be related to the Boost.Math library at present -- at least the patch I see is purely Boost.Math. Reassigning. </p> Ticket anonymous Fri, 04 Feb 2011 12:15:19 GMT <link>https://svn.boost.org/trac10/ticket/4828#comment:7 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/4828#comment:7</guid> <description> <p> I'll fix the Math lib issues by renaming the extern "C" functions, and providing the TR1 conforming names as forwarding functions (C++) or macros (C). </p> <p> I'm testing this fix now, and will then close this issue. </p> <p> <strong>IF THERE ARE ISSUES WITH OTHER LIBRARIES, PLEASE FILE SEPARATE ISSUES FOR THESE</strong> </p> <p> Thanks, John. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>John Maddock</dc:creator> <pubDate>Sat, 05 Feb 2011 10:49:59 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/4828#comment:8 https://svn.boost.org/trac10/ticket/4828#comment:8 <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/68653" title="Change the name of the extern &#34;C&#34; TR1 functions so they no longer ...">[68653]</a>) Change the name of the extern "C" TR1 functions so they no longer clash with (possibly inline) std lib versions. Fixes <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/4828" title="#4828: Bugs: Boost fails to compile on AIX 6.1 with IBM XL C/C++ V10.01 (closed: fixed)">#4828</a>. </p> Ticket