On Thu, 7 Apr 2022 15:51:30 GMT, Magnus Ihse Bursie <i...@openjdk.org> wrote:

>> Andrew Leonard has updated the pull request incrementally with one 
>> additional commit since the last revision:
>> 
>>   Trigger checks
>
> make/common/NativeCompilation.gmk line 1159:
> 
>> 1157:       ifeq ($(call isTargetOs, linux), true)
>> 1158:         ifeq ($$($1_COMPILE_WITH_DEBUG_SYMBOLS), true)
>> 1159:           $1_LINK_OBJS_RELATIVE := true
> 
> I realize this PR has already been integrated, but I have some questions 
> about this. The comment talk about "ASM" objects (I assume that means output 
> of assembly files), but the code change is not restricted to assembly files. 
> 
> Afaict, this change means that all builds on linux with debug symbols and 
> reproducible builds will use relative paths! This is perhaps the most common 
> compilation scenario, and it would mean that our efforts to keep a CWD 
> neutral command line is basically in vain. :-(
> 
> Or can anyone (@erikj79, @andrew-m-leonard) explain to me why this would not 
> be the case?

@magicus 
So I did think about this, and the alternative I think would be to hard code a 
list of which object files are the output from assembly files, of which there 
is about a dozen. Unless we could capture somehow the list of assembled files 
as we go ...?
As @erikj79 points out this is just for the "linking". As the problem is the 
assembly file objects don't have the equivalent of debug prefix mapping, and so 
when stripped the full file path of the object file ends up in the debuginfo 
file, and results in the libjvm.so non-determinism due to different debug CRC.

-------------

PR: https://git.openjdk.java.net/jdk/pull/8124

Reply via email to