Boost C++ Libraries: Ticket #7985: regex fails to compile on AIX7 XLC11 with _LARGE_FILES support https://svn.boost.org/trac10/ticket/7985 <p> AIX version: 7100.01.05.1228 VACPP version: 11.1.0.12 </p> <p> When compiling the regex library with vacpp toolset, with -D_LARGE_FILES defined, the attached output is received. Note: I normally have many other compiler switches specified, but I narrowed it down to this switch that was causing compilation to fail. I cannot figure out why large file support would cause this to break, but, it has been my experience that the macros that are defined whenever large file support is turn on, on AIX, wreaks havoc in a lot of code (we frequently have to customize libraries to get them to build correctly because of this.) </p> <p> Creating this ticket because I cannot figure out how this switch ultimately affects std::basic_string usage in the regex library. (Note: I am able to bypass the error by specifying all of the template parameters to std::basic_string here, but this inevitably causes the same "not enough template parameters" to pop up elsewhere.) </p> <ul><li>has_icu builds : no </li></ul><p> ... vacpp.compile.c++ ../../../bin.v2/libs/regex/build/vacpp/debug/c_regex_traits.o vacpp.compile.c++ ../../../bin.v2/libs/regex/build/vacpp/debug/cpp_regex_traits.o vacpp.compile.c++ ../../../bin.v2/libs/regex/build/vacpp/debug/cregex.o "../../../boost/regex/v4/sub_match.hpp", line 365.26: 1540-0711 (S) Too few template arguments have been specified. "../../../boost/regex/v4/sub_match.hpp", line 374.26: 1540-0711 (S) Too few template arguments have been specified. "../../../boost/regex/v4/sub_match.hpp", line 400.26: 1540-0711 (S) Too few template arguments have been specified. "../../../boost/regex/v4/sub_match.hpp", line 409.26: 1540-0711 (S) Too few template arguments have been specified. "../../../boost/regex/v4/sub_match.hpp", line 418.26: 1540-0711 (S) Too few template arguments have been specified. "../../../boost/regex/v4/regex_format.hpp", line 1129.26: 1540-0711 (S) Too few template arguments have been specified. "../../../boost/regex/v4/basic_regex.hpp", line 484.22: 1540-0711 (S) Too few template arguments have been specified. "../../../boost/regex/v4/match_results.hpp", line 73.39: 1540-0711 (S) Too few template arguments have been specified. "../../../boost/regex/v4/regex_replace.hpp", line 73.19: 1540-0711 (S) Too few template arguments have been specified. "../../../boost/regex/v4/regex_merge.hpp", line 54.50: 1540-0711 (S) Too few template arguments have been specified. "../../../boost/regex/v4/regex_merge.hpp", line 61.26: 1540-0711 (S) Too few template arguments have been specified. "../../../boost/regex/v4/regex_merge.hpp", line 70.26: 1540-0711 (S) Too few template arguments have been specified. </p> <blockquote> <p> xlC -c -DBOOST_ALL_NO_LIB=1 -DBOOST_REGEX_DYN_LINK=1 -qcpluscmt -qNOOPTimize -qnoinline -g -qfullpath -qfuncsect -qeh -qrtti -I"../../.." -o "../../../bin.v2/libs/regex/build/vacpp/debug/cregex.o" "../../../libs/regex/build/../src/cregex.cpp" </p> </blockquote> <p> ...failed vacpp.compile.c++ ../../../bin.v2/libs/regex/build/vacpp/debug/cregex.o... vacpp.compile.c++ ../../../bin.v2/libs/regex/build/vacpp/debug/fileiter.o vacpp.compile.c++ ../../../bin.v2/libs/regex/build/vacpp/debug/icu.o </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/7985 Trac 1.4.3 Kevin Burge <kevin.burge@…> Tue, 05 Feb 2013 22:22:22 GMT attachment set https://svn.boost.org/trac10/ticket/7985 https://svn.boost.org/trac10/ticket/7985 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">vac.cfg</span> </li> </ul> <p> Use via export XLC_USR_CONFIG="$HOME/vac.cfg" </p> Ticket John Maddock Wed, 06 Feb 2013 16:41:38 GMT <link>https://svn.boost.org/trac10/ticket/7985#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7985#comment:1</guid> <description> <p> I don't have access to AIX and have no real knowledge of xlc and _LARGE_FILES so any help I can give will be very limited I'm afraid :-( </p> <p> Whatever defining _LARGE_FILES does, if std::basic_string loses it's default template parameters then that's a std lib bug, and the changes required to support that are likely to be quite far reaching. </p> <p> What happens if you preprocess the source - what do the declarations/definitions for basic_string look like? From a quick Google around the NET it looks like the headers may forward to different implementations (different namespaces?) when this macro is in effect? </p> <p> One quick and dirty hack might be to forward declare basic_string with the default param reinserted. But that would break as soon as IBM fix their headers. IMO it's worth filing an xlc bug report on this if you're able to do so as well. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>John Maddock</dc:creator> <pubDate>Thu, 13 Nov 2014 10:31:04 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/7985#comment:2 https://svn.boost.org/trac10/ticket/7985#comment:2 <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">wontfix</span> </li> </ul> Ticket anonymous Thu, 13 Nov 2014 14:39:19 GMT <link>https://svn.boost.org/trac10/ticket/7985#comment:3 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/7985#comment:3</guid> <description> <p> I must have missed the original email. XLC 13 is out. I may try this again after we upgrade. Thank you! </p> </description> <category>Ticket</category> </item> </channel> </rss>