Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8284437

Building from different users/workspace is not always deterministic

XMLWordPrintable

    • b18
    • linux

        When building openjdk from different users or different workspace folders, the jdk binary is not always reproducible/deterministic.

        There are several reasons for this from my investigations:
        - Different build users causes src.zip difference due to optional extended extra zip info containing the UID/GID
        - When debug symbols are generated the full workspace path gets embedded into the stripped debug info, resulting in debug symbol difference, which then causes jdk .so library difference due to the debug info CRC value being different
        - hotspot ADLC library does not currently use the -fmacro-prefix-map option, so __FILE__ macros contain full workspace paths
        - when generating external debug symbols the hotspot MASM files debug info entries contain full workspace paths, I believe because the debug filename mapping options don't apply to MASM
        - gcc symbol random name generation is not deterministically seeded, thus it is not guaranteed to generate the same random symbol names, eg._AFTZ8_GetFileNameMethod

              aleonard Andrew Leonard
              aleonard Andrew Leonard
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: