On Fri, Nov 08, 2013 at 11:15:29AM +0100, Thomas Klausner wrote: > I've tried building lilypond-2.17.28 with libc++, the new standard c++ > library for use with llvm (http://libcxx.llvm.org/). > > I have a build failure I don't really know how to fix, it is: > > In file included from file-path.cc:21: > In file included from ./include/file-path.hh:23: > In file included from ./include/std-vector.hh:74: > /usr/include/c++/vector:1371:12: error: calling a private constructor of > class 'std::__1::__wrap_iter<std::__1::basic_string<char> *>' > return iterator(__p); > ^ > /usr/include/c++/vector:1408:12: note: in instantiation of member function > 'std::__1::__flower_vector<std::__1::basic_string<char>, > std::__1::allocator<std::__1::basic_string<char> > >::__make_iter' > requested here > return __make_iter(this->__end_); > ^ > ./include/std-vector.hh:155:15: note: in instantiation of member function > 'std::__1::__flower_vector<std::__1::basic_string<char>, > std::__1::allocator<std::__1::basic_string<char> > >::end' requested > here > v.insert (v.end (), w.begin (), w.end ()); > ^ > file-path.cc:52:3: note: in instantiation of function template specialization > 'concat<std::__1::basic_string<char> >' requested here > concat (dirs_, string_split (p, PATHSEP)); > ^ > /usr/include/c++/iterator:1200:31: note: declared private here > _LIBCPP_INLINE_VISIBILITY __wrap_iter(iterator_type __x) _NOEXCEPT : > __i(__x) {} > ^ > > same error in another file: > In file included from file-path.cc:21: > In file included from ./include/file-path.hh:23: > In file included from ./include/std-vector.hh:74: > /usr/include/c++/vector:1371:12: error: calling a private constructor of > class 'std::__1::__wrap_iter<std::__1::basic_string<char> *>' > return iterator(__p); > ^ > /usr/include/c++/vector:1408:12: note: in instantiation of member function > 'std::__1::__flower_vector<std::__1::basic_string<char>, > std::__1::allocator<std::__1::basic_string<char> > >::__make_iter' > requested here > return __make_iter(this->__end_); > ^ > ./include/std-vector.hh:155:15: note: in instantiation of member function > 'std::__1::__flower_vector<std::__1::basic_string<char>, > std::__1::allocator<std::__1::basic_string<char> > >::end' requested > here > v.insert (v.end (), w.begin (), w.end ()); > ^ > file-path.cc:52:3: note: in instantiation of function template specialization > 'concat<std::__1::basic_string<char> >' requested here > concat (dirs_, string_split (p, PATHSEP)); > ^ > /usr/include/c++/iterator:1200:31: note: declared private here > _LIBCPP_INLINE_VISIBILITY __wrap_iter(iterator_type __x) _NOEXCEPT : > __i(__x) {} > ^ > > I know that there are differences between GNU cc and clang wrt. the > inline keyword, see > > http://clang.llvm.org/compatibility.html#inline > > and I guess it might be related, but I don't see how to fix that. > > Ideas?
I just saw that 2.17.95 is out. It still has the same error. I also saw In file included from interval-set.cc:20: In file included from ./include/interval-set.hh:23: In file included from ./include/std-vector.hh:74: /usr/include/c++/vector:1371:12: error: calling a private constructor of class 'std::__1::__wrap_iter<Interval_t<double> *>' return iterator(__p); ^ /usr/include/c++/vector:1392:12: note: in instantiation of member function 'std::__1::__flower_vector<Interval_t<double>, std::__1::allocator<Interval_t<double> > >::__make_iter' requested here return __make_iter(this->__begin_); ^ ./include/std-vector.hh:216:11: note: in instantiation of member function 'std::__1::__flower_vector<Interval_t<double>, std::__1::allocator<Interval_t<double> > >::begin' requested here sort (v.begin () + b, v.begin () + e, less); ^ interval-set.cc:40:3: note: in instantiation of function template specialization 'vector_sort<Interval_t<double>, bool (*)(const Interval_t<double> &, const Interval_t<double> &)>' requested here vector_sort (ivs, Interval::left_less); ^ /usr/include/c++/iterator:1200:31: note: declared private here _LIBCPP_INLINE_VISIBILITY __wrap_iter(iterator_type __x) _NOEXCEPT : __i(__x) {} ^ warn.cc:114:29: error: use of undeclared identifier 'expected_warnings'; did you mean 'expect_warning'? for (vsize i = 0; i < expected_warnings.size (); i++) ^~~~~~~~~~~~~~~~~ expect_warning warn.cc:102:6: note: 'expect_warning' declared here void expect_warning (const string &msg) ^ warn.cc:114:46: error: member reference base type 'void (const string &)' is not a structure or union for (vsize i = 0; i < expected_warnings.size (); i++) ~~~~~~~~~~~~~~~~~^~~~~ warn.cc:115:31: error: use of undeclared identifier 'expected_warnings'; did you mean 'expect_warning'? msg += "\n " + expected_warnings[i]; ^~~~~~~~~~~~~~~~~ expect_warning warn.cc:102:6: note: 'expect_warning' declared here void expect_warning (const string &msg) ^ warn.cc:115:31: error: subscript of pointer to function type 'void (const string &)' msg += "\n " + expected_warnings[i]; ^~~~~~~~~~~~~~~~~ warn.cc:119:3: error: use of undeclared identifier 'expected_warnings'; did you mean 'expect_warning'? expected_warnings.clear (); ^~~~~~~~~~~~~~~~~ expect_warning warn.cc:102:6: note: 'expect_warning' declared here void expect_warning (const string &msg) ^ warn.cc:119:20: error: member reference base type 'void (const string &)' is not a structure or union expected_warnings.clear (); ~~~~~~~~~~~~~~~~~^~~~~~ And string-convert.cc:302:26: error: call to 'to_string' is ambiguous string format = "%." + to_string (max (0, n - 1)) + "e"; ^~~~~~~~~ /usr/include/c++/string:4011:25: note: candidate function _LIBCPP_FUNC_VIS string to_string(int __val); ^ ./include/std-string.hh:44:8: note: candidate function string to_string (int i, char const *format = 0); ^ /usr/include/c++/string:4012:25: note: candidate function _LIBCPP_FUNC_VIS string to_string(unsigned __val); ^ /usr/include/c++/string:4013:25: note: candidate function _LIBCPP_FUNC_VIS string to_string(long __val); ^ /usr/include/c++/string:4014:25: note: candidate function _LIBCPP_FUNC_VIS string to_string(unsigned long __val); ^ /usr/include/c++/string:4015:25: note: candidate function _LIBCPP_FUNC_VIS string to_string(long long __val); ^ /usr/include/c++/string:4016:25: note: candidate function _LIBCPP_FUNC_VIS string to_string(unsigned long long __val); ^ /usr/include/c++/string:4017:25: note: candidate function _LIBCPP_FUNC_VIS string to_string(float __val); ^ /usr/include/c++/string:4018:25: note: candidate function _LIBCPP_FUNC_VIS string to_string(double __val); ^ /usr/include/c++/string:4019:25: note: candidate function _LIBCPP_FUNC_VIS string to_string(long double __val); ^ ./include/std-string.hh:43:8: note: candidate function string to_string (char c, int n = 1); ^ ./include/std-string.hh:45:8: note: candidate function string to_string (double f, char const *format = 0); ^ ./include/std-string.hh:46:8: note: candidate function string to_string (long); ^ ./include/std-string.hh:47:8: note: candidate function string to_string (long unsigned); ^ ./include/std-string.hh:48:8: note: candidate function string to_string (I64, char const *format = 0); ^ ./include/std-string.hh:49:8: note: candidate function string to_string (unsigned); ^ ./include/std-string.hh:50:8: note: candidate function string to_string (bool b); ^ And: warn.cc:101:1: error: unknown type name 'vector' vector<string> expected_warnings; ^ warn.cc:101:7: error: expected unqualified-id vector<string> expected_warnings; ^ interval-set.cc:82:3: error: use of undeclared identifier 'vector' vector<Interval>::const_iterator i = upper_bound (x); ^ interval-set.cc:82:10: error: unexpected type name 'Interval': expected expression vector<Interval>::const_iterator i = upper_bound (x); ^ warn.cc:104:3: error: use of undeclared identifier 'expected_warnings'; did you mean 'expect_warning'? expected_warnings.push_back (msg); ^~~~~~~~~~~~~~~~~ expect_warning warn.cc:102:6: note: 'expect_warning' declared here void expect_warning (const string &msg) ^ warn.cc:104:20: error: member reference base type 'void (const string &)' is not a structure or union expected_warnings.push_back (msg); ~~~~~~~~~~~~~~~~~^~~~~~~~~~ interval-set.cc:82:21: error: no member named 'const_iterator' in the global namespace vector<Interval>::const_iterator i = upper_bound (x); ~~^ interval-set.cc:83:7: error: use of undeclared identifier 'i' if (i != intervals_.end ()) ^ warn.cc:109:7: error: use of undeclared identifier 'expected_warnings'; did you mean 'expect_warning'? if (expected_warnings.size () > 0) ^~~~~~~~~~~~~~~~~ expect_warning warn.cc:102:6: note: 'expect_warning' declared here void expect_warning (const string &msg) ^ warn.cc:109:24: error: member reference base type 'void (const string &)' is not a structure or union if (expected_warnings.size () > 0) ~~~~~~~~~~~~~~~~~^~~~~ interval-set.cc:84:15: error: use of undeclared identifier 'i' right = (*i)[LEFT]; ^ interval-set.cc:86:7: error: use of undeclared identifier 'i' if (i != intervals_.begin ()) ^ interval-set.cc:88:28: error: use of undeclared identifier 'i' Interval left_iv = *(i - 1); ^ warn.cc:113:24: error: use of undeclared identifier 'expected_warnings'; did you mean 'expect_warning'? expected_warnings.size ()); ^~~~~~~~~~~~~~~~~ expect_warning warn.cc:102:6: note: 'expect_warning' declared here void expect_warning (const string &msg) ^ warn.cc:113:41: error: member reference base type 'void (const string &)' is not a structure or union expected_warnings.size ()); ~~~~~~~~~~~~~~~~~^~~~~ Thomas _______________________________________________ bug-lilypond mailing list bug-lilypond@gnu.org https://lists.gnu.org/mailman/listinfo/bug-lilypond