Skip to content

public_key: Compile ASN.1 modules serially for reproducible output - #11396

Open
bmwiedemann wants to merge 1 commit into
erlang:masterfrom
bmwiedemann:reproducibleasn1
Open

public_key: Compile ASN.1 modules serially for reproducible output#11396
bmwiedemann wants to merge 1 commit into
erlang:masterfrom
bmwiedemann:reproducibleasn1

Conversation

@bmwiedemann

Copy link
Copy Markdown
Contributor

The ASN.1 compiler names anonymous parameterized-type/object-set arguments internal_object_set_argument_N using a global counter. How many instantiations run while checking a module depends on whether the checked .asn1db files of its imports already exist. The RFC 5912 modules import each other cyclically and the Makefile has no inter-module dependencies, so under make -jN the .asn1db availability is a race and atoms like getenc_internal_object_set_argument_2 vs _1 differ between builds. Serialize this directory to get a fixed order.

Helps with issue #4417

This patch was done while working on reproducible builds for openSUSE.

The ASN.1 compiler names anonymous parameterized-type/object-set
arguments internal_object_set_argument_N using a global counter. How
many instantiations run while checking a module depends on whether the
checked .asn1db files of its imports already exist. The RFC 5912
modules import each other cyclically and the Makefile has no
inter-module dependencies, so under make -jN the .asn1db availability
is a race and atoms like getenc_internal_object_set_argument_2 vs _1
differ between builds. Serialize this directory to get a fixed order.

Helps with issue erlang#4417

This patch was done while working on reproducible builds for openSUSE.
@github-actions

github-actions Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

CT Test Results

  2 files   18 suites   4m 5s ⏱️
313 tests 305 ✅ 8 💤 0 ❌
330 runs  322 ✅ 8 💤 0 ❌

Results for commit 521670a.

♻️ This comment has been updated with latest results.

To speed up review, make sure that you have read Contributing to Erlang/OTP and that all checks pass.

See the TESTING and DEVELOPMENT HowTo guides for details about how to run test locally.

Artifacts

// Erlang/OTP Github Action Bot

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

team:PS Assigned to OTP team PS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants