-
Bug
-
Resolution: Fixed
-
P4
-
17, 19, 20
-
b03
-
os_x
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8292032 | 17.0.5 | Andrew Leonard | P4 | Resolved | Fixed | b02 |
When reproducible builds is enabled for MacOS clang compilation, the
debug symbol information contains the full build directory paths, making the
builds non-deterministic when built in different folders.
eg.
DW_AT_name ("/Users/jenkins/workspace/build-scripts/jobs/jdk/jdk-mac-aarch64-temurin/workspace/build/src/src/java.base/unix/native/libnio/ch/DatagramDispatcher.c")
DW_AT_comp_dir ("/Users/jenkins/workspace/build-scripts/jobs/jdk/jdk-mac-aarch64-temurin/workspace/build/src/make")
When ENABLE_REPRODUCIBLE_BUILD is enabled and
ALLOW_ABSOLUTE_PATHS_IN_OUTPUT is false the debug symbol paths
should be mapped using --fdebug-prefix-map, just like for gcc.
Assembly file symbol paths should also be relative.
Also the random seeded compiler generated symbol names are not deterministically seeded,
thus leading to potential non-determinism for these entries:
DW_AT_linkage_name ("_ZN16AbstractCompiler19should_perform_initEv")
debug symbol information contains the full build directory paths, making the
builds non-deterministic when built in different folders.
eg.
DW_AT_name ("/Users/jenkins/workspace/build-scripts/jobs/jdk/jdk-mac-aarch64-temurin/workspace/build/src/src/java.base/unix/native/libnio/ch/DatagramDispatcher.c")
DW_AT_comp_dir ("/Users/jenkins/workspace/build-scripts/jobs/jdk/jdk-mac-aarch64-temurin/workspace/build/src/make")
When ENABLE_REPRODUCIBLE_BUILD is enabled and
ALLOW_ABSOLUTE_PATHS_IN_OUTPUT is false the debug symbol paths
should be mapped using --fdebug-prefix-map, just like for gcc.
Assembly file symbol paths should also be relative.
Also the random seeded compiler generated symbol names are not deterministically seeded,
thus leading to potential non-determinism for these entries:
DW_AT_linkage_name ("_ZN16AbstractCompiler19should_perform_initEv")
- backported by
-
JDK-8292032 MacOS debug symbol files not always deterministic in reproducible builds
- Resolved