Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create Win32 release builds of openjdk8+openj9 #342

Closed
ChengJin01 opened this issue May 23, 2018 · 17 comments
Closed

Create Win32 release builds of openjdk8+openj9 #342

ChengJin01 opened this issue May 23, 2018 · 17 comments
Labels
new builds Issues that request for new jenkins pipeline builds windows Issues that affect or relate to the WINDOWS OS
Milestone

Comments

@ChengJin01
Copy link

Given that we already provided support on JDK8 32bit + OpenJ9 at https://github.com/eclipse/openj9/blob/master/buildenv/Build_Instructions_V8.md#windows, we'd like to get the JDK8 builds (Windows 32bit) built and tested at AdoptOpenJDK for the next OpenJ9 release.

@DanHeidinga
Copy link

@ChengJin01 Was there additional machine configuration required to build the 32 bit JDK? Can you highlight any differences here?

@ChengJin01
Copy link
Author

ChengJin01 commented May 23, 2018

Here's a few steps that need to be set up correctly on 32bit:

  1. Enure the freetype version supports win 32-bit application (e.g. freetype-2.4.7 which includes required files at the win32 directory)

  2. To build the Freetype dynamic and static libraries, open the Visual Studio Command Prompt (VS2010) (see C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Visual Studio 2010\Visual Studio Tools) and run:

cd c:\temp
msbuild.exe C:/temp/freetype/builds/win32/vc2010/freetype.vcxproj /p:PlatformToolset=v100 /p:Configuration="Release Multithreaded" /p:PlatformTarget=x86 /p:ConfigurationType=DynamicLibrary /p:TargetName=freetype /p:OutDir="C:/temp/freetype/lib32/" /p:IntDir="C:/temp/freetype/obj32/" > freetype.log
msbuild.exe C:/temp/freetype/builds/win32/vc2010/freetype.vcxproj /p:PlatformToolset=v100 /p:Configuration="Release Multithreaded" /p:PlatformTarget=x86 /p:ConfigurationType=StaticLibrary /p:TargetName=freetype /p:OutDir="C:/temp/freetype/lib32/" /p:IntDir="C:/temp/freetype/obj32/" >> freetype.log

  1. Ensure the parameters for x86/32bit is correctly configured as follows:

bash configure --disable-ccache
--with-boot-jdk=/cygdrive/c/temp/jdk7
--with-freemarker-jar=/cygdrive/c/temp/freemarker.jar
--with-freetype-include=/cygdrive/c/temp/freetype/include
--with-freetype-lib=/cygdrive/c/temp/freetype/lib32
--target=x86 --with-target-bits=32

@sxa sxa added new builds Issues that request for new jenkins pipeline builds windows Issues that affect or relate to the WINDOWS OS labels May 23, 2018
@sxa
Copy link
Member

sxa commented May 24, 2018

build-softlayer-win2012r2-x64-1 has been tagged with x86-32 to allow me to prototype changes.

