Hi Baesken, Thank you for making the changes.
Related to the change in universe_init() (universe.cpp), the 'if (DumpSharedSpaces)’ block at line 715 is also CDS only. To be consistent, you might want to include it under #if INCLUDE_CDS as well. --- 695,716 ---- Universe::_loader_addClass_cache = new LatestMethodCache(); Universe::_pd_implies_cache = new LatestMethodCache(); Universe::_throw_illegal_access_error_cache = new LatestMethodCache(); Universe::_do_stack_walk_cache = new LatestMethodCache(); + #if INCLUDE_CDS if (UseSharedSpaces) { // Read the data structures supporting the shared spaces (shared // system dictionary, symbol table, etc.). After that, access to // the file (other than the mapped regions) is no longer needed, and // the file is closed. Closing the file does not affect the // currently mapped regions. MetaspaceShared::initialize_shared_spaces(); StringTable::create_table(); ! } else ! #endif ! { SymbolTable::create_table(); StringTable::create_table(); if (DumpSharedSpaces) { MetaspaceShared::prepare_for_dumping(); In the past we have been trying to avoid adding too many #if in the code for better readability. For the CDS only code in universe.cpp (and a few other files), since the callee functions (e.g. initialize_shared_spaces()) are already defined with two versions (with and without INCLUDE_CDS). The builds without CDS also works fine even #if INCLUDE_CDS are not added. Thanks, Jiangli > On Jul 13, 2017, at 5:18 AM, Baesken, Matthias <matthias.baes...@sap.com> > wrote: > >> Thank you for noticing that. Yes, it would be helpful if you can add the #if >> INCLUDE_CDS for CDS only code. >> I can help you integrate the changes after they are reviewed. > > Thanks for your feedback ! > > I created a bug : > > https://bugs.openjdk.java.net/browse/JDK-8184323 > > > and a webrev : > > http://cr.openjdk.java.net/~mbaesken/webrevs/8184323/ > > > Best regards, Matthias > > > -----Original Message----- > From: Jiangli Zhou [mailto:jiangli.z...@oracle.com] > Sent: Montag, 10. Juli 2017 17:54 > To: Baesken, Matthias <matthias.baes...@sap.com> > Cc: hotspot-...@openjdk.java.net; build-dev@openjdk.java.net > Subject: Re: jdk10 : UseSharedSpaces flag and INCLUDE_CDS macro > > Hi Matthias, > > Thank you for noticing that. Yes, it would be helpful if you can add the #if > INCLUDE_CDS for CDS only code. I can help you integrate the changes after > they are reviewed. > > Thanks! > Jiangli > >> On Jul 5, 2017, at 6:36 AM, Baesken, Matthias <matthias.baes...@sap.com> >> wrote: >> >> Hello, when looking into CDS related build options, I noticed that most >> code-parts that are executed only when UseSharedSpaces is set, >> are guarded by the compile-time macro INCLUDE_CDS to support >> switching off compilation of this coding >> when CDS is disabled at compile time : >> >> >> See hotspot/make/lib/JvmFeatures.gmk : >> >> ifneq ($(call check-jvm-feature, cds), true) >> JVM_CFLAGS_FEATURES += -DINCLUDE_CDS=0 >> >> >> >> However some places miss the compile-time guarding ( #if INCLUDE_CDS ....) >> for example in >> >> >> share/vm/prims/jvmtiRedefineClasses.cpp >> share/vm/memory/universe.cpp >> >> (also some other places) >> >> >> Should I prepare a change and add the compile-time guard at the places where >> missing as well ? >> >> Best regards, Matthias >