From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id B1097A034F; Mon, 22 Feb 2021 20:50:27 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9AFA140FDF; Mon, 22 Feb 2021 20:50:27 +0100 (CET) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mails.dpdk.org (Postfix) with ESMTP id 224334003C for ; Mon, 22 Feb 2021 20:50:26 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1614023425; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=HMe18onrGYyhGhy56sh091cAmjA4NllL340vimd7dk0=; b=d8kTkNSCFDpnvxnD2RBQvIDp3pOoKe0hHkOm4FQUJwpqR0IN9fL3WSggUXp5CH31SOWgqI EFZ1gYE45HhH4DABWHzsv/SD/0c7jQnoHUguuuYV9nTyzY/Q8kj2y29HSHKsUly3ea0OWv e8VJK4RD0E+uMStUrWbXc4/jkXb7p3c= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-165-ZBiWkymNOseKLI_2oTfk3w-1; Mon, 22 Feb 2021 14:50:21 -0500 X-MC-Unique: ZBiWkymNOseKLI_2oTfk3w-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 22A88107ACE6; Mon, 22 Feb 2021 19:50:20 +0000 (UTC) Received: from dhcp-25.97.bos.redhat.com (ovpn-114-166.rdu2.redhat.com [10.10.114.166]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 48B762BFED; Mon, 22 Feb 2021 19:50:19 +0000 (UTC) From: Aaron Conole To: Juraj =?utf-8?Q?Linke=C5=A1?= Cc: "dev\@dpdk.org" , Bruce Richardson , David Hunt , Anatoly Burakov References: Date: Mon, 22 Feb 2021 14:50:18 -0500 In-Reply-To: ("Juraj \=\?utf-8\?Q\?Linke\=C5\=A1\=22's\?\= message of "Mon, 22 Feb 2021 10:31:15 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=aconole@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [dpdk-dev] Build errors due to duplicate version.map entries in librte_power X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Juraj Linke=C5=A1 writes: > 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 ver= sion 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. The LLVM linker might not support all the same symbol versioning - but ALSO I don't find what we're doing particularly correct - at least according to: https://www.akkadia.org/drepper/dsohowto.pdf There doesn't seem to be any case where we would have the symbol appear in multiple versions without using an alias in the code. And if the symbol is changed in an incompatible way, then we've really done the wrong thing. > I have two questions about this: > 1. Is this a real failure? Maybe. I think we probably wrote a bad version.map, but I don't know the history of these symbols. David? Anything? > 2. If this is a real failure, should we also use ld.lld in the other clan= g jobs? We need to know if this is also an area where the LLVM linker doesn't support the same featureset as GNU. > Thanks, > Juraj > >> -----Original Message----- >> From: dev On Behalf Of Aaron Conole >> Sent: Monday, February 15, 2021 8:18 PM >> To: dev@dpdk.org >> Cc: Bruce Richardson ; David Hunt >> ; Anatoly Burakov >> Subject: [dpdk-dev] Build errors due to duplicate version.map entries in >> librte_power >>=20 >> Greetings, >>=20 >> During CI runs, I've noticed lots of failures from the Travis-CI side al= l related to >> librte_power/version.map containing some duplicate symbols. It seems co= mmit >> 4d3892dcd77b ("power: make channel message functions public") made the >> following hunk: >>=20 >> 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; >> }; >>=20 >>=20 >> As can be seen, rte_power_guest_channel_receive_msg was added already (i= t's >> present in the hunk itself). The rte_power_guest_channel_send_msg funct= ion >> was added as part of 85ff364f3bd3 ("build: align symbols with global ABI >> version"). >>=20 >> I guess it may not be allowed to have duplicate symbols here, because in= travis, I >> see (only for some builds): >>=20 >> 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=3D/home/travis/build/ovsrobot/dpdk/lib/librte_power/version.map '= -Wl,- >> rpath,$ORIGIN/' -Wl,-rpath-link,/home/travis/build/ovsrobot/dpdk/build/l= ib - >> target aarch64-linux-gnu -fuse-ld=3Dlld --gcc-toolchain=3D/usr >>=20 >> ld.lld: error: duplicate symbol 'rte_power_guest_channel_send_msg' in ve= rsion >> script >>=20 >> Thoughts? >>=20