RFR: JDK-8198862 Stop doing funky compilation stuff for dtrace (original) (raw)

Erik Joelsson erik.joelsson at oracle.com
Thu Mar 1 22:50:03 UTC 2018


Hello,

I don't think you can remove the extra ( ) around the preprocessor commands. I added those to avoid race conditions in JDK-8158629. My conclusion then was that any command that redirected stdout needed to be wrapped in ().

Otherwise this looks ok.

/Erik

On 2018-02-28 16:48, 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 WebRev: http://cr.openjdk.java.net/~ihse/JDK-8198862-stop-doing-funky-dtrace-compilation-stuff/webrev.01 /Magnus



More information about the build-dev mailing list