Hi everyone,
I am a beginner on Cap'n Proto and I would like to ask a build question. I
am using Clang 3.5.0 to build Cap'n Proto but failed. What I did for build
was
./configure CXX=clang++ CXXFLAGS='-std=gnu++1y -g'
make
and the build error is as follows:
luckyboy@cse-322osu10:capnproto-c++-0.5.3.1$ make
depbase=`echo src/capnp/compiler/module-loader.o | sed
's|[^/]*$|.deps/&|;s|\.o$||'`;\
clang++ -stdlib=libc++ -DHAVE_CONFIG_H -I. -I./src -I./src
-DKJ_HEADER_WARNINGS -DCAPNP_HEADER_WARNINGS
-DCAPNP_INCLUDE_DIR='"/usr/local/include"' -pthread -g -pthread -MT
src/capnp/compiler/module-loader.o -MD -MP -MF $depbase.Tpo -c -o
src/capnp/compiler/module-loader.o src/capnp/compiler/module-loader.c++ &&\
mv -f $depbase.Tpo $depbase.Po
In file included from src/capnp/compiler/module-loader.c++:22:
In file included from src/capnp/compiler/module-loader.h:29:
In file included from src/capnp/compiler/compiler.h:29:
In file included from ./src/capnp/compiler/grammar.capnp.h:7:
In file included from ./src/capnp/generated-header-support.h:31:
In file included from ./src/capnp/layout.h:36:
./src/kj/common.h:35:4: error: "This code requires C++11. Either your
compiler does not support it or it is not enabled."
#error "This code requires C++11. Either your compiler does not support
it or it is not enabled."
^
./src/kj/common.h:38:6: error: "Pass -std=c++11 on the compiler command
line to enable C++11."
#error "Pass -std=c++11 on the compiler command line to enable C++11."
^
./src/kj/common.h:289:39: warning: alias declarations are a C++11 extension
[-Wc++11-extensions]
template <typename T> using NoInfer = typename NoInfer_<T>::Type;
^
./src/kj/common.h:295:43: warning: alias declarations are a C++11 extension
[-Wc++11-extensions]
template <typename T> using RemoveConst = typename RemoveConst_<T>::Type;
^
./src/kj/common.h:297:56: error: unknown type name 'constexpr'
template <typename> struct IsLvalueReference_ { static constexpr bool value
= false; };
^
./src/kj/common.h:297:66: error: expected member name or ';' after
declaration specifiers
template <typename> struct IsLvalueReference_ { static constexpr bool value
= false; };
~~~~~~~~~~~~~~~~ ^
./src/kj/common.h:298:62: error: unknown type name 'constexpr'
template <typename T> struct IsLvalueReference_<T&> { static constexpr bool
value = true; };
^
./src/kj/common.h:298:72: error: expected member name or ';' after
declaration specifiers
template <typename T> struct IsLvalueReference_<T&> { static constexpr bool
value = true; };
~~~~~~~~~~~~~~~~ ^
./src/kj/common.h:300:8: error: unknown type name 'constexpr'
inline constexpr bool isLvalueReference() { return
IsLvalueReference_<T>::value; }
^
./src/kj/common.h:300:18: error: expected unqualified-id
inline constexpr bool isLvalueReference() { return
IsLvalueReference_<T>::value; }
^
./src/kj/common.h:303:30: error: explicit specialization of non-template
struct 'Decay_'
template <typename T> struct Decay_<T&> { typedef typename Decay_<T>::Type
Type; };
^ ~~~~
./src/kj/common.h:303:71: error: no type named 'Type' in 'Decay_<T>'
template <typename T> struct Decay_<T&> { typedef typename Decay_<T>::Type
Type; };
~~~~~~~~~~~~~~~~~~~~^~~~
./src/kj/common.h:304:38: warning: rvalue references are a C++11 extension
[-Wc++11-extensions]
template <typename T> struct Decay_<T&&> { typedef typename Decay_<T>::Type
Type; };
^
./src/kj/common.h:311:37: warning: alias declarations are a C++11 extension
[-Wc++11-extensions]
template <typename T> using Decay = typename Decay_<T>::Type;
^
./src/kj/common.h:315:36: warning: alias declarations are a C++11 extension
[-Wc++11-extensions]
template <bool b> using EnableIf = typename EnableIf_<b>::Type;
^
./src/kj/common.h:322:13: error: expected ';' at end of declaration
T instance() noexcept;
^
;
./src/kj/common.h:322:14: error: C++ requires a type specifier for all
declarations
T instance() noexcept;
^~~~~~~~
./src/kj/common.h:343:25: warning: defaulted function definitions are a
C++11 extension [-Wc++11-extensions]
DisallowConstCopy() = default;
^
./src/kj/common.h:345:38: warning: rvalue references are a C++11 extension
[-Wc++11-extensions]
DisallowConstCopy(DisallowConstCopy&&) = default;
^
./src/kj/common.h:345:44: warning: defaulted function definitions are a
C++11 extension [-Wc++11-extensions]
DisallowConstCopy(DisallowConstCopy&&) = default;
^
./src/kj/common.h:347:49: warning: rvalue references are a C++11 extension
[-Wc++11-extensions]
DisallowConstCopy& operator=(DisallowConstCopy&&) = default;
^
./src/kj/common.h:347:55: warning: defaulted function definitions are a
C++11 extension [-Wc++11-extensions]
DisallowConstCopy& operator=(DisallowConstCopy&&) = default;
^
./src/kj/common.h:351:67: warning: defaulted function definitions are a
C++11 extension [-Wc++11-extensions]
inline DisallowConstCopy::DisallowConstCopy(DisallowConstCopy&) = default;
^
./src/kj/common.h:352:78: warning: defaulted function definitions are a
C++11 extension [-Wc++11-extensions]
inline DisallowConstCopy& DisallowConstCopy::operator=(DisallowConstCopy&)
= default;
^
./src/kj/common.h:364:48: error: unknown type name 'constexpr'
template <typename T> struct IsConst_ { static constexpr bool value =
false; };
^
./src/kj/common.h:364:58: error: expected member name or ';' after
declaration specifiers
template <typename T> struct IsConst_ { static constexpr bool value =
false; };
~~~~~~~~~~~~~~~~ ^
./src/kj/common.h:365:57: error: unknown type name 'constexpr'
template <typename T> struct IsConst_<const T> { static constexpr bool
value = true; };
^
./src/kj/common.h:365:67: error: expected member name or ';' after
declaration specifiers
template <typename T> struct IsConst_<const T> { static constexpr bool
value = true; };
~~~~~~~~~~~~~~~~ ^
./src/kj/common.h:366:23: error: unknown type name 'constexpr'
template <typename T> constexpr bool isConst() { return IsConst_<T>::value;
}
^
./src/kj/common.h:366:33: error: expected unqualified-id
template <typename T> constexpr bool isConst() { return IsConst_<T>::value;
}
^
./src/kj/common.h:369:30: error: explicit specialization of non-template
struct 'EnableIfNotConst_'
template <typename T> struct EnableIfNotConst_<const T>;
^ ~~~~~~~~~
./src/kj/common.h:370:48: warning: alias declarations are a C++11 extension
[-Wc++11-extensions]
template <typename T> using EnableIfNotConst = typename
EnableIfNotConst_<T>::Type;
^
./src/kj/common.h:374:45: warning: alias declarations are a C++11 extension
[-Wc++11-extensions]
template <typename T> using EnableIfConst = typename
EnableIfConst_<T>::Type;
^
./src/kj/common.h:378:52: warning: alias declarations are a C++11 extension
[-Wc++11-extensions]
template <typename T> using RemoveConstOrDisable = typename
RemoveConstOrDisable_<T>::Type;
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
clang:
/home/sxl463/working/softboundcets-3.5.0/softboundcets-llvm-3.5.0/include/llvm/Support/Casting.h:95:
static bool llvm::isa_impl_cl<clang::FunctionDecl, const clang::DeclContext
*>::doit(const From *) [To = clang::FunctionDecl, From = const
clang::DeclContext *]: Assertion `Val && "isa<> used on a null pointer"'
failed.
0 clang 0x000000000288d535 llvm::sys::PrintStackTrace(_IO_FILE*)
+ 37
1 clang 0x000000000288de33
2 libpthread.so.0 0x00002b42dfb1c330
3 libc.so.6 0x00002b42e09adc37 gsignal + 55
4 libc.so.6 0x00002b42e09b1028 abort + 328
5 libc.so.6 0x00002b42e09a6bf6
6 libc.so.6 0x00002b42e09a6ca2
7 clang 0x0000000000c60e1b
clang::Sema::FinalizeDeclaration(clang::Decl*) + 3307
8 clang 0x0000000000b17115
clang::Parser::ParseCXXClassMemberDeclaration(clang::AccessSpecifier,
clang::AttributeList*, clang::Parser::ParsedTemplateInfo const&,
clang::ParsingDeclRAIIObject*) + 6069
9 clang 0x0000000000b136eb
clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation,
clang::SourceLocation, clang::Parser::ParsedAttributesWithRange&, unsigned
int, clang::Decl*) + 2491
10 clang 0x0000000000b11f47
clang::Parser::ParseClassSpecifier(clang::tok::TokenKind,
clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo
const&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext,
clang::Parser::ParsedAttributesWithRange&) + 8231
11 clang 0x0000000000af51f8
clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&,
clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier,
clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*) + 2888
12 clang 0x0000000000b645ec
clang::Parser::ParseSingleDeclarationAfterTemplate(unsigned int,
clang::Parser::ParsedTemplateInfo const&, clang::ParsingDeclRAIIObject&,
clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) + 604
13 clang 0x0000000000b64037
clang::Parser::ParseTemplateDeclarationOrSpecialization(unsigned int,
clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) +
1015
14 clang 0x0000000000b63a30
clang::Parser::ParseDeclarationStartingWithTemplate(unsigned int,
clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) + 288
15 clang 0x0000000000af4228
clang::Parser::ParseDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&,
unsigned int, clang::SourceLocation&,
clang::Parser::ParsedAttributesWithRange&) + 872
16 clang 0x0000000000ae42db
clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*) + 1755
17 clang 0x0000000000b0b149
clang::Parser::ParseInnerNamespace(std::vector<clang::SourceLocation,
std::allocator<clang::SourceLocation> >&,
std::vector<clang::IdentifierInfo*, std::allocator<clang::IdentifierInfo*>
>&, std::vector<clang::SourceLocation,
std::allocator<clang::SourceLocation> >&, unsigned int,
clang::SourceLocation&, clang::ParsedAttributes&,
clang::BalancedDelimiterTracker&) + 313
18 clang 0x0000000000b0aa11
clang::Parser::ParseNamespace(unsigned int, clang::SourceLocation&,
clang::SourceLocation) + 5921
19 clang 0x0000000000af4069
clang::Parser::ParseDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&,
unsigned int, clang::SourceLocation&,
clang::Parser::ParsedAttributesWithRange&) + 425
20 clang 0x0000000000ae42db
clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*) + 1755
21 clang 0x0000000000b0b149
clang::Parser::ParseInnerNamespace(std::vector<clang::SourceLocation,
std::allocator<clang::SourceLocation> >&,
std::vector<clang::IdentifierInfo*, std::allocator<clang::IdentifierInfo*>
>&, std::vector<clang::SourceLocation,
std::allocator<clang::SourceLocation> >&, unsigned int,
clang::SourceLocation&, clang::ParsedAttributes&,
clang::BalancedDelimiterTracker&) + 313
22 clang 0x0000000000b0aa11
clang::Parser::ParseNamespace(unsigned int, clang::SourceLocation&,
clang::SourceLocation) + 5921
23 clang 0x0000000000af4069
clang::Parser::ParseDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&,
unsigned int, clang::SourceLocation&,
clang::Parser::ParsedAttributesWithRange&) + 425
24 clang 0x0000000000ae42db
clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*) + 1755
25 clang 0x0000000000ae3b06
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) +
502
26 clang 0x0000000000adf816 clang::ParseAST(clang::Sema&, bool,
bool) + 406
27 clang 0x0000000000708bde clang::FrontendAction::Execute() + 62
28 clang 0x00000000006dd513
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 851
29 clang 0x00000000006bfe70
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 3104
30 clang 0x00000000006b7029 cc1_main(char const**, char const**,
char const*, void*) + 665
31 clang 0x00000000006bdb16 main + 9158
32 libc.so.6 0x00002b42e0998f45 __libc_start_main + 245
33 clang 0x00000000006b6cc9
Stack dump:
0. Program arguments: /usr/local/bin/clang -cc1 -triple
x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free
-main-file-name module-loader.c++ -mrelocation-model static
-mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases
-munwind-tables -fuse-init-array -target-cpu x86-64 -target-linker-version
2.24 -g -dwarf-column-info -coverage-file
/home/sxl463/working/capnproto/capnproto-c++-0.5.3.1/src/capnp/compiler/module-loader.o
-resource-dir /usr/local/bin/../lib/clang/3.5.0 -dependency-file
src/capnp/compiler/.deps/module-loader.Tpo -sys-header-deps -MP -MT
src/capnp/compiler/module-loader.o -D HAVE_CONFIG_H -D KJ_HEADER_WARNINGS
-D CAPNP_HEADER_WARNINGS -D CAPNP_INCLUDE_DIR="/usr/local/include" -I . -I
./src -I ./src -internal-isystem /usr/local/bin/../include/c++/v1
-internal-isystem /usr/local/include -internal-isystem
/usr/local/bin/../lib/clang/3.5.0/include -internal-externc-isystem
/usr/include/x86_64-linux-gnu -internal-externc-isystem /include
-internal-externc-isystem /usr/include -fdeprecated-macro
-fdebug-compilation-dir
/home/sxl463/working/capnproto/capnproto-c++-0.5.3.1 -ferror-limit 19
-fmessage-length 134 -pthread -mstackrealign -fobjc-runtime=gcc
-fcxx-exceptions -fexceptions -fdiagnostics-show-option -o
src/capnp/compiler/module-loader.o -x c++
src/capnp/compiler/module-loader.c++
1. ./src/capnp/generated-header-support.h:262:40: current parser token
'const'
2. ./src/capnp/generated-header-support.h:39:1: parsing namespace 'capnp'
3. ./src/capnp/generated-header-support.h:48:1: parsing namespace '_'
4. ./src/capnp/generated-header-support.h:260:1: parsing struct/union/class
body 'ChooseBrand'
clang: error: unable to execute command: Aborted (core dumped)
clang: error: clang frontend command failed due to signal (use -v to see
invocation)
clang version 3.5.0 (tags/RELEASE_350/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
clang: note: diagnostic msg: PLEASE submit a bug report to
http://llvm.org/bugs/ and include the crash backtrace, preprocessed source,
and associated run script.
clang: note: diagnostic msg: Error generating preprocessed source(s).
make: *** [src/capnp/compiler/module-loader.o] Error 254
--------------------------------------------------------------------------------------------------------------------------
It seems someone had asked similar questions 3 years ago but no official
solution. What I am eager to know is how should I handle this? If I want to
keep using Clang 3.5, is this unavoidable?
Thanks very much for any hints and help!
--
You received this message because you are subscribed to the Google Groups
"Cap'n Proto" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
Visit this group at https://groups.google.com/group/capnproto.