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