Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Produce the *_gnu import libraries more deterministically #1967

Merged
merged 2 commits into from Aug 22, 2022

Conversation

glandium
Copy link
Contributor

This addresses item 3 in #1964.

Dlltool unfortunately doesn't default to a deterministic output like
e.g. ar, and doesn't have a flag to enable it. Ar's MRI mode also
doesn't rewrite timestamps from the libraries it merges so the best
we can do as a workaround is to use objcopy, which does rewrite
timestamps, but touches nothing else.

Ironically, running objcopy for each intermedia library adds less
overhead than once at the end.
For some reason, the import libraries currently in the repository don't
match what running the tool_gnu command produces, due to the use of
different prefixes. This adjusts the command to produce the same
prefixes as the ones currently in the import libraries from the
repository.
@kennykerr
Copy link
Collaborator

This addresses item 3 in #1964.

Thanks for the fix! Sorry to be a stickler, but could you open a new issue for this PR? It's not clear to me what "item 3" refers to.

@riverar is this related to the consistent application of full file names in the win32 metadata that you've been working on?

@riverar
Copy link
Collaborator

riverar commented Aug 22, 2022

This PR stabilizes dlltool temporary file output (which, by default, uses the process ID in its naming scheme) for reproducible build purposes. Isn't related to our suffix issue.

@kennykerr kennykerr merged commit 53bc4d7 into microsoft:master Aug 22, 2022
@glandium glandium deleted the gnu_determinism branch August 22, 2022 22:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants