Hi all, I have posted an RFC/WIP series implementing hidden visibility for libvnet:
- https://gerrit.fd.io/r/c/vpp/+/46571 build: add target-scoped hidden visibility support for libraries - https://gerrit.fd.io/r/c/vpp/+/46572 vlib: remove the packet trace filter weak-symbol interposition - https://gerrit.fd.io/r/c/vpp/+/46573 vnet: enable hidden visibility, add explicit function and data exports, and check the exports required by in-tree consumers The export check passes with Clang and GCC on x86 and with Clang on a BlueField-3. An x86 runtime check also loaded all 104 configured plugins without symbol resolution errors. The current arm64 hidden build has 1,017 dynamic definitions and 939 JUMP_SLOT relocations. I have not yet run a performance A/B/A on this exact hidden-visibility implementation, so I am not deriving a speedup from those relocation counts. The initial export set covers all in-tree consumers, including data symbols. Out-of-tree plugins may identify additional required exports; I would treat those in the same way as other VPP API changes and add the justified symbols as they are found. Does this look like a direction people are comfortable with? Unless anyone objects, I will continue refining the series based on review and run the direct ARM A/B/A on the hidden implementation. Best, Jerome
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#27147): https://lists.fd.io/g/vpp-dev/message/27147 Mute This Topic: https://lists.fd.io/mt/120410674/21656 Group Owner: [email protected] Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/14379924/21656/631435203/xyzzy [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
