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]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to