eclipse / omr

Eclipse OMR™ Cross platform components for building reliable, high performance language runtimes
http://www.eclipse.org/omr
Other
934 stars 392 forks source link

Flag changes and minor fixes for Open XL compile #7322

Closed Deigue closed 3 weeks ago

Deigue commented 2 months ago

Some of the remaining compiling issues require some updates to the existing ZOS flags and conditionals in code in order to compile properly using Open XL for z/OS. Tested to ensure that XLC remains compiling properly and passes its tests.

(This is one part of the multiple changes added for supporting Open XL compilation on OMR)

babsingh commented 1 month ago

jenkins build all

babsingh commented 1 month ago

jenkins build all

babsingh commented 1 month ago

@Deigue The zOS PR build has failed to build: https://ci.eclipse.org/omr/job/PullRequest-zos_390-64/4398/. Please investigate the errors.

@AdamBrousseau Other PR builds failed due to machine issues. Are these known infra issues?

Deigue commented 1 month ago

When going to the full log I am seeing:

09:01:59  [ 94%] Building CXX object fvtest/rastest/CMakeFiles/omrsubscribertest.dir/__/__/util/main_function/main_function.cpp.o
09:02:00  [ 94%] Linking CXX executable ../../omrsubscribertest
09:02:00  make[2]: *** No rule to make target 'libomrsig.x', needed by 'omrsigtest'.  Stop.
09:02:00  make[2]: *** Waiting for unfinished jobs....
09:02:00  [ 94%] Building CXX object fvtest/sigtest/CMakeFiles/omrsigtest.dir/__/__/util/main_function/main_function.cpp.o
09:02:01  CMakeFiles/Makefile2:3742: recipe for target 'fvtest/sigtest/CMakeFiles/omrsigtest.dir/all' failed
09:02:01  make[1]: *** [fvtest/sigtest/CMakeFiles/omrsigtest.dir/all] Error 2
09:02:01  make[1]: *** Waiting for unfinished jobs....

Hinting towards the problem perhaps being something related to sigTest.cpp , since the changes there were only the OPEN_THREADS tweak, not sure what is the underlying issue behind the .x file generated. I do see its part of omrsigtest , so might be able to double check and see whats happen by making/running that standalone.

babsingh commented 3 weeks ago

jenkins build all

Deigue commented 3 weeks ago

Need to double check this build with XLC (looping in Open J9 compilation) by building jdk21 zos. as well as trying to compile Open XL with Open J9, to ensure it is reaching as far (as per current progress), since the zos_rename_exports.cmake tweak was only throwing errors during compilation of Open J9 with Open XL.

Deigue commented 3 weeks ago

@babsingh So I had to tweak stuff around a bit to actually get everything to work as expected with Open XL (these changes are used when compiling with Open J9 with jdk21 zos)

I ended up having to change it to the following below:

if(EXISTS ${SRC_FILE} AND NOT "${SRC_FILE}" STREQUAL "${DEST_FILE}")
    file(RENAME "${SRC_FILE}" "${DEST_FILE}")
endif()

# Work around a bug in CMake where it looks for .x files in the runime dir rather than the archive dir.
if(EXISTS ${DEST_FILE} AND NOT "${ARCHIVE_DIR}" STREQUAL "${RUNTIME_DIR}")
    file(COPY "${DEST_FILE}" DESTINATION "${RUNTIME_DIR}")
endif()

Still double-checking the XLC build and will get back to you once it clears up.

babsingh commented 3 weeks ago

jenkins build zos

Deigue commented 3 weeks ago

Doing a full XLC build with only OMR branch pointing to this PR and saw this error, not sure if its related, since I can't see any direct relation yet.

[ 69%] Building CXX object runtime/compiler/CMakeFiles/j9jit.dir/codegen/J9CodeGenerator.cpp.o
openj9/runtime/compiler/runtime/J9CodeCacheManager.hpp", line 59.70: CCN5274 (S) The name lookup for "TR_EnableCodeCacheDisclaiming" did not find a declaration.
CCN0793(I) Compilation failed for file openj9/runtime/compiler/codegen/J9CodeGenerator.cpp.  Object file not created.
make[6]: *** [runtime/compiler/CMakeFiles/j9jit.dir/build.make:270: runtime/compiler/CMakeFiles/j9jit.dir/codegen/J9CodeGenerator.cpp.o] Error 12

edit: Oh I notice its semi-recent (within a week or 2 change), perhaps I need to rebase OMR.

babsingh commented 3 weeks ago

jenkins build all