You are not logged in.
When I try to make gpuocelot from the AUR, it fails to build. The PKGBUID has
build()
{
cd "$srcdir/$pkgname"
patch -p0 < "$srcdir/lib_mt_fix.patch"
CORE_COUNT=$(nproc)
msg "build using ${CORE_COUNT} cores..."
python2 build.py -j ${CORE_COUNT} --install -p"$srcdir/build" || (
msg "resolving error in ptxgrammar.hpp and trying again..."
read
patch -p0 < "$srcdir/ptxgrammar_fix.patch"
python2 build.py -j ${CORE_COUNT} --install -p"$srcdir/build"
)
The python2 build.py -j ${CORE_COUNT} --install -p"$srcdir/build" part fails with
g++ -o .release_build/ocelot/ir/implementation/Module.os -c -O2 -Wall -std=c++0x -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fPIC -I. -I/usr/include -I/usr/include -I.release_build -I. ocelot/ir/implementation/Module.cpp
In file included from ./ocelot/parser/interface/PTXLexer.h:11:0,
from ./ocelot/parser/interface/PTXParser.h:16,
from ocelot/ir/implementation/Module.cpp:10:
.release_build/ptxgrammar.hpp:352:14: error: 'PTXLexer' is not a member of 'parser'
int yyparse (parser::PTXLexer& lexer, parser::PTXParser::State& state);
^
.release_build/ptxgrammar.hpp:352:32: error: 'lexer' was not declared in this scope
int yyparse (parser::PTXLexer& lexer, parser::PTXParser::State& state);
^
.release_build/ptxgrammar.hpp:352:47: error: 'parser::PTXParser' has not been declared
int yyparse (parser::PTXLexer& lexer, parser::PTXParser::State& state);
^
.release_build/ptxgrammar.hpp:352:65: error: 'state' was not declared in this scope
int yyparse (parser::PTXLexer& lexer, parser::PTXParser::State& state);
^
.release_build/ptxgrammar.hpp:352:70: error: expression list treated as compound expression in initializer [-fpermissive]
int yyparse (parser::PTXLexer& lexer, parser::PTXParser::State& state);
^
g++ -o .release_build/ocelot/ir/implementation/PTXInstruction.os -c -O2 -Wall -std=c++0x -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fPIC -I. -I/usr/include -I/usr/include -I.release_build -I. ocelot/ir/implementation/PTXInstruction.cpp
scons: *** [.release_build/ocelot/ir/implementation/Module.os] Error 1
Build failed...
Build failed
==> resolving error in ptxgrammar.hpp and trying again...
wich is excepted, but after patching ptrxgrammer.hpp it fails again with
g++ -o .release_build/ocelot/analysis/implementation/CycleAnalysis.os -c -O2 -Wall -std=c++0x -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fPIC -I. -I/usr/include -I/usr/include -I.release_build -I. ocelot/analysis/implementation/CycleAnalysis.cpp
ocelot/analysis/implementation/ControlTree.cpp: In member function 'bool analysis::ControlTree::_interact(const NodeVector&, const NodeVector&)':
ocelot/analysis/implementation/ControlTree.cpp:880:21: error: invalid initialization of non-const reference of type 'analysis::ControlTree*&' from an rvalue of type 'analysis::ControlTree*'
boost::ref(this), _1, _2));
^
In file included from /usr/include/boost/bind/bind.hpp:25:0,
from /usr/include/boost/bind.hpp:22,
from ocelot/analysis/implementation/ControlTree.cpp:23:
/usr/include/boost/ref.hpp:64:63: note: in passing argument 1 of 'const boost::reference_wrapper<T> boost::ref(T&) [with T = analysis::ControlTree*]'
template<class T> inline reference_wrapper<T> BOOST_REF_CONST ref(T & t)
^
ocelot/analysis/implementation/ControlTree.cpp:886:21: error: invalid initialization of non-const reference of type 'analysis::ControlTree*&' from an rvalue of type 'analysis::ControlTree*'
boost::ref(this), _1, _2));
^
In file included from /usr/include/boost/bind/bind.hpp:25:0,
from /usr/include/boost/bind.hpp:22,
from ocelot/analysis/implementation/ControlTree.cpp:23:
/usr/include/boost/ref.hpp:64:63: note: in passing argument 1 of 'const boost::reference_wrapper<T> boost::ref(T&) [with T = analysis::ControlTree*]'
template<class T> inline reference_wrapper<T> BOOST_REF_CONST ref(T & t)
^
ocelot/analysis/implementation/ControlTree.cpp:892:21: error: invalid initialization of non-const reference of type 'analysis::ControlTree*&' from an rvalue of type 'analysis::ControlTree*'
boost::ref(this), _1, _2));
^
In file included from /usr/include/boost/bind/bind.hpp:25:0,
from /usr/include/boost/bind.hpp:22,
from ocelot/analysis/implementation/ControlTree.cpp:23:
/usr/include/boost/ref.hpp:64:63: note: in passing argument 1 of 'const boost::reference_wrapper<T> boost::ref(T&) [with T = analysis::ControlTree*]'
template<class T> inline reference_wrapper<T> BOOST_REF_CONST ref(T & t)
^
ocelot/analysis/implementation/ControlTree.cpp: In member function 'analysis::ControlTree::NodeVector analysis::ControlTree::_minimal_hammock_graph(const Edge&)':
ocelot/analysis/implementation/ControlTree.cpp:928:24: error: invalid initialization of non-const reference of type 'analysis::ControlTree*&' from an rvalue of type 'analysis::ControlTree*'
boost::ref(this), _1, _2));In file included from /usr/include/boost/bind/bind.hpp:25:0,
from /usr/include/boost/bind.hpp:22,
from ocelot/analysis/implementation/ControlTree.cpp:23:
/usr/include/boost/ref.hpp:64:63: note: in passing argument 1 of 'const boost::reference_wrapper<T> boost::ref(T&) [with T = analysis::ControlTree*]'
template<class T> inline reference_wrapper<T> BOOST_REF_CONST ref(T & t)
^
ocelot/analysis/implementation/ControlTree.cpp: In member function 'bool analysis::ControlTree::_forward_copy(analysis::ControlTree::Node*)':
ocelot/analysis/implementation/ControlTree.cpp:1143:24: error: invalid initialization of non-const reference of type 'analysis::ControlTree*&' from an rvalue of type 'analysis::ControlTree*'
boost::ref(this), _1, _2));
^
In file included from /usr/include/boost/bind/bind.hpp:25:0,
from /usr/include/boost/bind.hpp:22,
from ocelot/analysis/implementation/ControlTree.cpp:23:
/usr/include/boost/ref.hpp:64:63: note: in passing argument 1 of 'const boost::reference_wrapper<T> boost::ref(T&) [with T = analysis::ControlTree*]'
template<class T> inline reference_wrapper<T> BOOST_REF_CONST ref(T & t)
^
ocelot/analysis/implementation/ControlTree.cpp:1150:24: error: invalid initialization of non-const reference of type 'analysis::ControlTree*&' from an rvalue of type 'analysis::ControlTree*'
boost::ref(this), _1, _2));
^
In file included from /usr/include/boost/bind/bind.hpp:25:0,
from /usr/include/boost/bind.hpp:22,
from ocelot/analysis/implementation/ControlTree.cpp:23:
/usr/include/boost/ref.hpp:64:63: note: in passing argument 1 of 'const boost::reference_wrapper<T> boost::ref(T&) [with T = analysis::ControlTree*]'
template<class T> inline reference_wrapper<T> BOOST_REF_CONST ref(T & t)
^
ocelot/analysis/implementation/ControlTree.cpp:1157:24: error: invalid initialization of non-const reference of type 'analysis::ControlTree*&' from an rvalue of type 'analysis::ControlTree*'
boost::ref(this), _1, _2));
^
In file included from /usr/include/boost/bind/bind.hpp:25:0,
from /usr/include/boost/bind.hpp:22,
from ocelot/analysis/implementation/ControlTree.cpp:23:
/usr/include/boost/ref.hpp:64:63: note: in passing argument 1 of 'const boost::reference_wrapper<T> boost::ref(T&) [with T = analysis::ControlTree*]'
template<class T> inline reference_wrapper<T> BOOST_REF_CONST ref(T & t)
^
ocelot/analysis/implementation/ControlTree.cpp:1170:24: error: invalid initialization of non-const reference of type 'analysis::ControlTree*&' from an rvalue of type 'analysis::ControlTree*' boost::ref(this), _1, _2));
^
In file included from /usr/include/boost/bind/bind.hpp:25:0,
from /usr/include/boost/bind.hpp:22,
from ocelot/analysis/implementation/ControlTree.cpp:23:
/usr/include/boost/ref.hpp:64:63: note: in passing argument 1 of 'const boost::reference_wrapper<T> boost::ref(T&) [with T = analysis::ControlTree*]'
template<class T> inline reference_wrapper<T> BOOST_REF_CONST ref(T & t)
^
scons: *** [.release_build/ocelot/analysis/implementation/ControlTree.os] Error 1
Build failed...
The lib_mt_fix patch is for correcting this problem. Is it an other problem with boost? Any pointers are appreciated.
Offline
I couldn't get gpuocelot to install under Arch, from the AUR or from source. I set up a debian chroot, and installed it there, now it's working fine.
Offline