RFR: JDK-8198862 Stop doing funky compilation stuff for dtrace

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


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.


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 hotspot-dev mailing list