RFR: 8284661: Reproducible assembly builds without relative linking
Andrew Leonard
aleonard at openjdk.java.net
Mon Apr 11 15:18:41 UTC 2022
On Mon, 11 Apr 2022 14:50:37 GMT, Andrew Leonard <aleonard at openjdk.org> wrote:
>> Non-determinism in .debuginfo straight away makes .so libraries non-deterministic due to the embedded debuginfo CRC value.
>> @erikj79 i'll try removing .debuginfo from the exceptions and try it...
>
>> @andrew-m-leonard This change leaves the pathmap options intact, right? Because `clang` leaves absolute path names in the debug info regardless of what's in `.file`.
>
> @mkartashev yes, that was in the already merged PR : https://github.com/openjdk/jdk/commit/4451257b1432e4180a16757aafca6141b8063772
>
> So clang / MacOS needs deeper investigation, the AbsPathInImage test currently also excludes .dSYM folder.
> Hi @andrew-m-leonard, I am currently working on moving SafeFetch to static assembly:
>
> #7865
>
> Would your change affect that, especially the ability to export inner-function labels as jump-back-points?
hi @tstuefe Thomas, this is only requiring .file directives in linux .S files, which will mean your PR will require the line:
.file ASSEMBLY_SRC_FILE
assuming they don't already have a .file...
but I don't think it should affect anything else you're doing.
This is for reproducible builds, and every platform has it's own issues with respect to this. In this particular Linux case, the linker embeds it's own .file symbol if one isn't present using the .o object path name.
Other platforms will have there own quirks we need to fix
>
> Also, riscv, ppcle and s390 are missing, why not do it on all platforms?
Which .S files am I missing for these flavors of Linux?
-------------
PR: https://git.openjdk.java.net/jdk/pull/8177
More information about the build-dev
mailing list