-
Notifications
You must be signed in to change notification settings - Fork 729
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
Use NASM assembler on x86-64 Windows and update NASM set-up process on OSX and xLinux makefiles #3459
Conversation
56cc5f0
to
803109d
Compare
a042a29
to
3524643
Compare
@0xdaryl Ready for review |
Jenkins test sanity all jdk11 |
1 similar comment
Jenkins test sanity all jdk11 |
24bad0e
to
16396a3
Compare
The CI build failures on win64 so far has been due to how When running NASM through Cygwin, it appears as though the full paths enclosed in quotes for the This will not be a problem in NASM version 2.14 and newer, as the The workaround (currently in this PR) that I have been able to come up with supports NASM version 2.14 as well as the previous releases. This involves not enclosing the -I paths in quotes, and using relative paths with a trailing slash from I would still like the transition to NASM v2.14 to happen soon, as it would clean up some hacks that were needed in CMake, but with this approach, we can make the transition smoother as it would work across the 2 versions. Currently, the |
Jenkins test sanity all jdk11 |
16396a3
to
04a83a3
Compare
I don't think requiring NASM 2.14 is unreasonable. The workaround being applies has serve limitations: 1. it is quite common seeing spaces in the path, for example the Desktop folder in Windows 7 is under "Documents and Settings"; 2. search paths of However, if upgrading/installing the required NASM 2.14 cannot make the deadline of a targeted release, I accept this workaround with
|
Spaces can exist in the build path, since the paths being provided with the
Relative |
@nbhuiyan Thank you for clarification. Now I see spaces in the paths to build should be okay. |
* Added NASM_ASSEMBLER platform variable for win64 * Updated toolcfg/common.mk and rules/filetypes.mk to handle NASM Signed-off-by: Nazim Uddin Bhuiyan <[email protected]>
Also, NASM_ASSEMBLER is now defined on win64. Signed-off-by: Nazim Uddin Bhuiyan <[email protected]>
Contains various minor fixes. Also, file paths need to use backslashes on Windows. This is because NASM does not deal with how OS file paths can differ, and simply tries searching for files to include by prepending the include paths provided in the command line to the file to include until it is found. Signed-off-by: Nazim Uddin Bhuiyan <[email protected]>
Specifies NASM v2.13.03 and newer as a requirement for building OpenJ9 on Windows. Signed-off-by: Nazim Uddin Bhuiyan <[email protected]>
04a83a3
to
1e23cff
Compare
NASM build rule use its own variables (such as NASM_OBJ_FORMAT, NASM_INCLUDES, etc) that are set up in toolcfg/gnu/common.mk. This change makes the build process similar to how NASM is set up on Windows. -I paths have been updated to not require specifying part of the directory paths to .inc files to include. Signed-off-by: Nazim Uddin Bhuiyan <[email protected]>
1e23cff
to
b691eac
Compare
Jenkins test sanity all jdk11 |
Signed-off-by: Nazim Uddin Bhuiyan <[email protected]>
Jenkins test sanity all jdk11 |
Jenkins test sanity plinux,aix jdk11 |
Sanity tests have passed, as well as additional stress tests performed within IBM. This PR is also needed to enable #4249. Merging. |
Depends on: #3293 , #3461 , #3493
This PR builds on top of the changeset in #3293 , and contains commits that are specific to x86_64 Linux, and will be rebased once #3293 is merged.
Issue: #3148
Signed-off-by: Nazim Uddin Bhuiyan [email protected]