Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/85037/?format=api
https://patches.dpdk.org/api/patches/85037/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/patch/20201212233447.23154-4-dmitry.kozliuk@gmail.com/", "project": { "id": 1, "url": "https://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": "<20201212233447.23154-4-dmitry.kozliuk@gmail.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20201212233447.23154-4-dmitry.kozliuk@gmail.com", "date": "2020-12-12T23:34:46", "name": "[3/4] buildtools: support object file extraction for Windows", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": true, "hash": "2002cdd13d9254578da1d519b33eeb3234e9c8a8", "submitter": { "id": 1581, "url": "https://patches.dpdk.org/api/people/1581/?format=api", "name": "Dmitry Kozlyuk", "email": "dmitry.kozliuk@gmail.com" }, "delegate": { "id": 1, "url": "https://patches.dpdk.org/api/users/1/?format=api", "username": "tmonjalo", "first_name": "Thomas", "last_name": "Monjalon", "email": "thomas@monjalon.net" }, "mbox": "https://patches.dpdk.org/project/dpdk/patch/20201212233447.23154-4-dmitry.kozliuk@gmail.com/mbox/", "series": [ { "id": 14274, "url": "https://patches.dpdk.org/api/series/14274/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=14274", "date": "2020-12-12T23:34:43", "name": "pmdinfogen: support Windows", "version": 1, "mbox": "https://patches.dpdk.org/series/14274/mbox/" } ], "comments": "https://patches.dpdk.org/api/patches/85037/comments/", "check": "success", "checks": "https://patches.dpdk.org/api/patches/85037/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 6E796A0524;\n\tSun, 13 Dec 2020 00:35:54 +0100 (CET)", "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 5B484C996;\n\tSun, 13 Dec 2020 00:35:04 +0100 (CET)", "from mail-lf1-f44.google.com (mail-lf1-f44.google.com\n [209.85.167.44]) by dpdk.org (Postfix) with ESMTP id 4B6B1C970\n for <dev@dpdk.org>; Sun, 13 Dec 2020 00:35:01 +0100 (CET)", "by mail-lf1-f44.google.com with SMTP id o17so17994698lfg.4\n for <dev@dpdk.org>; Sat, 12 Dec 2020 15:35:01 -0800 (PST)", "from localhost.localdomain (broadband-37-110-65-23.ip.moscow.rt.ru.\n [37.110.65.23])\n by smtp.gmail.com with ESMTPSA id b22sm1517930lfp.233.2020.12.12.15.34.58\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Sat, 12 Dec 2020 15:34:59 -0800 (PST)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n h=from:to:cc:subject:date:message-id:in-reply-to:references\n :mime-version:content-transfer-encoding;\n bh=PjsvFvoABiYseZIi32qiAhKd2MgNiqsJjiNS1U6BBv0=;\n b=F8Et0GVouFH8ZyqtWiOXU8ehToMqHG/sJvoZ4OYtiDRl7Ijd1QT3OI8KQtRjnkMItF\n bXa3aPbjgq7mPrzI3PgC9v409xJ6rHDh31JqG5kdzLept5PDh9O4Tjr9bU6vAHjoGA50\n ARn5pknoNeaVE6JgIkMkecm1qcWy+Z37HwYejdC+XI+8WY2o/eSz9q90FoFuEurI/Kh7\n 59zEMK8PR1e1mSXzG86QYSDckpdnVQkCiNcqoiM4eUAwvjnZ5IrWO0H/DcISuk7RbECu\n 7g7JhePvejx5QPT/EVMjbw/mAVf1FbNErQ/XPVMzlh/EWwaxtB+7VILAKfUCyVpxhgCQ\n D/CA==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20161025;\n h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n :references:mime-version:content-transfer-encoding;\n bh=PjsvFvoABiYseZIi32qiAhKd2MgNiqsJjiNS1U6BBv0=;\n b=LEOyXxiWfDJyEM/WDDs2xelFkGPA5tQBhHfp2GNJghlFa9taielSE61zzGnKQsysT9\n 0iX0j9jSTAPuO0BgqRxHgelkPzuNiEPBhmSluEQBecxunTzpu2wUCdUvC9eYYPHnj5JA\n atK3oV9A7cVIqU7OcUffiAZ2AGm2HG5U8hbNjU3dc2Qro7cWY+Krv/gl9TUmiUcpzf2V\n ylqSJUk+bNR5iNB0I5er9KSR/ez37/xXVxzFZC+KZK5/CPltUKWReX/yV4ZwpC+fx/fP\n vtnKyHByEAxZxErKm9wtkyOVVl5gnE6TU5xTKpFQYw9nwM8045Sruwvkx8DY/f7zlqJm\n rwKw==", "X-Gm-Message-State": "AOAM533apIwtUg5k04tLYpoyEwHlL2/HzfkeTpZ9ni6NUiPrCDM5pjsd\n rA/rvZwcOaPEIe0jbiiZ1SJP9hipC0jQ0YCR", "X-Google-Smtp-Source": "\n ABdhPJzGKwzSoMQo5/8UOmncIeatenuPsQbDetFfppNRcFY2GpuBJRlqi1G2pzY2bvqTV823GPqeJQ==", "X-Received": "by 2002:a19:54c:: with SMTP id 73mr7162196lff.551.1607816099561;\n Sat, 12 Dec 2020 15:34:59 -0800 (PST)", "From": "Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>", "To": "dev@dpdk.org", "Cc": "Narcisa Ana Maria Vasile <navasile@linux.microsoft.com>,\n Pallavi Kadam <pallavi.kadam@intel.com>,\n Dmitry Malloy <dmitrym@microsoft.com>,\n Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>,\n Bruce Richardson <bruce.richardson@intel.com>,\n Neil Horman <nhorman@tuxdriver.com>", "Date": "Sun, 13 Dec 2020 02:34:46 +0300", "Message-Id": "<20201212233447.23154-4-dmitry.kozliuk@gmail.com>", "X-Mailer": "git-send-email 2.29.2", "In-Reply-To": "<20201212233447.23154-1-dmitry.kozliuk@gmail.com>", "References": "<20201212233447.23154-1-dmitry.kozliuk@gmail.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[dpdk-dev] [PATCH 3/4] buildtools: support object file extraction\n\tfor Windows", "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 <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 <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "clang archiver tool is llvm-ar on Windows and ar on other platforms.\nMinGW always uses ar. Replace shell script (Unix-only) that calls ar\nwith a Python script (OS-independent) that calls an appropriate archiver\ntool selected at configuration time. Move the logic not to generate\nempty sources into pmdinfogen.\n\nSigned-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>\n---\nStdin and stdout are not longer used for input and output. Code to\nhandle that could be removed, but maybe it's useful for someone.\n\n buildtools/gen-pmdinfo-cfile.py | 19 +++++++++++++++++++\n buildtools/gen-pmdinfo-cfile.sh | 14 --------------\n buildtools/meson.build | 10 ++++++++--\n buildtools/pmdinfogen.py | 7 +++++++\n 4 files changed, 34 insertions(+), 16 deletions(-)\n create mode 100644 buildtools/gen-pmdinfo-cfile.py\n delete mode 100755 buildtools/gen-pmdinfo-cfile.sh", "diff": "diff --git a/buildtools/gen-pmdinfo-cfile.py b/buildtools/gen-pmdinfo-cfile.py\nnew file mode 100644\nindex 000000000..f1f289ffe\n--- /dev/null\n+++ b/buildtools/gen-pmdinfo-cfile.py\n@@ -0,0 +1,19 @@\n+#!/usr/bin/env python3\n+# SPDX-License-Identifier: BSD-3-Clause\n+# Copyright (c) 2020 Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>\n+\n+import os\n+import subprocess\n+import sys\n+import tempfile\n+\n+_, ar, archive, output, *pmdinfogen = sys.argv\n+with tempfile.TemporaryDirectory() as temp:\n+ proc = subprocess.run(\n+ # Don't use \"ar p\", because its output is corrupted on Windows.\n+ [ar, \"xv\", os.path.abspath(archive)], capture_output=True, check=True, cwd=temp\n+ )\n+ lines = proc.stdout.decode().splitlines()\n+ names = [line[len(\"x - \") :] for line in lines]\n+ paths = [os.path.join(temp, name) for name in names]\n+ subprocess.run(pmdinfogen + paths + [output], check=True)\ndiff --git a/buildtools/gen-pmdinfo-cfile.sh b/buildtools/gen-pmdinfo-cfile.sh\ndeleted file mode 100755\nindex 109ee461e..000000000\n--- a/buildtools/gen-pmdinfo-cfile.sh\n+++ /dev/null\n@@ -1,14 +0,0 @@\n-#! /bin/sh\n-# SPDX-License-Identifier: BSD-3-Clause\n-# Copyright(c) 2017 Intel Corporation\n-\n-arfile=$1\n-output=$2\n-shift 2\n-pmdinfogen=$*\n-\n-# The generated file must not be empty if compiled in pedantic mode\n-echo 'static __attribute__((unused)) const char *generator = \"'$0'\";' > $output\n-for ofile in `ar t $arfile` ; do\n-\tar p $arfile $ofile | $pmdinfogen - - >> $output\n-done\ndiff --git a/buildtools/meson.build b/buildtools/meson.build\nindex 23cefd4be..0a2e91a7b 100644\n--- a/buildtools/meson.build\n+++ b/buildtools/meson.build\n@@ -2,7 +2,6 @@\n # Copyright(c) 2017-2019 Intel Corporation\n \n pkgconf = find_program('pkg-config', 'pkgconf', required: false)\n-pmdinfo = find_program('gen-pmdinfo-cfile.sh')\n list_dir_globs = find_program('list-dir-globs.py')\n check_symbols = find_program('check-symbols.sh')\n ldflags_ibverbs_static = find_program('options-ibverbs-static.sh')\n@@ -18,11 +17,18 @@ endif\n map_to_win_cmd = py3 + files('map_to_win.py')\n sphinx_wrapper = py3 + files('call-sphinx-build.py')\n \n-# select object file format\n+# select library and object file format\n+pmdinfo = py3 + files('gen-pmdinfo-cfile.py')\n pmdinfogen = py3 + files('pmdinfogen.py')\n if host_machine.system() == 'windows'\n+\tif cc.get_id() == 'gcc'\n+\t\tpmdinfo += 'ar'\n+\telse\n+\t\tpmdinfo += 'llvm-ar'\n+\tendif\n \tpmdinfogen += 'coff'\n else\n+\tpmdinfo += 'ar'\n \tpmdinfogen += 'elf'\n endif\n \ndiff --git a/buildtools/pmdinfogen.py b/buildtools/pmdinfogen.py\nindex 3209510eb..56f5f488c 100755\n--- a/buildtools/pmdinfogen.py\n+++ b/buildtools/pmdinfogen.py\n@@ -230,12 +230,19 @@ def open_output(path):\n return open(path, \"w\")\n \n \n+def write_header(output):\n+ output.write(\n+ \"static __attribute__((unused)) const char *generator = \\\"%s\\\";\\n\" % sys.argv[0]\n+ )\n+\n+\n def main():\n args = parse_args()\n if args.input.count('-') > 1:\n raise Exception(\"'-' input cannot be used multiple times\")\n \n output = open_output(args.output)\n+ write_header(output)\n for path in args.input:\n image = load_image(args.format, path)\n drivers = load_drivers(image)\n", "prefixes": [ "3/4" ] }{ "id": 85037, "url": "