10 Commits

Author SHA1 Message Date
Trevor Gross
531d5aa593 symcheck: Skip __ymm@ symbols on Windows
Like `__real@`, and `__xmm@`, Windows can emit duplicate `__ymm@`
symbols for constants.
2025-08-09 15:47:10 -05:00
Trevor Gross
ab0def2739 symcheck: Ignore symbols in .debug_gdb_scripts
Since [1], our object files may now contain a GDB script section. These
symbols wind up with multiple instances in the archive but are weak, so
we can safely ignore them in our duplicates check.

This resolves the current CI failures.

[1]: https://github.com/rust-lang/rust/pull/143679
2025-08-07 03:32:37 -05:00
Trevor Gross
decdb950bf symcheck: Store the section name in SymInfo if available
Currently `SymInfo` stores a `Section`, which is just an index:

    SymInfo {
        section: Section(
            SectionIndex(
                539,
            ),
        ),
        ...
    },

Look up and store the section name instead if possible, with a fallback
to the `Section` debug printing. This makes output more clear and will
allow us to filter by section name.
2025-08-07 03:32:34 -05:00
Trevor Gross
95c42630eb symcheck: Switch the object dependency from git to crates.io
Wasm support has since been released, so we no longer need to depend on
a git version of `object`.
2025-07-24 03:29:05 -05:00
Trevor Gross
84060f608b symcheck: Improve diagnostics from spawned Cargo
Rather than printing the entire JSON dump, use the rendered version.
2025-07-04 18:18:31 -05:00
Trevor Gross
e164811f5d symcheck: Make target a positional argument
This makes it more obvious what we intend to check rather than looking
for `--target`.
2025-07-04 17:44:54 -05:00
Trevor Gross
9f4670fd2b symcheck: Add a wrapper around an archive
Rather than re-opening the archive file for each check, add a wrapper
that keeps the data in memory. Additionally, collect the `--target`
argument so it can be used within this crate.
2025-06-14 23:47:58 +00:00
Trevor Gross
af16553893 symcheck: Print the command to make reproducing errors easier 2025-05-29 16:12:33 +00:00
Trevor Gross
8db9bd6a59 Remove the now-unneeded llvm-tools-preview
Since a working `nm` is no longer needed as part of CI, the rustup
component can be removed.
2025-05-29 15:38:10 +00:00
Trevor Gross
a63f4826cf Replace the nm symbol check with a Rust implementation
This should be less error-prone and adaptable than the `nm` version, and
have better cross-platform support without needing LLVM `nm` installed.
2025-05-29 15:38:10 +00:00