Opened 13 years ago

Closed 8 years ago

#3324 closed Bugs (wontfix)

AIX/i5OS @ Visual Age 6: is_member_pointer.hpp", line 54.63: 1540-0403 (S) "template <class T, class U> struct boost::is_member_pointer<U T::* const>" is already defined

Reported by: anonymous Owned by: Antony Polukhin
Milestone: Boost 1.58.0 Component: variant
Version: Boost 1.39.0 Severity: Problem
Keywords: Cc:

Description

Hi,

I am getting the below error on AIX/i5OS using Visual Age 6 and Boost 1.39.0 when including Boost header files.

/QOpenSys/vac600/usr/vacpp/bin/xlC_r -+ -DHAVE_DLFCN_H -Dmysqlcppconn_EXPORTS -O2 -g -ma -qstrict -qoptimize=2 -qmaxmem=8192 -Iboost-1_39 -I/home/mysqldev/bs/i5os-ppc32/connector-common-32bit/mysql-server-gpl-static/include -I/home/mysqldev/bs/connector-c++-32bit/src/mysql-connector-c++-1.0.6r716_20090806_1555 -I/home/mysqldev/bs/connector-c++-32bit/src/mysql-connector-c++-1.0.6r716_20090806_1555/cppconn -O2 -g -ma -qstrict -qoptimize=2 -qmaxmem=8192 -I/home/mysqldev/bs/i5os-ppc32/connector-common-32bit/mysql-server-gpl-static/include -g -ma -qstrict -qoptimize=0 -qmaxmem=8192 -DUNIV_AIX -o CMakeFiles/mysqlcppconn.dir/mysql_connection.cpp.o -c /mysql_connection.cpp "boost-1_39/boost/type_traits/is_member_pointer.hpp", line 54.63: 1540-0403 (S) "template <class T, class U> struct boost::is_member_pointer<U T::* const>" is already defined. "boost-1_39/boost/type_traits/is_member_pointer.hpp", line 51.63: 1540-0425 (I) "is_member_pointer<U T::*>" is defined on line 51 of "boost-1_39/boost/type_traits/is_member_pointer.hpp". "boost-1_39/boost/type_traits/is_member_pointer.hpp", line 55.63: 1540-0403 (S) "template <class T, class U> struct boost::is_member_pointer<U T::* volatile>" is already defined. "boost-1_39/boost/type_traits/is_member_pointer.hpp", line 51.63: 1540-0425 (I) "is_member_pointer<U T::*>" is defined on line 51 of "boost-1_39/boost/type_traits/is_member_pointer.hpp". "boost-1_39/boost/type_traits/is_member_pointer.hpp", line 56.63: 1540-0403 (S) "template <class T, class U> struct boost::is_member_pointer<U T::* const volatile>" is already defined. "boost-1_39/boost/type_traits/is_member_pointer.hpp", line 51.63: 1540-0425 (I) "is_member_pointer<U T::*>" is defined on line 51 of "boost-1_39/boost/type_traits/is_member_pointer.hpp".

Boost 1.39.0 has been installed from source as follows:

./bootstrap.sh --prefix=/nfstmp2/cteam/bs/aix5.3-ppc32/connector-common-32bit/boost --libdir=/nfstmp2/cteam/bs/aix5.3-ppc32/connector-common-32bit/boost/lib --with-toolset=vacpp ./bjam --without-date_time --without-filesystem --without-graph --without-iostreams --without-math --without-mpi --without-program_options --without-python --without-regex --without-serialization

I can reproduce the above error on AIX 5.3 (PPC32, PPC64) and i5OS (PPC32, PPC64). All machines are using Visual Age 6.

C compiler : 6.0.0.17 C++ compiler : 6.0.0.18

Thanks in advance, Ulf

Attachments (1)

is_member_pointer_ibm.patch (834 bytes ) - added by John Maddock 13 years ago.
Patch for issue.

Download all attachments as: .zip

Change History (10)

comment:1 by ulf.wendel@…, 13 years ago

Forgot to add my address.

comment:2 by anonymous, 13 years ago

Our regression tests with Visual Age 10 are passing for that one, so this looks like a compiler bug that has been fixed. What's the value of IBMCPP for the compiler you're using?

John.

comment:3 by ulf.wendel@…, 13 years ago

Yes, it could be a compiler bug. I am using Visual Age 6.

printf("%X", IBMCPP) => 258 printf("%d", IBMCPP) => 600

Thanks, Ulf

by John Maddock, 13 years ago

Attachment: is_member_pointer_ibm.patch added

Patch for issue.

comment:4 by John Maddock, 13 years ago

Can you confirm that the attached patch fixes things?

If so I'll commit to trunk.

Thanks, John.

comment:5 by anonymous, 13 years ago

Thanks for the patch, John! I have been on vacation in the past week. I tried the patch today and it solves the is_member_pointer.hpp problem.

However, I am now getting another error about a circular reference:

/usr/vacpp/bin/xlC_r -+ -Dmysqlcppconn_EXPORTS -O2 -g -ma -qstrict -qoptimize=2 -qmaxmem=8192 -I/nfstmp2/boost/include/boost-1_39 -Imysql-server-gpl-static/include -Isrc/mysql-connector-c++-1.0.6 -Isrc/mysql-connector-c++-1.0.6/cppconn -D_ALL_SOURCE -O2 -g -ma -qstrict -qoptimize=2 -qmaxmem=8192 -I/nfstmp2/mysql-server-gpl-static/include -g -ma -qstrict -qoptimize=0 -qmaxmem=8192 -DUNIV_AIX -o CMakeFiles/mysqlcppconn.dir/mysql_connection.cpp.o -cmysql-connector-c++-1.0.6/driver/mysql_connection.cpp "boost/include/boost-1_39/boost/variant/variant.hpp", line 918.27: 1540-0100 (S) The class qualifier "boost::mpl::eval_if<boost::variant<long long,double,bool,class sql::SQLString,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::..." contains a circular reference back to "boost::variant<long long,double,bool,sql::SQLString,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::de...". "boost/include/boost-1_39/boost/mpl/if.hpp", line 63.68: 1540-0700 (I) The previous message was produced while processing "struct boost::variant<long long, double,bool,class sql::SQLString,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,struct boost::detail::variant::void_,stru...". "[path_to]/driver/mysql_connection.cpp", line 86.1: 1540-0700 (I) The previous message was produced while processing "sql::mysql::My SQL_Connection::MySQL_Connection(const SQLString &, const SQLString &, const SQLString &)".

Thanks, Ulf

comment:6 by John Maddock, 13 years ago

Component: type_traitsvariant
Owner: changed from John Maddock to ebf

I'm not familiar with Variant, so I'm reassigning the issue.

The type_traits patch has been applied to Trunk BTW: it won't be in 1.40 though as that's already in beta.

John.

comment:7 by ulf.wendel@…, 13 years ago

Fair enough John! Thanks for your efforts.

Whoever takes the ticket next: I can easily go back to Boost 1.34 (or even Boost 1.31), if that helps. I am aware of the age of the build platform we use.

Ulf

comment:8 by Antony Polukhin, 8 years ago

Milestone: Boost 1.40.0Boost 1.58.0
Owner: changed from ebf to Antony Polukhin
Status: newassigned

Could someone reproduce this issue?

Otherwise this will be marked as "wontfix" (I have no access to platform, there are no regression testers running tests on this platform and that platform looks like one of those, that are not supported any more by Boost community).

comment:9 by Antony Polukhin, 8 years ago

Resolution: wontfix
Status: assignedclosed
Note: See TracTickets for help on using tickets.