You are here

Error with DisjointSets while compiling Rosetta 3.8 using scons

4 posts / 0 new
Last post
Error with DisjointSets while compiling Rosetta 3.8 using scons
#1

We have been working with rosetta 2016.32 for a while, which compiles just fine. recently we decided to upgrade to the 3.8 release (2017.08). compiling with 'scons mode=release' reuslts in the following error trace:

In file included from src/utility/vector1.hh:23,
                 from src/utility/graph/DisjointSets.hh:24,
                 from src/utility/graph/DisjointSets.cc:16:
src/utility/vectorL.hh: In instantiation of 'utility::vectorL<1l, utility::graph::DS_Node, std::allocator<utility::graph::DS_Node> >':
src/utility/vector1.hh:44:   instantiated from 'utility::vector1<utility::graph::DS_Node, std::allocator<utility::graph::DS_Node> >'
src/utility/graph/DisjointSets.hh:82:   instantiated from here
src/utility/vectorL.hh:132: error: no members matching 'std::vector<utility::graph::DS_Node, std::allocator<utility::graph::DS_Node> >::shrink_to_fit' in 'class std::vector<utility::graph::DS_Node, std::allocator<utility::graph::DS_Node> >'
In file included from src/utility/graph/DisjointSets.hh:24,
                 from src/utility/graph/DisjointSets.cc:16:
src/utility/vector1.hh: In instantiation of 'utility::vector1<utility::graph::DS_Node, std::allocator<utility::graph::DS_Node> >':
src/utility/graph/DisjointSets.hh:82:   instantiated from here
src/utility/vector1.hh:119: error: no members matching 'utility::vectorL<1l, utility::graph::DS_Node, std::allocator<utility::graph::DS_Node> >::shrink_to_fit' in 'class utility::vectorL<1l, utility::graph::DS_Node, std::allocator<utility::graph::DS_Node> >'
In file included from src/utility/vector1.hh:23,
                 from src/utility/graph/DisjointSets.hh:24,
                 from src/utility/graph/DisjointSets.cc:16:
src/utility/vectorL.hh: In instantiation of 'utility::vectorL<1l, long unsigned int, std::allocator<long unsigned int> >':
src/utility/vector1.fwd.hh:44:   instantiated from 'utility::vector1<long unsigned int, std::allocator<long unsigned int> >'
src/utility/graph/DisjointSets.cc:119:   instantiated from here
src/utility/vectorL.hh:132: error: no members matching 'std::vector<long unsigned int, std::allocator<long unsigned int> >::shrink_to_fit' in 'class std::vector<long unsigned int, std::allocator<long unsigned int> >'
In file included from src/utility/graph/DisjointSets.hh:24,
                 from src/utility/graph/DisjointSets.cc:16:
src/utility/vector1.hh: In instantiation of 'utility::vector1<long unsigned int, std::allocator<long unsigned int> >':
src/utility/graph/DisjointSets.cc:119:   instantiated from here
src/utility/vector1.hh:119: error: no members matching 'utility::vectorL<1l, long unsigned int, std::allocator<long unsigned int> >::shrink_to_fit' in 'class utility::vectorL<1l, long unsigned int, std::allocator<long unsigned int> >'
In file included from src/utility/graph/ArrayPool.cc:15:
src/utility/graph/ArrayPool.hh:269: error: expected ';' before 'override'
src/utility/graph/ArrayPool.cc:45: error: expected ';' at end of input
src/utility/graph/ArrayPool.cc:45: error: expected '}' at end of input
In file included from src/utility/graph/ArrayPool.cc:15:
src/utility/graph/ArrayPool.hh: In constructor 'utility::graph::ArrayPool<T>::ArrayPool()':
src/utility/graph/ArrayPool.hh:247: error: class 'utility::graph::ArrayPool<T>' does not have any field named 'block_size_'
src/utility/graph/ArrayPool.hh:248: error: class 'utility::graph::ArrayPool<T>' does not have any field named 'array_size_'
src/utility/graph/ArrayPool.hh:249: error: class 'utility::graph::ArrayPool<T>' does not have any field named 'nblocks_'
src/utility/graph/ArrayPool.hh:250: error: class 'utility::graph::ArrayPool<T>' does not have any field named 'nnegative_'
src/utility/graph/ArrayPool.hh: In constructor 'utility::graph::ArrayPool<T>::ArrayPool(platform::Size)':
src/utility/graph/ArrayPool.hh:255: error: class 'utility::graph::ArrayPool<T>' does not have any field named 'block_size_'
src/utility/graph/ArrayPool.hh:256: error: class 'utility::graph::ArrayPool<T>' does not have any field named 'array_size_'
src/utility/graph/ArrayPool.hh:257: error: class 'utility::graph::ArrayPool<T>' does not have any field named 'nblocks_'
src/utility/graph/ArrayPool.hh:258: error: class 'utility::graph::ArrayPool<T>' does not have any field named 'nnegative_'
src/utility/graph/ArrayPool.hh: In constructor 'utility::graph::ArrayPool<T>::ArrayPool(platform::Size, platform::Size)':
src/utility/graph/ArrayPool.hh:263: error: class 'utility::graph::ArrayPool<T>' does not have any field named 'block_size_'
src/utility/graph/ArrayPool.hh:264: error: class 'utility::graph::ArrayPool<T>' does not have any field named 'array_size_'
src/utility/graph/ArrayPool.hh:265: error: class 'utility::graph::ArrayPool<T>' does not have any field named 'nblocks_'
src/utility/graph/ArrayPool.hh:266: error: class 'utility::graph::ArrayPool<T>' does not have any field named 'nnegative_'
src/utility/graph/ArrayPool.hh: At global scope:
src/utility/graph/ArrayPool.hh:267: error: expected unqualified-id at end of input
src/utility/graph/ArrayPool.hh:267: error: expected '}' at end of input
src/utility/graph/ArrayPool.hh:267: error: expected '}' at end of input
g++ -o build/src/release/linux/2.6/64/x86/gcc/4.4/default/utility/graph/Digraph.os -c -std=c++0x -ffor-scope -isystem external/boost_1_55_0/ -isystem external/ -isystem external/include/ -isystem external/dbio/ -pipe -Wall -Wextra -pedantic -Werror -Wno-long-long -Wno-strict-aliasing -march=core2 -mtune=generic -O3 -ffast-math -fno-finite-math-only -funroll-loops -finline-functions -finline-limit=20000 -s -Wno-unused-variable -Wno-unused-parameter -fPIC -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS -DPTR_STD -DNDEBUG -Isrc -Iexternal/include -Isrc/platform/linux/64/gcc/4.4 -Isrc/platform/linux/64/gcc -Isrc/platform/linux/64 -Isrc/platform/linux -Iexternal/boost_1_55_0 -Iexternal/libxml2/include -Iexternal -Iexternal/dbio -I/usr/include -I/usr/local/include src/utility/graph/Digraph.cc
scons: *** [build/src/release/linux/2.6/64/x86/gcc/4.4/default/utility/graph/DisjointSets.os] Error 1
scons: *** [build/src/release/linux/2.6/64/x86/gcc/4.4/default/utility/graph/ArrayPool.os] Error 1
In file included from src/utility/vector1.hh:23,
                 from src/utility/graph/Digraph.hh:25,
                 from src/utility/graph/Digraph.cc:15:
