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
Wild exports symbols to
dynsymthat 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:
dynsymexport should follow this final visibility, so symbols that resolve tohiddenorprotectedshould not be exported.but Wild still exports some symbols that should be local.
From the test results:
data1,data4,data5appear as exportsdata1,data4,data5remain localI’d like to work on this if it’s okay