JDK-8134985 : WebKit build fails with XCode 6.4
  • Type: Bug
  • Component: javafx
  • Sub-Component: web
  • Affected Version: 8u60
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: os_x
  • Submitted: 2015-09-02
  • Updated: 2015-10-21
  • Resolved: 2015-09-03
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8 JDK 9
8u72Fixed 9Fixed
Related Reports
Relates :  
Description
Release WebKit build fails at link time with the following error:

Undefined symbols for architecture x86_64:
  "JSC::Structure::putWillGrowOutOfLineStorage()", referenced from:
      JSC::JSObject::putDirectWithoutTransition(JSC::VM&, JSC::PropertyName, JSC::JSValue, unsigned int) in libJavaScriptCoreJava.a(MapConstructor.o)
      JSC::JSObject::putDirectWithoutTransition(JSC::VM&, JSC::PropertyName, JSC::JSValue, unsigned int) in libJavaScriptCoreJava.a(SetConstructor.o)
      JSC::JSObject::putDirectWithoutTransition(JSC::VM&, JSC::PropertyName, JSC::JSValue, unsigned int) in libJavaScriptCoreJava.a(WeakMapConstructor.o)
      JSC::JSObject::putDirectWithoutTransition(JSC::VM&, JSC::PropertyName, JSC::JSValue, unsigned int) in libJavaScriptCoreJava.a(MapIteratorConstructor.o)
      JSC::JSObject::putDirectWithoutTransition(JSC::VM&, JSC::PropertyName, JSC::JSValue, unsigned int) in libJavaScriptCoreJava.a(SetIteratorConstructor.o)
      JSC::JSObject::putDirectWithoutTransition(JSC::VM&, JSC::PropertyName, JSC::JSValue, unsigned int) in libJavaScriptCoreJava.a(ArgumentsIteratorConstructor.o)
      bool JSC::JSObject::putDirectInternal<(JSC::JSObject::PutMode)1>(JSC::VM&, JSC::PropertyName, JSC::JSValue, unsigned int, JSC::PutPropertySlot&, JSC::JSCell*) in libJavaScriptCoreJava.a(JSPromiseFunctions.o)
      ...
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [../lib/libjfxwebkit.dylib] Error 1 

This happens because the JSC::Structure::putWillGrowOutOfLineStorage() is declared in the Structure.h but defined in the StructureInlines.h as inline.
Unfortunately, the cpp files listed in the error message lacks the recommended #include "JSCInlines.h"
Comments
Looks fine to me.
03-09-2015

Changeset: 59e8512b0e83 Author: vadim Date: 2015-09-02 23:36 +0300 URL: http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/59e8512b0e83
03-09-2015

Alexander, Could you please review this fix: http://cr.openjdk.java.net/~vadim/8134985/webrev.00/index.html I cherry-picked from two changesets from the WebKit trunk: https://trac.webkit.org/changeset/169703 https://trac.webkit.org/changeset/168116 And yes, WeakMapConstructor include is out of order =)
02-09-2015