As Kevin reasonable noted, the problem was that 32-bit and 64-bit parts were mixed up. I checked the build scripts and found that there were two ways of getting the platform architecture there:

1. ext.OS_ARCH = System.getProperty("os.arch") in build.gradle
2. procarch = $$(PROCESSOR_ARCHITECTURE) $$(PROCESSOR_ARCHITEW6432) in rt\modules\web\src\main\native\Source\JavaScriptCore\TargetJava.pri

At my PC, the former (via system property) returns "x86", while the latter (via environment variables) results to "X86 AMD64". I guess this makes a small part of the web module to be built in 64-bit mode, while the rest is 32-bit, causing to the linkage error.

So, to build successfully, one can either install 64-bit JDK, or change the build script for the two variables to match. I tried the both approaches, the both worked.

Leonid

On 11/13/2013 7:09 PM, Stephen F Northover wrote:
Ok, you can't say that and not tell us what the problem was!

Steve

On 2013-11-13 9:55 AM, Leonid Popov wrote:
Finally managed to build it with JDK 1.8-ea build 114 64 bit.

On 11/12/2013 6:00 PM, Leonid Popov wrote:
Thanks Kevin, but unfortunately it didn't help. Even having it cleaned completely, the build script still generates 32-bit YarrInterpreter.obj and then fails to link it to a 64-bit library. Still investigating.

On 11/11/2013 8:43 PM, Kevin Rushforth wrote:
Hi Leonid,

Building JavaFX on Windows requires Cygwin, so it doesn't surprise me that it fails with a DOS shell.

The error you are seeing on cygwin seems like a mismatch where part of the build is trying to use a 32-bit build and part trying to use 64-bit.

My recommendation is to try the following, from a cygwin shell:

1. Ensure that your JAVA_HOME and PATH point to the same version of Java (the 32-bit Java).

2. Completely clean your repo

cd rt
gradle clean
rm -rf buildSrc/build buildSrc/.gradle .gradle


3. Rebuild, making sure you compile both media and webkit (not sure if needed, but better to remove one more variable):

gradle -PCOMPILE_WEBKIT=true -PCOMPILE_MEDIA=true sdk


See if the above will work.

-- Kevin


Leonid Popov wrote:
Hi Steve,

Yes, I use 32-bit JDK for building. I tried to build it from both Windows and Cygwin command shells. The error I mentioned happens when building from Windows. If I try to build it from Cygwin, I get another error:

Building Webkit configuration /Release/ into C:\javafx\8my\jfx\rt\modules\web\build/win Calling 'qmake -makefile C:/javafx/8my/jfx/rt/modules/web/src/main/native/Source/WebKitJava.pro CONFIG-=debug CONFIG+=release DEFINES+=IMAGEIO=1' in "C:/javafx/8my/jfx/rt/modules/web/build/win/Release" ...


Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation.  All rights reserved.

cd JavaScriptCore\ && C:\MsVS10\VC\BIN\nmake.exe -f Makefile.JavaScriptCoreJava

Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation.  All rights reserved.

        lib /NOLOGO  /OUT:..\lib\JavaScriptCoreJava.lib @.\nm2BB0.tmp
obj\YarrInterpreter.obj : fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64' NMAKE : fatal error U1077: 'C:\MsVS10\VC\BIN\lib.EXE' : return code '0x458'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.

My script for Cygwin is:

export DXSDK_DIR=/cygdrive/c/DXSDK/
export WMSDK_DIR=/cygdrive/c/WMSDK/WMFSDK11/
export QTSDK_DIR=/cygdrive/c/Qt/4.6.0/

export VSINSTALLDIR=/cygdrive/C/MsVS10
export WINDOWS_VS_PATH=/cygdrive/C/MsVS10/VC/bin

export GRADLE_DIR=/cygdrive/c/tools/gradle/

export JDK_HOME=/cygdrive/c/java/8b112/
export JAVA_HOME=$JDK_HOME

export ANT_HOME=/cygdrive/c/ant/

export PATH=$GRADLE_DIR/bin/:$JAVA_HOME/bin/:$DXSDK_DIR/Utilities/Bin/x86:$PATH

$GRADLE_DIR/bin/gradle -PCOMPILE_WEBKIT=true -PCONF=Debug sdk

I'm trying but I can't realize what changed after my last successfull build.

Leonid.


On 11/8/2013 9:10 PM, Stephen F Northover wrote:
Hi Leonid,

I have the same configuration as you I think. I'm just making sure I can build. First, do you have 32-bit JDK8? Are you running under a cygwin shell? What is your gradle command line?

Steve

On 2013-11-08 9:08 AM, Leonid Popov wrote:
Hi,

I've just cloned a new workspace from ssh://jfxsrc.us.oracle.com//javafx/8.0/scrum/graphics/jfx and tried to build it. The following error encountered:

link /LIBPATH:"..\lib" /NOLOGO /MAP /INCREMENTAL:NO /SUBSYSTEM:CONSOLE /MANIFEST /MANIFESTFILE:"obj\DerivedSourcesJava.intermediate.manifest" /OUT:..\lib\DerivedSourcesJava.exe @C:\Users\lp154592\AppData\Local\Temp\nm9A16.tmp
LINK : error LNK2001: unresolved external symbol mainCRTStartup
..\lib\DerivedSourcesJava.exe : fatal error LNK1120: 1 unresolved externals

My box is Windows 7 64-bit with MSVS 10 installed; Gradle 1.4 is used for building.

Any suggestions?

Thanks,
Leonid






Reply via email to