Closed aroben closed 10 years ago
Cool we broke Clang:
CXX(target) out/Debug/obj.target/brightray_example_lib/renderer/render_view_observer.o
0 libLLVM-3.0.so.1 0x00002b20824e6fcf
1 libLLVM-3.0.so.1 0x00002b20824e7591
2 libpthread.so.0 0x00002b2082e09cb0
3 clang 0x000000000093d168 clang::Sema::MaybeConvertParenListExprToParenExpr(clang::Scope*, clang::Expr*) + 40
4 clang 0x000000000094983c clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, clang::ASTMultiPtr<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool) + 76
5 clang 0x0000000000812d09 clang::Parser::ParsePostfixExpressionSuffix(clang::ActionResult<clang::Expr*, true>) + 3145
6 clang 0x000000000080cd3b clang::Parser::ParseCastExpression(bool, bool, bool&, bool) + 203
7 clang 0x000000000080f59e clang::Parser::ParseCastExpression(bool, bool, bool) + 30
8 clang 0x000000000080fe8f clang::Parser::ParseAssignmentExpression() + 31
9 clang 0x00000000007f0ffd clang::Parser::ParseDeclarationAfterDeclaratorAndAttributes(clang::Declarator&, clang::Parser::ParsedTemplateInfo const&) + 525
10 clang 0x00000000007f4c9a clang::Parser::ParseDeclGroup(clang::Parser::ParsingDeclSpec&, unsigned int, bool, clang::SourceLocation*, clang::Parser::ForRangeInit*) + 1210
11 clang 0x00000000007f9764 clang::Parser::ParseSimpleDeclaration(clang::ASTOwningVector<clang::Stmt*, 32u>&, unsigned int, clang::SourceLocation&, clang::ParsedAttributes&, bool, clang::Parser::ForRangeInit*) + 740
12 clang 0x00000000007f9933 clang::Parser::ParseDeclaration(clang::ASTOwningVector<clang::Stmt*, 32u>&, unsigned int, clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&) + 163
13 clang 0x00000000007cf54c clang::Parser::ParseStatementOrDeclaration(clang::ASTOwningVector<clang::Stmt*, 32u>&, bool) + 364
14 clang 0x00000000007cca11 clang::Parser::ParseCompoundStatementBody(bool) + 417
15 clang 0x00000000007cd6fa clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) + 138
16 clang 0x00000000007e708c clang::Parser::ParseFunctionDefinition(clang::Parser::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&) + 1116
17 clang 0x00000000007f4a42 clang::Parser::ParseDeclGroup(clang::Parser::ParsingDeclSpec&, unsigned int, bool, clang::SourceLocation*, clang::Parser::ForRangeInit*) + 610
18 clang 0x00000000007e2c75 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsingDeclSpec&, clang::AccessSpecifier) + 149
19 clang 0x00000000007e32e6 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::AccessSpecifier) + 678
20 clang 0x00000000007e4ead clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::Parser::ParsingDeclSpec*) + 2685
21 clang 0x00000000008032ef 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::Parser::BalancedDelimiterTracker&) + 367
22 clang 0x000000000080403e clang::Parser::ParseNamespace(unsigned int, clang::SourceLocation&, clang::SourceLocation) + 1854
23 clang 0x00000000007f9b11 clang::Parser::ParseDeclaration(clang::ASTOwningVector<clang::Stmt*, 32u>&, unsigned int, clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&) + 641
24 clang 0x00000000007e483d clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::Parser::ParsingDeclSpec*) + 1037
25 clang 0x00000000008032ef 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::Parser::BalancedDelimiterTracker&) + 367
26 clang 0x000000000080403e clang::Parser::ParseNamespace(unsigned int, clang::SourceLocation&, clang::SourceLocation) + 1854
27 clang 0x00000000007f9b11 clang::Parser::ParseDeclaration(clang::ASTOwningVector<clang::Stmt*, 32u>&, unsigned int, clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&) + 641
28 clang 0x00000000007e483d clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::Parser::ParsingDeclSpec*) + 1037
29 clang 0x00000000007e5417 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) + 167
30 clang 0x00000000007bcbfd clang::ParseAST(clang::Sema&, bool) + 269
31 clang 0x00000000006a6253 clang::CodeGenAction::ExecuteAction() + 51
32 clang 0x00000000005adc7f clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 319
33 clang 0x000000000059653a clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1114
34 clang 0x000000000058e1c4 cc1_main(char const**, char const**, char const*, void*) + 820
35 clang 0x000000000058cb3c main + 620
36 libc.so.6 0x00002b208354f76d __libc_start_main + 237
37 clang 0x000000000058dd39
Stack dump:
0. Program arguments: /usr/bin/clang -cc1 -triple x86_64-pc-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -main-file-name render_view_observer.cc -mrelocation-model static -mdisable-fp-elim -masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64 -target-linker-version 2.22 -momit-leaf-frame-pointer -coverage-file out/Debug/obj.target/brightray_example_lib/renderer/render_view_observer.o -resource-dir /usr/bin/../lib/clang/3.0 -dependency-file out/Debug/.deps/out/Debug/obj.target/brightray_example_lib/renderer/render_view_observer.o.d.raw -MT out/Debug/obj.target/brightray_example_lib/renderer/render_view_observer.o -D COMPONENT_BUILD -D GURL_DLL -D SKIA_DLL -D NDEBUG -D USING_V8_SHARED -D WEBKIT_DLL -D USE_X11 -I . -I vendor -I vendor/brightray/vendor/download/libchromiumcontent/src -I vendor/brightray/vendor/download/libchromiumcontent/src/third_party/skia/include/config -I vendor/brightray/vendor/download/libchromiumcontent/src/third_party/skia/include/core -I vendor/brightray/vendor/download/libchromiumcontent/src/third_party/icu/public/common -fmodule-cache-path /var/tmp/clang-module-cache -internal-isystem /usr/include/c++/4.6 -internal-isystem /usr/include/c++/4.6/x86_64-linux-gnu -internal-isystem /usr/include/c++/4.6/backward -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/clang/3.0/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /usr/include -std=gnu++11 -fdeprecated-macro -ferror-limit 19 -fmessage-length 0 -fgnu-runtime -fobjc-runtime-has-arc -fobjc-runtime-has-weak -fobjc-fragile-abi -fcxx-exceptions -fexceptions -fdiagnostics-show-option -o out/Debug/obj.target/brightray_example_lib/renderer/render_view_observer.o -x c++ renderer/render_view_observer.cc
1. renderer/render_view_observer.cc:22:5: current parser token ')'
2. renderer/render_view_observer.cc:9:1: parsing namespace 'brightray_example'
3. renderer/render_view_observer.cc:11:1: parsing namespace
4. renderer/render_view_observer.cc:17:58: parsing function body 'ConstructorTemplate'
5. renderer/render_view_observer.cc:17:58: in compound statement ('{}')
Ah, looks like C++11 lambdas aren't available until Clang 3.1. We're using Clang 3.0.
browser/linux/window_linux.cc
browser/linux/application_info_linux.cc
. On Mac and Windows, these functions are implemented in brightray. But on Linux, there's no general way to ask a binary for its application name and version. (Linux binaries don't have this metadata.) So it's the app's own responsibility to implement these functions.@aroben I merged from master, which took care of the lambda/closure/scoping comment. The other two comments you made, I've addressed with the two previous commits.
The build is now broken, because the most recent libchromium wants (but does not build) its vendored version of tcmalloc. Click the failed build to see the missing symbols.
@piki I believe we turn off TCMalloc in libchromiumcontent because using it would require embedding apps to use it as well. Is there some macro we need to define to tell the Chromium headers that we aren't using it?
@aroben This PR is in reasonable shape to merge, I think. It builds and it runs.
:sparkles::sparkles::sparkles:
This PR attempts to get brightray_example building on Linux. A lot of things will probably not work once the basic build is working, but those can be handled later.
/cc @peff