Currently, when CSS_SELECTOR_JIT_DEBUGGING is 1, build erros occur on x86_64 environment.
Created attachment 232040 [details] Patch
Comment on attachment 232040 [details] Patch Oops. upload miss.
Created attachment 232041 [details] Patch
Comment on attachment 232041 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=232041&action=review Added comments > Source/WebCore/cssjit/SelectorCompiler.cpp:181 > + static const Assembler::RegisterID callFrameRegister; These are declaration, not definition (C++). So referencing them with const reference (const T&) causes link error, "undefined reference to XXX". > Source/WebCore/cssjit/SelectorCompiler.cpp:267 > +const Assembler::RegisterID SelectorCodeGenerator::callFrameRegister = JSC::GPRInfo::callFrameRegister; Added definitions. > Source/WebCore/cssjit/SelectorCompiler.cpp:949 > + prologueRegister.append(callFrameRegister); Since Vector::append referencing the argument as const T&, just replacing `GPRInfo::callFrameRegister` to `JSC::GPRInfo::callFrameRegister` causes link errors. http://stackoverflow.com/questions/5391973/undefined-reference-to-static-const-int http://stackoverflow.com/questions/272900/undefined-reference-to-static-class-member http://stackoverflow.com/questions/3025997/c-defining-static-const-integer-members-in-class-definition
Comment on attachment 232041 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=232041&action=review >> Source/WebCore/cssjit/SelectorCompiler.cpp:181 >> + static const Assembler::RegisterID callFrameRegister; > > These are declaration, not definition (C++). So referencing them with const reference (const T&) causes link error, "undefined reference to XXX". I would expect to see that problem only when using an old C++ compiler; the status of these has changed in C++11. What compiler were you seeing this with?
(In reply to comment #5) > (From update of attachment 232041 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=232041&action=review > > >> Source/WebCore/cssjit/SelectorCompiler.cpp:181 > >> + static const Assembler::RegisterID callFrameRegister; > > > > These are declaration, not definition (C++). So referencing them with const reference (const T&) causes link error, "undefined reference to XXX". > > I would expect to see that problem only when using an old C++ compiler; the status of these has changed in C++11. What compiler were you seeing this with? Oh, I didn't know that! I'm using a default compiler on Ubuntu 14.04, the result of `gcc --version` is the following. gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2 Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Comment on attachment 232041 [details] Patch Clearing flags on attachment: 232041 Committed r169363: <http://trac.webkit.org/changeset/169363>
All reviewed patches have been landed. Closing bug.