[pkg-boost-devel] Bug#550300: FTBFS with GCC 4.4: expected primary-expression before 'enum'

Martin Michlmayr tbm at cyrius.com
Thu Oct 8 22:33:49 UTC 2009


Package: boost1.40
Version: 1.40.0-1
User: debian-gcc at lists.debian.org
Usertags: ftbfs-gcc-4.4

This package fails to build with GCC 4.4.  You can reproduce this problem
with gcc-4.4/g++-4.4 from unstable.

The code that fails is this:
      typedef typename boost::uint_t<8*sizeof(T)>::least int_type;
      BOOST_MPL_ASSERT((sizeof(T)==sizeof(int_type)));
which expands to:
      typedef typename boost::uint_t<8*sizeof(T)>::least int_type;
      enum { mpl_assertion_in_line_64 = sizeof( boost::mpl::assertion_failed<false>( boost::mpl::assert_arg( (void (*) (sizeof(T)==sizeof(int_type)))0, 1 ) ) ) };

Some upstream tests I found with Google also show this error:
http://www.boost.org/development/tests/release/output/Debian-Sid-boost-bin-v2-libs-fusion-test-adapt_assoc_struct-test-gcc-4-4-debug-sequence.html
so hopefully this issue is known upstream - but please check if it is.


> Automatic build of boost1.40_1.40.0-2 on em64t by sbuild/amd64 0.53
...
>     "g++"  -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -g -D_REENTRANT -pthread -fPIC  -DBOOST_ALL_NO_LIB=1 -DBOOST_MPI_DYN_LINK=1 -DBOOST_MPI_SOURCE=1 -DNDEBUG  -I"." -I"/usr/lib/openmpi/include" -I"/usr/lib/openmpi/include/openmpi" -c -o "bin.v2/libs/mpi/build/gcc-4.4.1/release/debug-symbols-on/threading-multi/broadcast.o" "libs/mpi/src/broadcast.cpp"
> 
> In file included from ./boost/mpi/detail/mpi_datatype_cache.hpp:13,
>                  from ./boost/mpi/datatype.hpp:27,
>                  from ./boost/mpi/communicator.hpp:20,
>                  from ./boost/mpi/collectives.hpp:21,
>                  from ./boost/mpi/collectives_fwd.hpp:19,
>                  from ./boost/mpi/collectives/broadcast.hpp:11,
>                  from libs/mpi/src/broadcast.cpp:9:
> ./boost/mpi/detail/mpi_datatype_oarchive.hpp: In member function 'void boost::mpi::detail::mpi_datatype_oarchive::save_enum(const T&, mpl_::true_)':
> ./boost/mpi/detail/mpi_datatype_oarchive.hpp:64: error: expected primary-expression before 'enum'
> ./boost/mpi/detail/mpi_datatype_oarchive.hpp:64: error: expected ';' before 'enum'
> ...failed gcc.compile.c++ bin.v2/libs/mpi/build/gcc-4.4.1/release/debug-symbols-on/threading-multi/broadcast.o...
> gcc.compile.c++ bin.v2/libs/mpi/build/gcc-4.4.1/release/debug-symbols-on/threading-multi/communicator.o

-- 
Martin Michlmayr
http://www.cyrius.com/





More information about the pkg-boost-devel mailing list