Skip to content

Commit 8cbff4b

Browse files
committed
Add support for mixed references mode in CMake builds
In mixed references static mode, split the omr gc library into omrgc and omrgc_full so that the appropriate library can be used. Only set OMR_OVERRIDE_COMPRESS_OBJECT_REFERENCES in mixed references static mode. Signed-off-by: Sharon Wang <[email protected]>
1 parent 61a4993 commit 8cbff4b

File tree

5 files changed

+285
-84
lines changed

5 files changed

+285
-84
lines changed

cmake/config.cmake

+9
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ set(OMR_TOOLS_USE_NATIVE_ENCODING ON CACHE BOOL
105105
###
106106

107107
set(OMR_GC_LIB "omrgc" CACHE STRING "Name of the GC library to use")
108+
set(OMR_GC_FULL_LIB "omrgc_full" CACHE STRING "Name of the Full References GC library to use for Mixed References Mode")
108109
set(OMR_HOOK_LIB "j9hookstatic" CACHE STRING "Name of the hook library to link against")
109110
set(OMR_PORT_LIB "omrport" CACHE STRING "Name of the port library to link against")
110111
set(OMR_THREAD_LIB "j9thrstatic" CACHE STRING "Name of the thread library to link against")
@@ -115,6 +116,7 @@ set(OMR_TRACE_LIB "omrtrace" CACHE STRING "Name of the trace library to link aga
115116
###
116117

117118
set(OMR_GC_GLUE_TARGET "NOTFOUND" CACHE STRING "The gc glue target, must be interface library")
119+
set(OMR_GC_GLUE_FULL_TARGET "NOTFOUND" CACHE STRING "The gc glue full target, must be interface library")
118120
set(OMR_UTIL_GLUE_TARGET "NOTFOUND" CACHE STRING "The util glue target, must be interface library")
119121
set(OMR_RAS_GLUE_TARGET "NOTFOUND" CACHE STRING "The ras glue target, must be interface library")
120122
set(OMR_CORE_GLUE_TARGET "NOTFOUND" CACHE STRING "The core glue target, must be and interface library")
@@ -161,14 +163,21 @@ set_property(CACHE OMR_GC_POINTER_MODE PROPERTY STRINGS "full" "compressed" "mix
161163
if(OMR_GC_POINTER_MODE STREQUAL "full")
162164
set(OMR_GC_COMPRESSED_POINTERS OFF CACHE INTERNAL "")
163165
set(OMR_GC_FULL_POINTERS ON CACHE INTERNAL "")
166+
set(OMR_MIXED_REFERENCES_MODE_STATIC OFF CACHE INTERNAL "")
164167
elseif(OMR_GC_POINTER_MODE STREQUAL "compressed")
165168
omr_assert(FATAL_ERROR TEST NOT OMR_ENV_DATA32 MESSAGE "OMR_GC_POINTER_MODE must be \"full\" on 32 bit platforms")
166169
set(OMR_GC_COMPRESSED_POINTERS ON CACHE INTERNAL "")
167170
set(OMR_GC_FULL_POINTERS OFF CACHE INTERNAL "")
171+
set(OMR_MIXED_REFERENCES_MODE_STATIC OFF CACHE INTERNAL "")
168172
elseif(OMR_GC_POINTER_MODE STREQUAL "mixed")
169173
omr_assert(FATAL_ERROR TEST NOT OMR_ENV_DATA32 MESSAGE "OMR_GC_POINTER_MODE must be \"full\" on 32 bit platforms")
170174
set(OMR_GC_COMPRESSED_POINTERS ON CACHE INTERNAL "")
171175
set(OMR_GC_FULL_POINTERS ON CACHE INTERNAL "")
176+
if(OMR_MIXED_REFERENCES_MODE STREQUAL "static")
177+
set(OMR_MIXED_REFERENCES_MODE_STATIC ON CACHE INTERNAL "")
178+
else()
179+
set(OMR_MIXED_REFERENCES_MODE_STATIC OFF CACHE INTERNAL "")
180+
endif()
172181
else()
173182
message(FATAL_ERROR "OMR_GC_FULL_POINTERS must be set to one of \"full\", \"compressed\", or \"mixed\"")
174183
endif()

0 commit comments

Comments
 (0)