Work to get DDR working on OSX should be made up of the following broad tasks:
Please fill in the issue/pr numbers when they are created, and I can add these to this Epic.
https://github.com/eclipse/openj9/issues/3444 and https://github.com/eclipse/openj9/issues/3366 belong in this epic.
Discussed with @keithc-ca & @mikezhang1234567890 We're going to enable the ddr blob generation on osx so that the blobs will be in cores for the 0.12.0 release. This will allow us to read the 0.12.0 cores when the core reader becomes available as it doesn't need to ship with the release.
ddrgen is having trouble with openj9/runtime/gc_structs/ClassLoaderClassesIterator.hpp:
class GC_ClassLoaderClassesIterator
{
enum { TABLE_CLASSES, SYSTEM_CLASSES, ANONYMOUS_CLASSES } _mode;
// ...
};
That header file is included in multiple compilation units and the linker uses a single definition of the enum for the _mode field, but repeats the enum type declaration in j9gc29.dylib as if the source were (this illegal) code:
class GC_ClassLoaderClassesIterator
{
enum { TABLE_CLASSES, SYSTEM_CLASSES, ANONYMOUS_CLASSES } _mode;
enum { TABLE_CLASSES, SYSTEM_CLASSES, ANONYMOUS_CLASSES };
// ...
};
If I manually remove the resulting duplicate constants from superset.dat, building the JDK can proceed and succeed. Hopefully only a small fix is required to ddrgen.
A huge thank you to @mikezhang1234567890 and @keithc-ca for bringing DDR up on OSX! This will greatly simplify debugging on OSX!
Congrats on landing this major feature.
Most helpful comment
A huge thank you to @mikezhang1234567890 and @keithc-ca for bringing DDR up on OSX! This will greatly simplify debugging on OSX!
Congrats on landing this major feature.