src/utility/vectorL.hh: In instantiation of 'utility::vectorL<1l, utility::graph::DirectedNode*, std::allocator<utility::graph::DirectedNode*> >':
src/utility/vector1.hh:44:   instantiated from 'utility::vector1<utility::graph::DirectedNode*, std::allocator<utility::graph::DirectedNode*> >'
src/utility/graph/Digraph.hh:875:   instantiated from here
src/utility/vectorL.hh:132: error: no members matching 'std::vector<utility::graph::DirectedNode*, std::allocator<utility::graph::DirectedNode*> >::shrink_to_fit' in 'class std::vector<utility::graph::DirectedNode*, std::allocator<utility::graph::DirectedNode*> >'
In file included from src/utility/graph/Digraph.hh:25,
                 from src/utility/graph/Digraph.cc:15:
src/utility/vector1.hh: In instantiation of 'utility::vector1<utility::graph::DirectedNode*, std::allocator<utility::graph::DirectedNode*> >':
src/utility/graph/Digraph.hh:875:   instantiated from here
src/utility/vector1.hh:119: error: no members matching 'utility::vectorL<1l, utility::graph::DirectedNode*, std::allocator<utility::graph::DirectedNode*> >::shrink_to_fit' in 'class utility::vectorL<1l, utility::graph::DirectedNode*, std::allocator<utility::graph::DirectedNode*> >'
In file included from src/utility/vector1.hh:23,
                 from src/utility/graph/Digraph.hh:25,
                 from src/utility/graph/Digraph.cc:15:
src/utility/vectorL.hh: In instantiation of 'utility::vectorL<1l, long unsigned int, std::allocator<long unsigned int> >':
src/utility/vector1.fwd.hh:44:   instantiated from 'utility::vector1<long unsigned int, std::allocator<long unsigned int> >'
src/utility/graph/Digraph.cc:916:   instantiated from here
src/utility/vectorL.hh:132: error: no members matching 'std::vector<long unsigned int, std::allocator<long unsigned int> >::shrink_to_fit' in 'class std::vector<long unsigned int, std::allocator<long unsigned int> >'
In file included from src/utility/graph/Digraph.hh:25,
                 from src/utility/graph/Digraph.cc:15:
src/utility/vector1.hh: In instantiation of 'utility::vector1<long unsigned int, std::allocator<long unsigned int> >':
src/utility/graph/Digraph.cc:916:   instantiated from here
src/utility/vector1.hh:119: error: no members matching 'utility::vectorL<1l, long unsigned int, std::allocator<long unsigned int> >::shrink_to_fit' in 'class utility::vectorL<1l, long unsigned int, std::allocator<long unsigned int> >'
scons: *** [build/src/release/linux/2.6/64/x86/gcc/4.4/default/utility/graph/Digraph.os] Error 1
scons: building terminated because of errors.

Do you have any suggestions why it doesn't compile and how to fix it?

Category: 
Post Situation: 
Thu, 2017-04-13 12:06
ipetrik_ambry

Rosetta switched to cxx11.  I think gcc 4.4 is too old for that (4.4 is 2012).  

 

Rocco has a script to check compatibility: https://www.rosettacommons.org/comment/9593#comment-9593

Thu, 2017-04-13 13:30
smlewis

More information about compiler support, and what to do if your default compiler is too old, can be found at https://www.rosettacommons.org/docs/latest/build_documentation/Cxx11Support

Thu, 2017-04-13 14:41
rmoretti

Excellent, thank you!

Thu, 2017-04-13 16:19
ipetrik_ambry