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

Building from different users/workspace is not always deterministic

    XMLWordPrintable

Details

    • b18
    • linux

    Backports

      Description

        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

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                  Created:
                  Updated:
                  Resolved: