Skip to content

Fix armcc symbols always being hidden#364

Merged
encounter merged 1 commit into
encounter:mainfrom
Darxoon:main
Jul 10, 2026
Merged

Fix armcc symbols always being hidden#364
encounter merged 1 commit into
encounter:mainfrom
Darxoon:main

Conversation

@Darxoon

@Darxoon Darxoon commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

For some reason armcc always marks global symbols as hidden (referred to as Linkage by the object library) which makes objdiff never display any non-static functions unless the "Show hidden symbols" option is enabled, which is an undesirable workaround because that always adds a lot of noise symbols.

This fixes it by never hiding any global symbols in ARM ELF objects. I don't know if this causes any collateral damage in non-armcc ecosystems but armcc only ever marks actual function symbols as global so it works.

@HaydnTrigg

HaydnTrigg commented Jun 13, 2026

Copy link
Copy Markdown
Contributor

This “fix” feels fairly hacky. The issue doesn’t occur when compiling with Clang or GCC, so it seems specific to this configuration. In my view, this behavior should be gated behind an explicit flag on the units in objdiff.json, allowing projects that need to target Armcc to opt in, while leaving the default behavior unchanged for other architectures.

@Darxoon

Darxoon commented Jun 19, 2026

Copy link
Copy Markdown
Contributor Author

Not sure why you are putting fix in quotes but yeah it's hacky, making it an opt in setting sounds like a good solution

@encounter

Copy link
Copy Markdown
Owner

I agree it's not ideal but I'm okay with this for now.

@encounter encounter merged commit 0fe4fad into encounter:main Jul 10, 2026
23 checks passed
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.

3 participants