SUGGESTED FIX
The basic idea is to add vendor-specific implementation hooks to globals.hpp,
globals.cpp and globals_extension.hpp. The hooks live in globals_ext.hpp,
of which there are two versions, one in src/share/vm/runtime that's
a null implementation of the hooks, and another in vendor-specific code.
The hooks in globals_ext.hpp look like this.
// globals_extension.hpp extension
// Additional CommandLineFlags enum values
#define COMMANDLINEFLAG_EXT
// Additional CommandLineFlagsWithType enum values
#define COMMANDLINEFLAGWITHTYPE_EXT
// globals.cpp extension
// Additional flag definitions
#define MATERIALIZE_FLAGS_EXT
// Additional flag descriptors: see flagTable definition
#define FLAGTABLE_EXT
// Default method implementations
inline bool Flag::is_unlocker_ext() const {
return false;
}
inline bool Flag::is_unlocked_ext() const {
return true;
}
|