RFR: JDK-8198862 Stop doing funky compilation stuff for dtrace
Magnus Ihse Bursie
magnus.ihse.bursie at oracle.com
Fri Mar 2 12:45:16 UTC 2018
On 2018-03-02 12:10, Magnus Ihse Bursie wrote:
> On 2018-03-02 03:01, David Holmes wrote:
>> Hi Magnus,
>> On 1/03/2018 10:48 AM, Magnus Ihse Bursie wrote:
>>> We're doing a lot of weird compilation stuff for dtrace. With this
>>> patch, most of the weirdness is removed. The remaining calls to
>>> $(CC) -E has been changed to $(CPP) to clarify that we do not
>>> compile, we just use the precompiler.
>>> One of the changes I made was to actually split up the last and
>>> final dtrace call into a separate preprocessing step. However, this
>>> uses the solaris studio preprocessor instead of the ancient system
>>> preprocessor, which has changed behavior. A string like (&``_var) is
>>> now expanded to (& ` ` _var), which is not accepted by dtrace. :-( I
>>> have worked around this by adding the preprocessed output, without
>>> the spaces, in two places. If anyone wants to dig deeper into dtrace
>>> script file syntax, or C preprocessor magic, to avoid this, let me
>>> know... (I'll just state that the "obvious" solution of sending -Xs
>>> to the preprocessor to get old-style behavior does not work: this
>>> just makes the solaris studio preprocessor call the ancient
>>> preprocessor in turn, and we've gained nothing...)
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8198862
>> Why did you rename generateJvmOffsetsMain.c to
>> generateJvmOffsetsMain.cpp? It isn't a C++ program, it's just a C
> Yes, but so are generateJvmOffsets.cpp. :-& There was no point in
> mixing a .cpp and .c file for this trivial build tool helper. In fact,
> I don't even understand why they are two separate files -- if I get
> the blessings from someone in hotspot, I'll gladly just concatenate
> them into a single file.
Come to think about it, I don't care about the hotspot group's blessing.
;-) I just moved the main function into the generateJvmOffsets.cpp file.
It was just silly having it as a separate file.
>> ! # Since we cannot generated JvmOffsets.cpp as part of the
>> gensrc step,
>> Comment doesn't read right.
> Typo, should be "generate". I'll fix.
I also restored the extra ( ) in ExecuteWithLog with redirection, and
added an additional ( ) for one case that was previously missing one.
Finally I also added the changes to dtrace that Erik requested for
JDK-8198859, but which was already pushed by that time.
More information about the hotspot-dev