This seems to have gone unnoticed. lib/librte_power/version.map specifies rte_power_guest_channel_send_msg both under DPDK_21 and EXPERIMENTAL.
This is causing the clang cross-compile job to always fail with the error Aaron provided: ld.lld: error: duplicate symbol 'rte_power_guest_channel_send_msg' in version script Only the clang cross compile jobs are failing. This could be due to them using the LLVM linker (ld.lld) and the other clang jobs using the default linker. I have two questions about this: 1. Is this a real failure? 2. If this is a real failure, should we also use ld.lld in the other clang jobs? Thanks, Juraj > -----Original Message----- > From: dev <dev-boun...@dpdk.org> On Behalf Of Aaron Conole > Sent: Monday, February 15, 2021 8:18 PM > To: dev@dpdk.org > Cc: Bruce Richardson <bruce.richard...@intel.com>; David Hunt > <david.h...@intel.com>; Anatoly Burakov <anatoly.bura...@intel.com> > Subject: [dpdk-dev] Build errors due to duplicate version.map entries in > librte_power > > Greetings, > > During CI runs, I've noticed lots of failures from the Travis-CI side all > related to > librte_power/version.map containing some duplicate symbols. It seems commit > 4d3892dcd77b ("power: make channel message functions public") made the > following hunk: > > diff --git a/lib/librte_power/version.map b/lib/librte_power/version.map index > 69ca9af616..13f0af3b2d 100644 > --- a/lib/librte_power/version.map > +++ b/lib/librte_power/version.map > @@ -34,4 +34,8 @@ EXPERIMENTAL { > rte_power_guest_channel_receive_msg; > rte_power_poll_stat_fetch; > rte_power_poll_stat_update; > + > + # added in 21.02 > + rte_power_guest_channel_receive_msg; > + rte_power_guest_channel_send_msg; > }; > > > As can be seen, rte_power_guest_channel_receive_msg was added already (it's > present in the hunk itself). The rte_power_guest_channel_send_msg function > was added as part of 85ff364f3bd3 ("build: align symbols with global ABI > version"). > > I guess it may not be allowed to have duplicate symbols here, because in > travis, I > see (only for some builds): > > clang -o lib/librte_power.so.21.1 > 'lib/lib@@rte_power@sta/librte_power_rte_power.c.o' > 'lib/lib@@rte_power@sta/librte_power_power_acpi_cpufreq.c.o' > 'lib/lib@@rte_power@sta/librte_power_power_kvm_vm.c.o' > 'lib/lib@@rte_power@sta/librte_power_guest_channel.c.o' > 'lib/lib@@rte_power@sta/librte_power_rte_power_empty_poll.c.o' > 'lib/lib@@rte_power@sta/librte_power_power_pstate_cpufreq.c.o' > 'lib/lib@@rte_power@sta/librte_power_rte_power_pmd_mgmt.c.o' > 'lib/lib@@rte_power@sta/librte_power_power_common.c.o' -Wl,--no- > undefined -Wl,--as-needed -shared -fPIC -Wl,--start-group -Wl,- > soname,librte_power.so.21 -Wl,--no-as-needed -pthread -lm -ldl > lib/librte_eal.so.21.1 lib/librte_kvargs.so.21.1 lib/librte_telemetry.so.21.1 > lib/librte_timer.so.21.1 lib/librte_ethdev.so.21.1 lib/librte_net.so.21.1 > lib/librte_mbuf.so.21.1 lib/librte_mempool.so.21.1 lib/librte_ring.so.21.1 > lib/librte_meter.so.21.1 -Wl,--end-group -Wl,--version- > script=/home/travis/build/ovsrobot/dpdk/lib/librte_power/version.map '-Wl,- > rpath,$ORIGIN/' -Wl,-rpath-link,/home/travis/build/ovsrobot/dpdk/build/lib - > target aarch64-linux-gnu -fuse-ld=lld --gcc-toolchain=/usr > > ld.lld: error: duplicate symbol 'rte_power_guest_channel_send_msg' in version > script > > Thoughts? >