Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/61864/?format=api
http://patches.dpdk.org/api/patches/61864/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/patch/e0540173b939f3e007ce6d8901bea078bf6b1487.1571910363.git.anatoly.burakov@intel.com/", "project": { "id": 1, "url": "http://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<e0540173b939f3e007ce6d8901bea078bf6b1487.1571910363.git.anatoly.burakov@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dev/e0540173b939f3e007ce6d8901bea078bf6b1487.1571910363.git.anatoly.burakov@intel.com", "date": "2019-10-24T09:46:47", "name": "[v5,10/10] buildtools: add ABI versioning check script", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": true, "hash": "b1eebb473bbd1c5897833629e840539fda8f1c3f", "submitter": { "id": 4, "url": "http://patches.dpdk.org/api/people/4/?format=api", "name": "Anatoly Burakov", "email": "anatoly.burakov@intel.com" }, "delegate": { "id": 1, "url": "http://patches.dpdk.org/api/users/1/?format=api", "username": "tmonjalo", "first_name": "Thomas", "last_name": "Monjalon", "email": "thomas@monjalon.net" }, "mbox": "http://patches.dpdk.org/project/dpdk/patch/e0540173b939f3e007ce6d8901bea078bf6b1487.1571910363.git.anatoly.burakov@intel.com/mbox/", "series": [ { "id": 7035, "url": "http://patches.dpdk.org/api/series/7035/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=7035", "date": "2019-10-24T09:46:37", "name": "Implement the new ABI policy and add helper scripts", "version": 5, "mbox": "http://patches.dpdk.org/series/7035/mbox/" } ], "comments": "http://patches.dpdk.org/api/patches/61864/comments/", "check": "success", "checks": "http://patches.dpdk.org/api/patches/61864/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@dpdk.org", "Delivered-To": "patchwork@dpdk.org", "Received": [ "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id F3C6B1E951;\n\tThu, 24 Oct 2019 11:47:32 +0200 (CEST)", "from mga03.intel.com (mga03.intel.com [134.134.136.65])\n\tby dpdk.org (Postfix) with ESMTP id 95EA01E915\n\tfor <dev@dpdk.org>; Thu, 24 Oct 2019 11:47:31 +0200 (CEST)", "from fmsmga007.fm.intel.com ([10.253.24.52])\n\tby orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t24 Oct 2019 02:47:30 -0700", "from silpixa00399498.ir.intel.com (HELO\n\tsilpixa00399498.ger.corp.intel.com) ([10.237.223.151])\n\tby fmsmga007.fm.intel.com with ESMTP; 24 Oct 2019 02:47:28 -0700" ], "X-Amp-Result": "SKIPPED(no attachment in message)", "X-Amp-File-Uploaded": "False", "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"5.68,224,1569308400\"; d=\"scan'208\";a=\"197686644\"", "From": "Anatoly Burakov <anatoly.burakov@intel.com>", "To": "dev@dpdk.org", "Cc": "Marcin Baran <marcinx.baran@intel.com>, john.mcnamara@intel.com,\n\tray.kinsella@intel.com, bruce.richardson@intel.com, thomas@monjalon.net, \n\tdavid.marchand@redhat.com, Pawel Modrak <pawelx.modrak@intel.com>", "Date": "Thu, 24 Oct 2019 10:46:47 +0100", "Message-Id": "<e0540173b939f3e007ce6d8901bea078bf6b1487.1571910363.git.anatoly.burakov@intel.com>", "X-Mailer": "git-send-email 2.17.1", "In-Reply-To": [ "<cover.1571910363.git.anatoly.burakov@intel.com>", "<cover.1571910363.git.anatoly.burakov@intel.com>" ], "References": [ "<cover.1571910363.git.anatoly.burakov@intel.com>", "<cover.1571322634.git.anatoly.burakov@intel.com>\n\t<cover.1571910363.git.anatoly.burakov@intel.com>" ], "Subject": "[dpdk-dev] [PATCH v5 10/10] buildtools: add ABI versioning check\n\tscript", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "From: Marcin Baran <marcinx.baran@intel.com>\n\nAdd a shell script that checks whether built libraries are\nversioned with expected ABI (current ABI, current ABI + 1,\nor EXPERIMENTAL).\n\nThe following command was used to verify current source tree\n(assuming build directory is in ./build):\n\nfind ./build/lib ./build/drivers -name \\*.so \\\n\t-exec ./buildtools/check-abi-version.sh {} \\; -print\n\nSigned-off-by: Marcin Baran <marcinx.baran@intel.com>\nSigned-off-by: Pawel Modrak <pawelx.modrak@intel.com>\nSigned-off-by: Anatoly Burakov <anatoly.burakov@intel.com>\nAcked-by: Bruce Richardson <bruce.richardson@intel.com>\n---\n\nNotes:\n v2:\n - Moved this to the end of the patchset\n - Fixed bug when ABI symbols were not found because the .so\n did not declare any public symbols\n\n buildtools/check-abi-version.sh | 54 +++++++++++++++++++++++++++++++++\n 1 file changed, 54 insertions(+)\n create mode 100755 buildtools/check-abi-version.sh", "diff": "diff --git a/buildtools/check-abi-version.sh b/buildtools/check-abi-version.sh\nnew file mode 100755\nindex 0000000000..29aea97735\n--- /dev/null\n+++ b/buildtools/check-abi-version.sh\n@@ -0,0 +1,54 @@\n+#!/bin/sh\n+# SPDX-License-Identifier: BSD-3-Clause\n+# Copyright(c) 2019 Intel Corporation\n+\n+# Check whether library symbols have correct\n+# version (provided ABI number or provided ABI\n+# number + 1 or EXPERIMENTAL).\n+# Args:\n+# $1: path of the library .so file\n+# $2: ABI major version number to check\n+# (defaults to ABI_VERSION file value)\n+\n+if [ -z \"$1\" ]; then\n+ echo \"Script checks whether library symbols have\"\n+ echo \"correct version (ABI_VER/ABI_VER+1/EXPERIMENTAL)\"\n+ echo \"Usage:\"\n+ echo \" $0 SO_FILE_PATH [ABI_VER]\"\n+ exit 1\n+fi\n+\n+LIB=\"$1\"\n+DEFAULT_ABI=$(cat \"$(dirname \\\n+ $(readlink -f $0))/../config/ABI_VERSION\" | \\\n+ cut -d'.' -f 1)\n+ABIVER=\"DPDK_${2-$DEFAULT_ABI}\"\n+NEXT_ABIVER=\"DPDK_$((${2-$DEFAULT_ABI}+1))\"\n+\n+ret=0\n+\n+# get output of objdump\n+OBJ_DUMP_OUTPUT=`objdump -TC --section=.text ${LIB} 2>&1 | grep \".text\"`\n+\n+# there may not be any .text sections in the .so file, in which case exit early\n+echo \"${OBJ_DUMP_OUTPUT}\" | grep \"not found in any input file\" -q\n+if [ \"$?\" -eq 0 ]; then\n+ exit 0\n+fi\n+\n+# we have symbols, so let's see if the versions are correct\n+for SYM in `echo \"${OBJ_DUMP_OUTPUT}\" | awk '{print $(NF-1) \"-\" $NF}'`\n+do\n+ version=$(echo $SYM | cut -d'-' -f 1)\n+ symbol=$(echo $SYM | cut -d'-' -f 2)\n+ case $version in (*\"$ABIVER\"*|*\"$NEXT_ABIVER\"*|\"EXPERIMENTAL\")\n+ ;;\n+ (*)\n+ echo \"Warning: symbol $symbol ($version) should be annotated \" \\\n+ \"as ABI version $ABIVER / $NEXT_ABIVER, or EXPERIMENTAL.\"\n+ ret=1\n+ ;;\n+ esac\n+done\n+\n+exit $ret\n", "prefixes": [ "v5", "10/10" ] }{ "id": 61864, "url": "