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