Thread (3 messages) 3 messages, 2 authors, 2021-02-22

Re: [dpdk-dev] Build errors due to duplicate version.map entries in librte_power

From: Juraj Linkeš <hidden>
Date: 2021-02-22 10:31:22

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
quoted hunk ↗ jump to hunk
-----Original Message-----
From: dev <redacted> On Behalf Of Aaron Conole
Sent: Monday, February 15, 2021 8:18 PM
To: dev@dpdk.org
Cc: Bruce Richardson <redacted>; David Hunt
[off-list ref]; Anatoly Burakov [off-list ref]
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?
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help