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

David Holmes david.holmes at oracle.com
Fri Mar 2 02:01:50 UTC 2018


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
> WebRev: 
> http://cr.openjdk.java.net/~ihse/JDK-8198862-stop-doing-funky-dtrace-compilation-stuff/webrev.01 

Why did you rename generateJvmOffsetsMain.c to 
generateJvmOffsetsMain.cpp? It isn't a C++ program, it's just a C program.

I agree the logic is quite confusing. I think this build logic was 
victim of the CPP_FLAGS (meaning C preprocessor) to CXX_FLAGS (meaning 
C++ flags) renaming. But this is a trivial C program and should require 
trivial C compiler flags. I don't see it should be being built with all 
the JVM_CFLAGS. The latter may be harmless but it seems wrong to lump 
this in together with other things.

make/hotspot/lib/CompileDtracePreJvm.gmk

!     # Since we cannot generated JvmOffsets.cpp as part of the gensrc step,

Comment doesn't read right.

Thanks,
David

> 
> /Magnus
> 



More information about the build-dev mailing list