Modify

Ticket #4912 (closed Bugs: fixed)

Opened 3 years ago

Last modified 3 years ago

boost filesystem v3 does not compile on AIX/v11.1

Reported by: Avi Singh Bahra <avibahra@…> Owned by: bemandawes
Milestone: To Be Determined Component: filesystem
Version: Boost 1.45.0 Severity: Showstopper
Keywords: Cc:

Description

boost file system does compile on AIX v11.1 compiler

Error's of the following are shown:

vacpp.compile.c++ tmpBuildDir/boost/bin.v2/libs/filesystem/build/vacpp/debug/link-static/threading-multi/v3/src/operations.o "./boost/filesystem/v3/path.hpp", line 482.7: 1540-0716 (S) The template argument "boost::iterator" does not match the template parameter "class Derived".

If this is compiler specific please contact Michael Wong, IBM, Toronto

Attachments

Change History

comment:1 follow-up: ↓ 3 Changed 3 years ago by bemandawes

The regression tests are not showing this problem. The test compiler is reported as XL C/C++ Enterprise Edition for AIX, V11.1.0.0

Was the problem with the Boost 1.45.0 release?

I'm not going to be able to do anything without more to go on.

--Beman

comment:2 follow-up: ↓ 4 Changed 3 years ago by avibahra@…

Yes the problem was with boost version 1.45. Version 1.43 compiles and all prevous versions are ok. My workaround at the moment was to comment on v3 filesystem src in the jamfile, until a solution is found. Is there any more information I can supply or try ?

Best regards Avi

comment:3 in reply to: ↑ 1 Changed 3 years ago by Avi Singh Bahra <avibahra@…>

Replying to bemandawes:

The regression tests are not showing this problem. The test compiler is reported as XL C/C++ Enterprise Edition for AIX, V11.1.0.0

Was the problem with the Boost 1.45.0 release?

I'm not going to be able to do anything without more to go on.

--Beman

Here is the bjam command line used to build file system c1b0104\{/s1a/emos_esuite/emos_data/sms/boost_1_45_0\}:!$ cd $BOOST_ROOT c1b0104\{/s1a/emos_esuite/emos_data/sms/boost_1_45_0\}:!$ bjam -d2 --build-dir=./tmpBuildDir toolset=vacpp stage link=static --layout=tagged --with-filesystem variant=debug ...patience... ...found 492 targets... ...updating 6 targets... vacpp.compile.c++ tmpBuildDir/boost/bin.v2/libs/filesystem/build/vacpp/debug/link-static/threading-multi/v3/src/operations.o

xlC_r -c -qsuppress=1540-0198 -DAIX -DBOOST_ALL_NO_LIB=1 -DBOOST_SYSTEM_STATIC_LINK=1 -qcpluscmt -qNOOPTimize -qnoinline -g -qfullpath -qfuncsect -qeh -qrtti -I"." -I"/s1a/emos_esuite/emos_data/sms/boost_1_45_0" -o "tmpBuildDir/boost/bin.v2/libs/filesystem/build/vacpp/debug/link-static/threading-multi/v3/src/operations.o" "libs/filesystem/v3/src/operations.cpp"

"./boost/filesystem/v3/path.hpp", line 482.7: 1540-0716 (S) The template argument "boost::iterator" does not match the template parameter "class Derived". ...failed vacpp.compile.c++ tmpBuildDir/boost/bin.v2/libs/filesystem/build/vacpp/debug/link-static/threading-multi/v3/src/operations.o... vacpp.compile.c++ tmpBuildDir/boost/bin.v2/libs/filesystem/build/vacpp/debug/link-static/threading-multi/v3/src/path.o

xlC_r -c -qsuppress=1540-0198 -DAIX -DBOOST_ALL_NO_LIB=1 -DBOOST_SYSTEM_STATIC_LINK=1 -qcpluscmt -qNOOPTimize -qnoinline -g -qfullpath -qfuncsect -qeh -qrtti -I"." -I"/s1a/emos_esuite/emos_data/sms/boost_1_45_0" -o "tmpBuildDir/boost/bin.v2/libs/filesystem/build/vacpp/debug/link-static/threading-multi/v3/src/path.o" "libs/filesystem/v3/src/path.cpp"

"./boost/filesystem/v3/path.hpp", line 482.7: 1540-0716 (S) The template argument "boost::iterator" does not match the template parameter "class Derived". ...failed vacpp.compile.c++ tmpBuildDir/boost/bin.v2/libs/filesystem/build/vacpp/debug/link-static/threading-multi/v3/src/path.o... vacpp.compile.c++ tmpBuildDir/boost/bin.v2/libs/filesystem/build/vacpp/debug/link-static/threading-multi/v3/src/portability.o

