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 capnproto+unsubscr...@googlegroups.com.
Visit this group at https://groups.google.com/group/capnproto.

Reply via email to