Skip to content

Wild exports symbols to dynsym that should remain local after visibility merging #1693

@PritamP20

Description

@PritamP20

Wild exports symbols to dynsym that should remain local after visibility merging.

When a symbol has mixed visibility definitions, the final merged visibility should be enforced before export filtering. Right now Wild doesn't seem to apply the merged visibility correctly, so some symbols still end up exported.

Expected behavior
After merging, the most restrictive visibility should win:

hidden > protected > default

dynsym export should follow this final visibility, so symbols that resolve to hidden or protected should not be exported.

but Wild still exports some symbols that should be local.

From the test results:

  • Wild dynsym: data1, data4, data5 appear as exports
  • BFD dynsym: data1, data4, data5 remain local

I’d like to work on this if it’s okay

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions