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

Cannot read archives with SYM64 symbol table #365

Closed
ehuss opened this issue Aug 26, 2021 · 2 comments · Fixed by #366
Closed

Cannot read archives with SYM64 symbol table #365

ehuss opened this issue Aug 26, 2021 · 2 comments · Fixed by #366
Assignees

Comments

@ehuss
Copy link

ehuss commented Aug 26, 2021

If you build an archive with LLVM that is over 4GB, it writes a /SYM64/ table entry instead of / (see writeSymbolTableHeader). This prevents ArchiveFile from being able to load the names and symbols here. One way this fails is when iterating over the members of the archive, and an archive member's name is too long, it will fail here because the names data is empty.

@philipc
Copy link
Contributor

philipc commented Aug 27, 2021

Let me know how you want this released. I'm not sure if you need this in a patch release of some older object version, or a new release (there's currently unreleased breaking changes), which would mean updating the rest of the ecosystem too (e.g. addr2line and backtrace).

@Mark-Simulacrum
Copy link

@philipc I think for now a 0.26.2 release will be sufficient for the rustc bug itself to be fixed.

I think addr2line and backtrace are both ^0.26 in their currently released versions so just bumping Cargo.lock should be sufficient there?

bors added a commit to rust-lang-ci/rust that referenced this issue Aug 31, 2021
Fix loading large rlibs

Bumps object crate to permit parsing archives with 64-bit table entries. These
are primarily encountered when there's more than 4GB of archive data.

cc gimli-rs/object#365

Helps with rust-lang#88351, but will also need a beta backport

r? `@ehuss` (mostly for the test)
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 a pull request may close this issue.

3 participants