In addition to the freetype 32-bit compilation (I've used 2.5.3 as that was the one already on the machine)

I've also had to execute:

regsvr32 "C:\Program Files (x86)\Microsoft Visual Studio 10.0\DIA SDK\bin\msdia100.dll"

@ChengJin01
Copy link
Author

ChengJin01 commented May 24, 2018

Given that all issues with freeType were fixed, the remaining configuration should be fine with --target=x86 --with-target-bits=32 before compilation (we already made changes at Eclipse/OpenJ9 to get this mk/config scripts work).

@sxa
Copy link
Member

sxa commented May 24, 2018

@gdams
Copy link
Member

gdams commented May 24, 2018

FYI you'll need to modify the release job here https://github.com/AdoptOpenJDK/openjdk-website-backend/blob/master/sbin/Release.sh#L48

@ChengJin01
Copy link
Author

.../OpenJDK8_x64_Windows_201824051125/jdk8u172-b11
$ jre/bin/java -version
openjdk version "1.8.0_172-adoptopenjdk"
OpenJDK Runtime Environment (build 1.8.0_172-adoptopenjdk-_2018_05_24_11_28-b00)
Eclipse OpenJ9 VM (build master-44d1a2e9, JRE 1.8.0 Windows 7 x86-32-Bit 20180524_4 (JIT enabled, AOT enabled)
OpenJ9 - 44d1a2e9
OMR - a8771355
JCL - 556b4d29 based on jdk8u172-b11)

It looks good from the version output. Just the package name seems incorrect: "OpenJDK8_x64_Windows_201824051125".
it should be e.g. OpenJDK8_x86_Windows_201824051125 or OpenJDK8_x86-32_Windows_201824051125

@sxa
Copy link
Member

sxa commented May 24, 2018

@ChengJin01
Copy link
Author

ChengJin01 commented May 25, 2018

_sanity.functional_jdk8u172-b11_openjdk8_openj9_build_x86-32_windows.txt

I ran sanity tests from functional/Java8andUp locally with the build created at https://ci.adoptopenjdk.net/view/work%20in%20progress/job/openjdk8_openj9_build_x86-32_windows/ (via Cygwin on a Win 7 Pro 64-bit OS) and all tested buckets passed except one which doesn't exist as follows:

TOTAL: 38 EXECUTED: 28 PASSED: 27 FAILED: 1 SKIPPED: 10
(the only failing buckets is AttachAPISanity_SE80_0 which doesn't exist)

So, it seems the build functionally works good as expected.

@sxa
Copy link
Member

sxa commented May 25, 2018

I have also verified that the builds work on a purely 32-bit OS (Well, they get a far as running java -version correctly :-)

@ChengJin01
Copy link
Author

@smlambert @llxia , is there any other test we are able to run to verify the 32-bit build created at https://ci.adoptopenjdk.net/view/work%20in%20progress/job/openjdk8_openj9_build_x86-32_windows/ (not manually run) ?

@llxia
Copy link
Contributor

llxia commented May 25, 2018

No, I think that is the only one we have so far. @sophia-guo is working on wins builds. She maybe able to tweak something for you, but we do not have one ready to use. As far as I know, the win machine configuration is not finalized. AdoptOpenJDK and OpenJ9 wins machines are configured differently.

@ChengJin01
Copy link
Author

ChengJin01 commented May 28, 2018

https://ci.adoptopenjdk.net/view/all/job/Grinder/39/consoleFull
regression_sanity_tests.txt

20:36:08 Test results: passed: 308; failed: 14
20:41:30 Test results: passed: 417; failed: 13
20:43:00 Test results: passed: 34
20:46:55 Test results: passed: 382; failed: 29; error: 1
20:54:14 Test results: passed: 315; failed: 10
21:07:22 Test results: passed: 574; failed: 27
21:17:11 Test results: passed: 123; failed: 10

21:17:33 +++++++++++++++++++++++++++
21:17:33 PASSED test targets:
21:17:33 	jdk_math_0
21:17:33 
21:17:33 FAILED test targets:
21:17:33 	jdk_io_0
21:17:33 	jdk_lang_0
21:17:33 	jdk_net_0
21:17:33 	jdk_nio_0
21:17:33 	jdk_util_0
21:17:33 	jdk_rmi_0
21:17:33 
21:17:33 TOTAL: 7   EXECUTED: 7   PASSED: 1   FAILED: 6   SKIPPED: 0

@sophia-guo already helped to run the regression (sanity) tests at ci.adoptopenjdk.net with the created build above. It seems most of failing teat cases required Cygwin be there to get executed (currently not run via Cygwin & no support on Cygwin temporarily).

The remaing failing cases were io/http/rmi related:

20:35:31 TEST RESULT: Failed. Execution failed: `main' threw exception: java.lang.Exception: Failed test: Should skip 164, really skipped 160lines (openjdk_regression\openjdk-jdk\jdk\test\java\io)
20:43:47 TEST RESULT: Failed. Execution failed: `main' threw exception: java.lang.RuntimeException: wrong amount of data returned (openjdk_regression\work\classes\X\com\sun\net\httpserver)
20:43:50 TEST RESULT: Failed. Execution failed: `main' threw exception: java.lang.RuntimeException: wrong amount of data returned (openjdk_regression\work\classes\X\com\sun\net\httpserver)
20:44:30 TEST RESULT: Failed. Execution failed: `main' threw exception: java.lang.RuntimeException: error (openjdk_regression\work\classes\X\com\sun\net\httpserver)
20:44:35 TEST RESULT: Failed. Execution failed: `main' threw exception: java.lang.RuntimeException: error (openjdk_regression\work\classes\X\com\sun\net\httpserver)
20:45:25 TEST RESULT: Failed. Execution failed: `main' threw exception: java.lang.RuntimeException: test failed (openjdk_regression\openjdk-jdk\jdk\test\java\net)
21:11:52 TEST RESULT: Failed. Execution failed: `main' threw exception: java.lang.RuntimeException: TEST FAILED: export on already-bound port succeeded (openjdk_regression\work\classes\2\java\rmi\server\RemoteServer)

@ChengJin01
Copy link
Author

ChengJin01 commented May 29, 2018

Already confirmed with @smlambert, part of openjdk_regression, system and functional tests will be executed on the created build on a weekly basis and might go daily, depending on how much spare windows machines are available for tests.

@ChengJin01
Copy link
Author

The Win 32-bit has been added to the openjdk8_openj9 nightly build pipelines via #355

@smlambert
Copy link
Contributor

Yes, though based on the build failure mentioned above, tonights run will fail, and not trigger any testing. Once the build issue is corrected and build jobs complete successfully, a subset of ~2900 openjdk regression tests will be triggered against them (we can triage those, and later decide if we should add system tests to the set or not).

@smlambert
Copy link
Contributor

openjdk8-openj9 Win32 nightly builds are now being published to the website, this can now be closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new builds Issues that request for new jenkins pipeline builds windows Issues that affect or relate to the WINDOWS OS
Projects
None yet
Development

No branches or pull requests

7 participants