James Hughes wrote:
With reference to this fix, where can I get it or should
I revert to
1.33.0 rather than 1.33.1 which I currently have?
The patch Joel was talking about never got applied to the
1.33.1 branch.
Seems you are referring to another problem, which wasn't
investigated
yet.
So give us some time to figure out what went wrong, please.
Sorry, they seemed very similar problems from the
description. I'll hang loose for the moment then! I will go
back to 33.0 to see if that compiles cleanly for arm (and
post any significent resutls), and in the meantime keep an
eye on things here for any news.
I was just trying to understand what's wrong, and discovered
that I don't
have enough information from you to pinpoint the problem.
Could you please
provide me with some additional information as your platform/compiler,
perhaps a minimal (non-)compiling sample etc.
Thanks in advance
Regards Hartmut
Hi Hartmut,
I enclose below two of the error messages seen when compiling the boost
library on a Sus9.3 Linux box, cross compiling to am Linux Arm architecture.
The command used to compile is...
bjam "-sGCC_ROOT_DIRECTORY=/opt/montavista/mobilinux/devkit/arm/iwmmxt_le"
"-sGCC=iwmmxt_le-gcc" "-sGXX=iwmmxt_le-g++" stage
A lot of the lib appears to build OK, but I get the following error a lot in
the files that don't.
gcc-C++-action
bin/boost/libs/wave/build/libboost_wave.a/gcc/debug/instantiate_cpp_exprgram
mar.o
In file included from /home/jhughes/boost_1_33_1/boost/spirit/core.hpp:34,
from
/home/jhughes/boost_1_33_1/boost/wave/grammars/cpp_expression_grammar.hpp:15
,
from
/home/jhughes/boost_1_33_1/libs/wave/build/../src/instantiate_cpp_exprgramma
r.cpp:20:
/home/jhughes/boost_1_33_1/boost/spirit/core/primitives/numerics.hpp:120:
error: declaration of `template<class ScannerT> struct
boost::spirit::sign_parser::result'
/home/jhughes/boost_1_33_1/boost/spirit/core/parser.hpp:123: error:
conflicts with previous declaration `template<class ScannerT> struct
boost::spirit::parserboost::spirit::sign_parser::result'
set -e
"/opt/montavista/mobilinux/devkit/arm/iwmmxt_le/bin/iwmmxt_le-g++"
-D_REENTRANT -c -Wall -ftemplate-depth-255 -g -O0 -fno-inline
-I"bin/boost/libs/wave/build" -I"/home/jhughes/boost_1_33_1" -I
"/home/jhughes/boost_1_33_1" -o
"bin/boost/libs/wave/build/libboost_wave.a/gcc/debug/instantiate_cpp_exprgra
mmar.o"
"/home/jhughes/boost_1_33_1/libs/wave/build/../src/instantiate_cpp_exprgramm
ar.cpp"
"/opt/montavista/mobilinux/devkit/arm/iwmmxt_le/bin/iwmmxt_le-objcopy"
--set-section-flags .debug_str=contents,debug
"bin/boost/libs/wave/build/libboost_wave.a/gcc/debug/instantiate_cpp_exprgra
mmar.o"
...failed gcc-C++-action
bin/boost/libs/wave/build/libboost_wave.a/gcc/debug/instantiate_cpp_exprgram
mar.o...
<<<<
In addition I get the follow error also :
gcc-C++-action
bin/boost/libs/wave/build/libboost_wave.a/gcc/debug/instantiate_predef_macro
s.o
In file included from /home/jhughes/boost_1_33_1/boost/spirit/core.hpp:34,
from
/home/jhughes/boost_1_33_1/boost/wave/grammars/cpp_predef_macros_grammar.hpp
:14,
from
/home/jhughes/boost_1_33_1/libs/wave/build/../src/instantiate_predef_macros.
cpp:19:
/home/jhughes/boost_1_33_1/boost/spirit/core/primitives/numerics.hpp:120:
error: declaration of `template<class ScannerT> struct
boost::spirit::sign_parser::result'
/home/jhughes/boost_1_33_1/boost/spirit/core/parser.hpp:123: error:
conflicts with previous declaration `template<class ScannerT> struct
boost::spirit::parserboost::spirit::sign_parser::result'
In file included from
/home/jhughes/boost_1_33_1/boost/spirit/tree/parse_tree.hpp:12,
from
/home/jhughes/boost_1_33_1/boost/wave/grammars/cpp_predef_macros_grammar.hpp
:15,
from
/home/jhughes/boost_1_33_1/libs/wave/build/../src/instantiate_predef_macros.
cpp:19:
/home/jhughes/boost_1_33_1/boost/spirit/tree/common.hpp:673: error:
declaration of `template template<class T> struct
boost::spirit::common_tree_match_policy::result'
/home/jhughes/boost_1_33_1/boost/spirit/core/scanner/scanner.hpp:62: error:
conflicts with previous declaration `template<class T> struct
boost::spirit::match_policy::result'
/home/jhughes/boost_1_33_1/boost/spirit/tree/parse_tree.hpp: In static
member function `static void boost::spirit::pt_tree_policy::group_match(MatchT&, const boost::spirit::parser_id&, const
Iterator1T&, const Iterator2T&) [with MatchT =
boost::spirit::matchboost::spirit::nil_t, Iterator1T =
boost::wave::cpplexer::lex_iterator, char*> > > > >, Iterator2T =
boost::wave::cpplexer::lex_iterator, char*> > > > >, MatchPolicyT =
boost::spirit::pt_match_policy, char*> > > > >,
boost::spirit::node_val_data_factoryboost::spirit::nil_t >, NodeFactoryT =
boost::spirit::node_val_data_factoryboost::spirit::nil_t]':
/home/jhughes/boost_1_33_1/boost/spirit/tree/common.hpp:759: instantiated
from `void boost::spirit::common_tree_match_policy::group_match(MatchT&, const
boost::spirit::parser_id&, const IteratorT2&, const IteratorT2&) const [with
MatchT = boost::spirit::matchboost::spirit::nil_t, IteratorT2 =
boost::wave::cpplexer::lex_iterator, char*> > > > >, MatchPolicyT =
boost::spirit::pt_match_policy, char*> > > > >,
boost::spirit::node_val_data_factoryboost::spirit::nil_t >, IteratorT =
boost::wave::cpplexer::lex_iterator, char*> > > > >, NodeFactoryT =
boost::spirit::node_val_data_factoryboost::spirit::nil_t, TreePolicyT =
boost::spirit::pt_tree_policy, char*> > > > >,
boost::spirit::node_val_data_factoryboost::spirit::nil_t >,
boost::spirit::node_val_data_factoryboost::spirit::nil_t >]'
/home/jhughes/boost_1_33_1/boost/spirit/core/non_terminal/impl/rule.ipp:191:
instantiated from `typename boost::spirit::parser_result::type boost::spirit::impl::rule_base::parse_main(const ScannerT&) const [with ScannerT =
boost::spirit::scanner, char*> > > > >,
boost::spirit::scanner_policies, char*> > > > >,
boost::spirit::node_val_data_factoryboost::spirit::nil_t >,
boost::spirit::action_policy> >, DerivedT =
boost::spirit::rule, char*> > > > >,
boost::spirit::scanner_policies, char*> > > > >,
boost::spirit::node_val_data_factoryboost::spirit::nil_t >,
boost::spirit::action_policy> >, boost::spirit::nil_t,
boost::spirit::nil_t>, EmbedT = const
boost::spirit::rule, char*> > > > >,
boost::spirit::scanner_policies, char*> > > > >,
boost::spirit::node_val_data_factoryboost::spirit::nil_t >,
boost::spirit::action_policy> >, boost::spirit::nil_t,
boost::spirit::nil_t>&, T0 =
boost::spirit::scanner, char*> > > > >,
boost::spirit::scanner_policies, char*> > > > >,
boost::spirit::node_val_data_factoryboost::spirit::nil_t >,
boost::spirit::action_policy> >, T1 = boost::spirit::nil_t, T2 =
boost::spirit::nil_t]'
/home/jhughes/boost_1_33_1/boost/spirit/core/non_terminal/impl/rule.ipp:171:
instantiated from `typename boost::spirit::parser_result::type boost::spirit::impl::rule_base::parse(const ScannerT&) const [with ScannerT =
boost::spirit::scanner, char*> > > > >,
boost::spirit::scanner_policies, char*> > > > >,
boost::spirit::node_val_data_factoryboost::spirit::nil_t >,
boost::spirit::action_policy> >, DerivedT =
boost::spirit::rule, char*> > > > >,
boost::spirit::scanner_policies, char*> > > > >,
boost::spirit::node_val_data_factoryboost::spirit::nil_t >,
boost::spirit::action_policy> >, boost::spirit::nil_t,
boost::spirit::nil_t>, EmbedT = const
boost::spirit::rule, char*> > > > >,
boost::spirit::scanner_policies, char*> > > > >,
boost::spirit::node_val_data_factoryboost::spirit::nil_t >,
boost::spirit::action_policy> >, boost::spirit::nil_t,
boost::spirit::nil_t>&, T0 =
boost::spirit::scanner, char*> > > > >,
boost::spirit::scanner_policies, char*> > > > >,
boost::spirit::node_val_data_factoryboost::spirit::nil_t >,
boost::spirit::action_policy> >, T1 = boost::spirit::nil_t, T2 =
boost::spirit::nil_t]'
/home/jhughes/boost_1_33_1/boost/spirit/core/non_terminal/impl/grammar.ipp:2
62: instantiated from `static void
boost::spirit::impl::call_helper<0>::do_(RT&, DefinitionT&, const ScannerT&)
[with RT = boost::spirit::matchboost::spirit::nil_t, DefinitionT =
boost::wave::grammars::predefined_macros_grammar::definition, char*> > > > >,
boost::spirit::scanner_policies, char*> > > > >,
boost::spirit::node_val_data_factoryboost::spirit::nil_t >,
boost::spirit::action_policy> > >, ScannerT =
boost::spirit::scanner, char*> > > > >,
boost::spirit::scanner_policies, char*> > > > >,
boost::spirit::node_val_data_factoryboost::spirit::nil_t >,
boost::spirit::action_policy> >]'
/home/jhughes/boost_1_33_1/boost/spirit/core/non_terminal/impl/grammar.ipp:2
81: instantiated from `typename
boost::spirit::parser_result,
ScannerT>::type boost::spirit::impl::grammar_parser_parse(const
boost::spirit::grammar*, const ScannerT&) [with int N =
0, DerivedT = boost::wave::grammars::predefined_macros_grammar, ContextT =
boost::spirit::parser_contextboost::spirit::nil_t, ScannerT =
boost::spirit::scanner, char*> > > > >,
boost::spirit::scanner_policies, char*> > > > >,
boost::spirit::node_val_data_factoryboost::spirit::nil_t >,
boost::spirit::action_policy> >]'
/home/jhughes/boost_1_33_1/boost/spirit/core/non_terminal/grammar.hpp:55:
instantiated from `typename
boost::spirit::parser_result,
ScannerT>::type boost::spirit::grammar::parse_main(const
ScannerT&) const [with ScannerT =
boost::spirit::scanner, char*> > > > >,
boost::spirit::scanner_policies, char*> > > > >,
boost::spirit::node_val_data_factoryboost::spirit::nil_t >,
boost::spirit::action_policy> >, DerivedT =
boost::wave::grammars::predefined_macros_grammar, ContextT =
boost::spirit::parser_contextboost::spirit::nil_t]'
/home/jhughes/boost_1_33_1/boost/spirit/core/non_terminal/grammar.hpp:63:
instantiated from `typename
boost::spirit::parser_result,
ScannerT>::type boost::spirit::grammar::parse(const
ScannerT&) const [with ScannerT =
boost::spirit::scanner, char*> > > > >,
boost::spirit::scanner_policies, char*> > > > >,
boost::spirit::node_val_data_factoryboost::spirit::nil_t >,
boost::spirit::action_policy> >, DerivedT =
boost::wave::grammars::predefined_macros_grammar, ContextT =
boost::spirit::parser_contextboost::spirit::nil_t]'
/home/jhughes/boost_1_33_1/boost/spirit/tree/parse_tree.hpp:228:
instantiated from `boost::spirit::tree_parse_infoboost::spirit::nil_t,
boost::spirit::nil_t> boost::spirit::pt_parse(const IteratorT&, const
IteratorT&, const boost::spirit::parser<DerivedT>&) [with IteratorT =
boost::wave::cpplexer::lex_iterator, char*> > > > >, ParserT =
boost::wave::grammars::predefined_macros_grammar]'
/home/jhughes/boost_1_33_1/boost/wave/grammars/cpp_predef_macros_grammar.hpp
:153: instantiated from `static boost::spirit::tree_parse_infoboost::spirit::nil_t,
boost::spirit::nil_t>
boost::wave::grammars::predefined_macros_grammar_gen<LexIteratorT>::parse_pr
edefined_macro(const LexIteratorT&, const LexIteratorT&) [with LexIteratorT
= lexer_type]'
/home/jhughes/boost_1_33_1/libs/wave/build/../src/instantiate_predef_macros.
cpp:33: instantiated from here
/home/jhughes/boost_1_33_1/boost/spirit/tree/parse_tree.hpp:74: error:
'class boost::spirit::matchboost::spirit::nil_t' has no member named
'trees'
set -e
"/opt/montavista/mobilinux/devkit/arm/iwmmxt_le/bin/iwmmxt_le-g++"
-D_REENTRANT -c -Wall -ftemplate-depth-255 -g -O0 -fno-inline
-I"bin/boost/libs/wave/build" -I"/home/jhughes/boost_1_33_1" -I
"/home/jhughes/boost_1_33_1" -o
"bin/boost/libs/wave/build/libboost_wave.a/gcc/debug/instantiate_predef_macr
os.o"
"/home/jhughes/boost_1_33_1/libs/wave/build/../src/instantiate_predef_macros
.cpp"
"/opt/montavista/mobilinux/devkit/arm/iwmmxt_le/bin/iwmmxt_le-objcopy"
--set-section-flags .debug_str=contents,debug
"bin/boost/libs/wave/build/libboost_wave.a/gcc/debug/instantiate_predef_macr
os.o"
...failed gcc-C++-action
bin/boost/libs/wave/build/libboost_wave.a/gcc/debug/instantiate_predef_macro
s.o...
<<<<
Apologies for the horrendous formatting - not sure of the best way of
posting these errors. There are others but don't want the message to get too
large unless requested.
Hope that helps...
James