Hi all,

Thank you to Jeff Shaw, Florin Coras, and Benoit Ganne for today's constructive 
discussion.

The consensus during the VPP Community call was to move forward now with the 
libvnet hidden-visibility series, with hidden visibility enabled by default.

To provide a simple compatibility fallback, the series now introduces the 
VPP_LIBVNET_HIDDEN_VISIBILITY CMake option. It is enabled by default. Setting 
it to OFF restores the current behavior, where all non-static libvnet symbols 
are exported regardless of __clib_export:

  make build VPP_EXTRA_CMAKE_ARGS=-DVPP_LIBVNET_HIDDEN_VISIBILITY=OFF

The series has been rebased onto the latest master and is ready for review:

- Build support for target-scoped hidden visibility:
  https://gerrit.fd.io/r/c/vpp/+/46571

- Removal of the packet trace weak-symbol interposition:
  https://gerrit.fd.io/r/c/vpp/+/46572

- Hidden visibility for libvnet, explicit exports, export checker,
  documentation, and compatibility option:
  https://gerrit.fd.io/r/c/vpp/+/46573

The default and compatibility modes have both been validated on ARM. In hidden 
mode, libvnet exports 1,063 of 5,516 symbols and satisfies all 963 requirements 
from in-tree consumers.

Runtime validation also covered all 106 built in-tree plugin binaries without 
any libvnet symbol-resolution errors. Of these, 105 loaded together in a stable 
VPP instance. The fateshare plugin also passed dynamic loading before 
encountering a separate initialization crash unrelated to libvnet symbol 
visibility.

All three changes are now out of WIP and ready for review.

Best regards,
Jerome
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#27174): https://lists.fd.io/g/vpp-dev/message/27174
Mute This Topic: https://lists.fd.io/mt/121148069/21656
Group Owner: [email protected]
Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/14379924/21656/631435203/xyzzy 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to