On 2/3/26 11:48 AM, Ilya Maximets wrote: > On 2/3/26 11:07 AM, David Marchand wrote: >> On Tue, 3 Feb 2026 at 10:56, Ilya Maximets <[email protected]> wrote: >>> >>> The library is purely internal and linked into the main libopenvswitch >>> during the build. It should not be marked for installation. Moving >>> it from 'lib' to 'noinst', so 'make install' doesn't install it to the >>> system. With that we also don't need to exclude it from the RPM files. >>> >>> Fixes: 352b6c7116cd ("dpif-lookup: add avx512 gather implementation.") >>> Fixes: 9ecaa5cb71b6 ("rhel: openvswitch-fedora.spec.in: Fix installed but >>> not packaged.") >>> Signed-off-by: Ilya Maximets <[email protected]> >> >> Won't it break linking against libopenvswitch.a if the avx512 lib >> dependency is not shipped too? >> >> On a AVX512 system: >> $ nm build/lib/.libs/libopenvswitch.a | grep U.*avx512 >> U dpcls_subtable_avx512_gather_probe__ >> U dp_netdev_input_outer_avx512 >> U mfex_avx512_dot1q_ip_tcp >> U mfex_avx512_dot1q_ip_udp >> U mfex_avx512_dot1q_ipv6_tcp >> U mfex_avx512_dot1q_ipv6_udp >> U mfex_avx512_ip_nvgre >> U mfex_avx512_ip_tcp >> U mfex_avx512_ip_udp >> U mfex_avx512_ipv6_tcp >> U mfex_avx512_ipv6_udp >> U mfex_avx512_vbmi_dot1q_ip_tcp >> U mfex_avx512_vbmi_dot1q_ip_udp >> U mfex_avx512_vbmi_dot1q_ipv6_tcp >> U mfex_avx512_vbmi_dot1q_ipv6_udp >> U mfex_avx512_vbmi_ip_nvgre >> U mfex_avx512_vbmi_ip_tcp >> U mfex_avx512_vbmi_ip_udp >> U mfex_avx512_vbmi_ipv6_tcp >> U mfex_avx512_vbmi_ipv6_udp >> U action_avx512_init > Need to re-check if this actually works with static libraries, I didn't try. > But the library archive itself contains multiple object files and while > these symbols are undefined in one, they are defined in the other: > > # ar t lib/.libs/libopenvswitch.a | grep avx512 > libopenvswitchavx512_la-dpif-netdev-avx512.o > libopenvswitchavx512_la-dpif-netdev-extract-avx512.o > libopenvswitchavx512_la-dpif-netdev-lookup-avx512-gather.o > libopenvswitchavx512_la-odp-execute-avx512.o > > # nm -A lib/.libs/libopenvswitch.a | grep mfex_avx512_ip_udp > lib/.libs/libopenvswitch.a:dpif-netdev-private-extract.o: U > mfex_avx512_ip_udp > lib/.libs/libopenvswitch.a:libopenvswitchavx512_la-dpif-netdev-extract-avx512.o:00000000000002b0 > T mfex_avx512_ip_udp
In the build log it looks like libtool extracts the avx512 archive and then re-packs the content into libopenvswitch.a: libtool: link: (cd lib/.libs/libopenvswitch.lax/libopenvswitchavx512.a && ar x "/root/ovs/lib/.libs/libopenvswitchavx512.a") libtool: link: ar cru lib/.libs/libopenvswitch.a lib/aes128.o lib/backtrace.o ... lib/ovsdb-server-idl.o lib/vswitch-idl.o lib/.libs/libopenvswitch.lax/libopenvswitchavx512.a/libopenvswitchavx512_la-dpif-netdev-avx512.o lib/.libs/libopenvswitch.lax/libopenvswitchavx512.a/libopenvswitchavx512_la-dpif-netdev-extract-avx512.o lib/.libs/libopenvswitch.lax/libopenvswitchavx512.a/libopenvswitchavx512_la-dpif-netdev-lookup-avx512-gather.o lib/.libs/libopenvswitch.lax/libopenvswitchavx512.a/libopenvswitchavx512_la-odp-execute-avx512.o So, we should be good. Best regards, Ilya Maximets. _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
