Just FYI...

these build changes do touch sources in various teams, please let me know if 
you have issues with these changes.

-kto

Begin forwarded message:

> From: "Kelly O'Hair" <kelly.oh...@oracle.com>
> Subject: Need reviewers: more predictable binaries
> Date: September 5, 2012 9:08:53 PM PDT
> To: "build-...@openjdk.java.net build-dev" <build-...@openjdk.java.net>
> 
> 
> Need a reviewer for this change.
> 
>   http://cr.openjdk.java.net/~ohair/openjdk8/jdk8-this-file/webrev/
> 
> It does change source, but it's effectively a build change.
> 
> The goal here is to try and create more predictable binary files and remove 
> the possibility that
> a full source path (via __FILE__) gets baked into the shared libraries or 
> executables shipped.
> 
> So two changes:
>  * sort the .o files during links so they are always provided to the linker 
> in the same order.
>  * replace use of __FILE__ to the macro THIS_FILE with just the basename of 
> the source file being compiled
> 
> The __FILE__ issue is that it has an implementation defined string literal 
> value, depending on the compiler
> and the filename supplied on the compile line. By changing to the new 
> THIS_FILE macro, the object files
> will always have a consistent string literal in them, making it easier to 
> compare binaries between builds.
> Something we have never been able to do in the past. Granted it's just the 
> basename for the file, but should be enough.
> The tricky part is that __FILE__ only gets evaluated when it is used. In 
> normal C code, it will appear in
> macros but it only will get evaluated in the source file being compiled. It 
> is rare that macros using
> __FILE__  will get expanded in include files and I detected this not 
> happening in the jdk source at all.
> 
> -kto

Reply via email to