xlC_r -c -qsuppress=1540-0198 -DAIX -DBOOST_ALL_NO_LIB=1 -DBOOST_SYSTEM_STATIC_LINK=1 -qcpluscmt -qNOOPTimize -qnoinline -g -qfullpath -qfuncsect -qeh -qrtti -I"." -I"/s1a/emos_esuite/emos_data/sms/boost_1_45_0" -o "tmpBuildDir/boost/bin.v2/libs/filesystem/build/vacpp/debug/link-static/threading-multi/v3/src/portability.o" "libs/filesystem/v3/src/portability.cpp"

"./boost/filesystem/v3/path.hpp", line 482.7: 1540-0716 (S) The template argument "boost::iterator" does not match the template parameter "class Derived". ...failed vacpp.compile.c++ tmpBuildDir/boost/bin.v2/libs/filesystem/build/vacpp/debug/link-static/threading-multi/v3/src/portability.o... vacpp.compile.c++ tmpBuildDir/boost/bin.v2/libs/filesystem/build/vacpp/debug/link-static/threading-multi/v3/src/unique_path.o

xlC_r -c -qsuppress=1540-0198 -DAIX -DBOOST_ALL_NO_LIB=1 -DBOOST_SYSTEM_STATIC_LINK=1 -qcpluscmt -qNOOPTimize -qnoinline -g -qfullpath -qfuncsect -qeh -qrtti -I"." -I"/s1a/emos_esuite/emos_data/sms/boost_1_45_0" -o "tmpBuildDir/boost/bin.v2/libs/filesystem/build/vacpp/debug/link-static/threading-multi/v3/src/unique_path.o" "libs/filesystem/v3/src/unique_path.cpp"

"./boost/filesystem/v3/path.hpp", line 482.7: 1540-0716 (S) The template argument "boost::iterator" does not match the template parameter "class Derived". ...failed vacpp.compile.c++ tmpBuildDir/boost/bin.v2/libs/filesystem/build/vacpp/debug/link-static/threading-multi/v3/src/unique_path.o... ...skipped <ptmpBuildDir/boost/bin.v2/libs/filesystem/build/vacpp/debug/link-static/threading-multi>libboost_filesystem-mt-d.a for lack of <ptmpBuildDir/boost/bin.v2/libs/filesystem/build/vacpp/debug/link-static/threading-multi>v3/src/operations.o... ...skipped <pstage/lib>libboost_filesystem-mt-d.a for lack of <ptmpBuildDir/boost/bin.v2/libs/filesystem/build/vacpp/debug/link-static/threading-multi>libboost_filesystem-mt-d.a... ...failed updating 4 targets... ...skipped 2 targets... c1b0104\{/s1a/emos_esuite/emos_data/sms/boost_1_45_0\}:!$

comment:4 in reply to: ↑ 2 Changed 3 years ago by Avi Singh Bahra <avibahra@…>

Replying to avibahra@…:

Yes the problem was with boost version 1.45. Version 1.43 compiles and all prevous versions are ok. My workaround at the moment was to comment on v3 filesystem src in the jamfile, until a solution is found. Is there any more information I can supply or try ?

Best regards Avi

TO *FIX* the file system v3 for AIX./v11.1

Change file path.hpp: FROM:

------------------------------------------------------------------------------------ class path::iterator ------------------------------------------------------------------------------------

class path::iterator

: public boost::iterator_facade<

iterator, path const, boost::bidirectional_traversal_tag >

{

....

TO:

------------------------------------------------------------------------------------ class path::iterator ------------------------------------------------------------------------------------

class path::iterator

: public boost::iterator_facade<

path::iterator, path const, boost::bidirectional_traversal_tag >

{

....

ie. since iterator_facade uses CRTP, the iterator is being interperted as "boost::iterator"

passing "path::iterator" as the template argument fixes the compile error on AIX. This should be safe for other platforms as well

comment:5 Changed 3 years ago by bemandawes

Interesting. I had just been wondering if that was the problem, and run a test that confirmed the change was harmless on VC++ 10.

I'll push the change up to trunk as soon as I've verified it is OK on older VC++ and on GCC.

You might want to file a bug report with IBM, and also verify you are at the latest patch level. The 1.45.0 code is being accepted by all other compilers being tested.

--Beman

comment:6 Changed 3 years ago by bemandawes

  • Status changed from new to closed
  • Resolution set to fixed

(In [66945]) Fix #4912

View

Add a comment

Modify Ticket

Change Properties
<Author field>
Action
as closed
The resolution will be deleted. Next status will be 'reopened'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.