get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/83800/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 83800,
    "url": "http://patches.dpdk.org/api/patches/83800/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1604649795-27476-8-git-send-email-juraj.linkes@pantheon.tech/",
    "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": "<1604649795-27476-8-git-send-email-juraj.linkes@pantheon.tech>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1604649795-27476-8-git-send-email-juraj.linkes@pantheon.tech",
    "date": "2020-11-06T08:03:08",
    "name": "[v8,07/14] build: isolate configuration for generic build",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "0ba60c0d1003aee00396ab90effab15053c2881e",
    "submitter": {
        "id": 1626,
        "url": "http://patches.dpdk.org/api/people/1626/?format=api",
        "name": "Juraj Linkeš",
        "email": "juraj.linkes@pantheon.tech"
    },
    "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/1604649795-27476-8-git-send-email-juraj.linkes@pantheon.tech/mbox/",
    "series": [
        {
            "id": 13717,
            "url": "http://patches.dpdk.org/api/series/13717/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=13717",
            "date": "2020-11-06T08:03:01",
            "name": "Arm build options rework",
            "version": 8,
            "mbox": "http://patches.dpdk.org/series/13717/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/83800/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/83800/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 568CEA0524;\n\tFri,  6 Nov 2020 09:05:34 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 155FD5AB3;\n\tFri,  6 Nov 2020 09:03:35 +0100 (CET)",
            "from lb.pantheon.sk (lb.pantheon.sk [46.229.239.20])\n by dpdk.org (Postfix) with ESMTP id 224745937\n for <dev@dpdk.org>; Fri,  6 Nov 2020 09:03:31 +0100 (CET)",
            "from localhost (localhost [127.0.0.1])\n by lb.pantheon.sk (Postfix) with ESMTP id BE9E4B6B66;\n Fri,  6 Nov 2020 09:03:27 +0100 (CET)",
            "from lb.pantheon.sk ([127.0.0.1])\n by localhost (lb.pantheon.sk [127.0.0.1]) (amavisd-new, port 10024)\n with ESMTP id RyFGRDI5ysqQ; Fri,  6 Nov 2020 09:03:26 +0100 (CET)",
            "from service-node1.lab.pantheon.local (unknown [46.229.239.141])\n by lb.pantheon.sk (Postfix) with ESMTP id 795AFB6B65;\n Fri,  6 Nov 2020 09:03:23 +0100 (CET)"
        ],
        "X-Virus-Scanned": "amavisd-new at siecit.sk",
        "From": "=?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech>",
        "To": "bruce.richardson@intel.com, Ruifeng.Wang@arm.com,\n Honnappa.Nagarahalli@arm.com, Phil.Yang@arm.com, vcchunga@amazon.com,\n Dharmik.Thakkar@arm.com, jerinjacobk@gmail.com, hemant.agrawal@nxp.com,\n ajit.khaparde@broadcom.com, ferruh.yigit@intel.com, aconole@redhat.com",
        "Cc": "dev@dpdk.org, =?utf-8?q?Juraj_Linke=C5=A1?= <juraj.linkes@pantheon.tech>",
        "Date": "Fri,  6 Nov 2020 09:03:08 +0100",
        "Message-Id": "<1604649795-27476-8-git-send-email-juraj.linkes@pantheon.tech>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1604649795-27476-1-git-send-email-juraj.linkes@pantheon.tech>",
        "References": "<1604584762-25321-1-git-send-email-juraj.linkes@pantheon.tech>\n <1604649795-27476-1-git-send-email-juraj.linkes@pantheon.tech>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v8 07/14] build: isolate configuration for\n\tgeneric build",
        "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": "Use generic configuration for the only build where it makes sense - the\ngeneric build. For other builds, if we don't know either of implementer\nID or part number, the build is not supported.\nAdd part numbers to cross files where fallback to generic configuration\nis assumed.\n\nSigned-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech>\n---\n config/arm/arm64_armv8_linux_gcc              | 11 ++---\n config/arm/arm64_emag_linux_gcc               |  1 +\n ..._linux_gcc => arm64_thunderxt88_linux_gcc} |  1 +\n config/arm/meson.build                        | 45 +++++++++----------\n 4 files changed, 30 insertions(+), 28 deletions(-)\n rename config/arm/{arm64_thunderx_linux_gcc => arm64_thunderxt88_linux_gcc} (93%)",
    "diff": "diff --git a/config/arm/arm64_armv8_linux_gcc b/config/arm/arm64_armv8_linux_gcc\nindex 04cd82ba9..818953e0f 100644\n--- a/config/arm/arm64_armv8_linux_gcc\n+++ b/config/arm/arm64_armv8_linux_gcc\n@@ -22,8 +22,11 @@ endian = 'little'\n # 'dpaa':    NXP DPAA\n implementer_id = 'generic'\n \n-# Supported part_numbers for generic, 0x41, 0x56, dpaa:\n-# 'generic': valid for all armv8-a architectures (default value)\n+# Supported part_numbers for generic:\n+# 'generic': valid for all armv8-a architectures (unoptimized portable build)\n+part_number = 'generic'\n+\n+# Supported part_numbers for 0x41, 0x56, dpaa:\n # '0xd03':   cortex-a53\n # '0xd04':   cortex-a35\n # '0xd05':   cortex-a55\n@@ -33,10 +36,8 @@ implementer_id = 'generic'\n # '0xd0a':   cortex-a75\n # '0xd0b':   cortex-a76\n # '0xd0c':   neoverse-n1\n-part_number = 'generic'\n \n # Supported part_numbers for 0x43:\n-# 'generic': valid for all Cavium builds\n # '0xa1':    thunderxt88\n # '0xa2':    thunderxt81\n # '0xa3':    thunderxt83\n@@ -44,4 +45,4 @@ part_number = 'generic'\n # '0xb2':    octeontx2\n \n # Supported part_numbers for 0x50:\n-# 'generic': valid for all Ampere builds\n+# '0x0':     emag\ndiff --git a/config/arm/arm64_emag_linux_gcc b/config/arm/arm64_emag_linux_gcc\nindex 24f3d533e..c675954fc 100644\n--- a/config/arm/arm64_emag_linux_gcc\n+++ b/config/arm/arm64_emag_linux_gcc\n@@ -14,3 +14,4 @@ endian = 'little'\n \n [properties]\n implementer_id = '0x50'\n+part_number = '0x0'\ndiff --git a/config/arm/arm64_thunderx_linux_gcc b/config/arm/arm64_thunderxt88_linux_gcc\nsimilarity index 93%\nrename from config/arm/arm64_thunderx_linux_gcc\nrename to config/arm/arm64_thunderxt88_linux_gcc\nindex 670764437..758966262 100644\n--- a/config/arm/arm64_thunderx_linux_gcc\n+++ b/config/arm/arm64_thunderxt88_linux_gcc\n@@ -14,3 +14,4 @@ endian = 'little'\n \n [properties]\n implementer_id = '0x43'\n+part_number = '0xa1'\ndiff --git a/config/arm/meson.build b/config/arm/meson.build\nindex 5d232f1c4..fcf7107a5 100644\n--- a/config/arm/meson.build\n+++ b/config/arm/meson.build\n@@ -33,7 +33,6 @@ flags_part_number_thunderx = [\n \t['RTE_USE_C11_MEM_MODEL', false]\n ]\n part_number_config_arm = {\n-\t'generic': {'machine_args':  ['-march=armv8-a+crc', '-moutline-atomics']},\n \t'native': {'machine_args':  ['-march=native']},\n \t'0xd03': {'machine_args':  ['-mcpu=cortex-a53']},\n \t'0xd04': {'machine_args':  ['-mcpu=cortex-a35']},\n@@ -73,7 +72,9 @@ implementers = {\n \t\t\t['RTE_CACHE_LINE_SIZE', 128],\n \t\t\t['RTE_MAX_LCORE', 256]\n \t\t],\n-\t\t'part_number_config': part_number_config_arm\n+\t\t'part_number_config': {\n+\t\t\t'generic': {'machine_args':  ['-march=armv8-a+crc', '-moutline-atomics']}\n+\t\t}\n \t},\n \t'0x41': {\n \t\t'description': 'Arm',\n@@ -94,7 +95,6 @@ implementers = {\n \t\t\t['RTE_MAX_NUMA_NODES', 2]\n \t\t],\n \t\t'part_number_config': {\n-\t\t\t'generic': {'machine_args': ['-march=armv8-a+crc+crypto', '-mcpu=thunderx']},\n \t\t\t'native': {'machine_args': ['-march=native']},\n \t\t\t'0xa1': {\n \t\t\t\t'machine_args': ['-mcpu=thunderxt88'],\n@@ -141,7 +141,7 @@ implementers = {\n \t\t\t['RTE_MAX_NUMA_NODES', 1]\n \t\t],\n \t\t'part_number_config': {\n-\t\t\t'generic': {'machine_args':  ['-march=armv8-a+crc+crypto', '-mtune=emag']},\n+\t\t\t'0x0': {'machine_args':  ['-march=armv8-a+crc+crypto', '-mtune=emag']},\n \t\t\t'native': {'machine_args':  ['-march=native']}\n \t\t}\n \t},\n@@ -180,10 +180,9 @@ if dpdk_conf.get('RTE_ARCH_32')\n \tmachine_args += '-mfpu=neon'\n else\n \t# aarch64 build\n-\timplementer_id = 'generic'\n \tif machine == 'generic' and not meson.is_cross_build()\n \t\t# generic build\n-\t\timplementer_config = implementer['generic']\n+\t\timplementer_id = 'generic'\n \t\tpart_number = 'generic'\n \telif not meson.is_cross_build()\n \t\t# native build\n@@ -196,21 +195,24 @@ else\n \t\t\tcmd_output = cmd.stdout().to_lower().strip().split(' ')\n \t\t\timplementer_id = cmd_output[0]\n \t\t\tpart_number = cmd_output[3]\n-\t\tendif\n-\t\t# Set to generic if variable is not found\n-\t\timplementer_config = implementers.get(implementer_id, ['generic'])\n-\t\tif implementer_config[0] == 'generic'\n-\t\t\timplementer_config = implementer['generic']\n-\t\t\tpart_number = 'generic'\n+\t\telse\n+\t\t\terror('Error when getting Arm Implementer ID and part number.')\n \t\tendif\n \t\tif arm_force_native_march == true\n \t\t\tpart_number = 'native'\n \t\tendif\n \telse\n \t\t# cross build\n-\t\timplementer_id = meson.get_cross_property('implementer_id', 'generic')\n-\t\tpart_number = meson.get_cross_property('part_number', 'generic')\n-\t\timplementer_config = implementers.get(implementer_id)\n+\t\timplementer_id = meson.get_cross_property('implementer_id')\n+\t\tpart_number = meson.get_cross_property('part_number')\n+\tendif\n+\n+\tif implementers.has_key(implementer_id)\n+\t\timplementer_config = implementers[implementer_id]\n+\telse\n+\t\terror('Unsupported Arm implementer: @0@. '.format(implementer_id) +\n+\t\t      'Please add support for it or use the generic ' +\n+\t\t      '(-Dmachine=generic) build.')\n \tendif\n \n \tmessage('Arm implementer: ' + implementer_config['description'])\n@@ -220,15 +222,12 @@ else\n \tif part_number_config.has_key(part_number)\n \t\t# use the specified part_number machine args if found\n \t\tpart_number_config = part_number_config[part_number]\n-\telif not meson.is_cross_build()\n-\t\t# default to generic machine args if part_number is not found\n-\t\t# and not forcing native machine args\n-\t\t# but don't default in cross-builds; if part_number is specified\n-\t\t# incorrectly in a cross-file, it needs to be fixed there\n-\t\tpart_number_config = part_number_config['generic']\n \telse\n-\t\t# doing cross build and part number is not in part_number_config\n-\t\terror('Cross build part number 0@0 not found.'.format(part_number))\n+\t\t# unknown part number\n+\t\terror('Unsupported part number @0@ of implementer @1@. '\n+\t\t      .format(part_number, implementer_id) +\n+\t\t      'Please add support for it or use the generic ' +\n+\t\t      '(-Dmachine=generic) build.')\n \tendif\n \n \t# use default flags with implementer flags\n",
    "prefixes": [
        "v8",
        "07/14"
    ]
}