From patchwork Fri Apr 5 08:17:47 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 52321 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id F00101B484; Fri, 5 Apr 2019 10:17:57 +0200 (CEST) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id DDE191B483; Fri, 5 Apr 2019 10:17:56 +0200 (CEST) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 1AC8330832C3; Fri, 5 Apr 2019 08:17:56 +0000 (UTC) Received: from dmarchan.remote.csb (ovpn-204-129.brq.redhat.com [10.40.204.129]) by smtp.corp.redhat.com (Postfix) with ESMTP id 631F15B681; Fri, 5 Apr 2019 08:17:53 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: thomas@monjalon.net, nhorman@tuxdriver.com, stable@dpdk.org Date: Fri, 5 Apr 2019 10:17:47 +0200 Message-Id: <1554452267-24444-1-git-send-email-david.marchand@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.44]); Fri, 05 Apr 2019 08:17:56 +0000 (UTC) Subject: [dpdk-dev] [PATCH] devtools: accept experimental symbol promotion X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" Currently, when symbols get promoted from the EXPERIMENTAL section to a stable ABI section, the script complains they should go to the EXPERIMENTAL section. Example: ERROR: symbol rte_devargs_add is added in the DPDK_19.05 section, but is expected to be added in the EXPERIMENTAL section of the version map This is legit. Moving from a stable ABI to another is also allowed, but must have gone through the proper process. Fixes: 4bec48184e33 ("devtools: add checks for ABI symbol addition") Cc: stable@dpdk.org Signed-off-by: David Marchand Acked-by: Neil Horman --- devtools/check-symbol-change.sh | 44 +++++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/devtools/check-symbol-change.sh b/devtools/check-symbol-change.sh index 020da7e..40eb953 100755 --- a/devtools/check-symbol-change.sh +++ b/devtools/check-symbol-change.sh @@ -105,27 +105,37 @@ check_for_rule_violations() continue fi - if [ "$secname" != "EXPERIMENTAL" ] + oldsecname=$(sed -n \ + "s#$mname $symname \(.*\) del#\1#p" "$mapdb") + + # A symbol can not enter a non experimental + # section directly + if [ $? -ne 0 ] && [ "$secname" != 'EXPERIMENTAL' ] then - # Symbols that are getting added in a section - # other than the experimental section - # to be moving from an already supported - # section or its a violation - grep -q \ - "$mname $symname [^EXPERIMENTAL] del" "$mapdb" - if [ $? -ne 0 ] - then - echo -n "ERROR: symbol $symname " - echo -n "is added in the $secname " - echo -n "section, but is expected to " - echo -n "be added in the EXPERIMENTAL " - echo "section of the version map" - ret=1 - fi + echo -n "ERROR: symbol $symname " + echo -n "is added in the $secname " + echo -n "section, but is expected to " + echo -n "be added in the EXPERIMENTAL " + echo "section of the version map" + ret=1 + continue + fi + + # This symbol is moving between two sections (the + # original section is not experimental). + # This can be legit, just warn. + if [ "$oldsecname" != 'EXPERIMENTAL' ] + then + echo -n "INFO: symbol $symname is being " + echo -n "moved from $oldsecname to $secname. " + echo -n "Ensure that it has gone through the " + echo "deprecation process" + continue fi else - if [ "$secname" != "EXPERIMENTAL" ] + if ! grep -q "$mname $symname .* add" "$mapdb" && \ + [ "$secname" != "EXPERIMENTAL" ] then # Just inform users that non-experimenal # symbols need to go through a deprecation