Bug 161521 - jsc: fix cmake build missing symbol getPropertySlot
Summary: jsc: fix cmake build missing symbol getPropertySlot
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: JF Bastien
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-09-01 18:23 PDT by JF Bastien
Modified: 2016-10-26 16:06 PDT (History)
5 users (show)

See Also:


Attachments
patch (11.87 KB, patch)
2016-09-01 18:25 PDT, JF Bastien
fpizlo: review-
Details | Formatted Diff | Diff
patch (2.37 KB, patch)
2016-09-01 18:50 PDT, JF Bastien
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description JF Bastien 2016-09-01 18:23:46 PDT
The following patch moved things around: https://bugs.webkit.org/show_bug.cgi?id=161499

It seems to upset the cmake build with:

Undefined symbols for architecture x86_64:
  "JSC::JSObject::getPropertySlot(JSC::ExecState*, unsigned int, JSC::PropertySlot&)", referenced from:
      JSC::JSObject::get(JSC::ExecState*, JSC::PropertyName) const in IntlDateTimeFormat.cpp.o
      JSC::JSObject::get(JSC::ExecState*, JSC::PropertyName) const in IntlNumberFormat.cpp.o
  "JSC::JSObject::getNonIndexPropertySlot(JSC::ExecState*, JSC::PropertyName, JSC::PropertySlot&)", referenced from:
      JSC::JSObject::get(JSC::ExecState*, JSC::PropertyName) const in IntlDateTimeFormat.cpp.o
      JSC::JSObject::get(JSC::ExecState*, JSC::PropertyName) const in IntlNumberFormat.cpp.o
ld: symbol(s) not found for architecture x86_64

Sure enough, I nm through all the .o files and all references to getPropertySlot are U.

The non-template functions are huge anyways, it seems optimistic to me that they would *ever* be inlined.
Comment 1 JF Bastien 2016-09-01 18:25:47 PDT
Created attachment 287710 [details]
patch
Comment 2 Filip Pizlo 2016-09-01 18:32:47 PDT
Comment on attachment 287710 [details]
patch

But these are marked ALWAYS_INLINE.  I believe that there are a few places where we actually rely on them being inlined.

You should carefully test performance with such a change.  I'm happy to r+ if you've run JetStream, Speedometer, and PLT3.
Comment 3 JF Bastien 2016-09-01 18:50:16 PDT
Created attachment 287713 [details]
patch

Fixed by including JSCInlines.h instead of moving things to .cpp file (Fil and others pointed out that this would have perf implications, etc).

This also fixes the cmake build.
Comment 4 WebKit Commit Bot 2016-09-01 18:53:04 PDT
Attachment 287713 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp:38:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/runtime/IntlNumberFormat.cpp:38:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 5 Saam Barati 2016-09-01 19:00:03 PDT
Comment on attachment 287713 [details]
patch

r=me
I'm going to let EWS build before cq+
Comment 6 WebKit Commit Bot 2016-09-01 19:45:46 PDT
Comment on attachment 287713 [details]
patch

Clearing flags on attachment: 287713

Committed r205332: <http://trac.webkit.org/changeset/205332>
Comment 7 WebKit Commit Bot 2016-09-01 19:45:50 PDT
All reviewed patches have been landed.  Closing bug.