get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 819198,
    "url": "http://patchwork.ozlabs.org/api/patches/819198/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/uboot/patch/20170927141524.5920-5-wd@denx.de/",
    "project": {
        "id": 18,
        "url": "http://patchwork.ozlabs.org/api/projects/18/?format=api",
        "name": "U-Boot",
        "link_name": "uboot",
        "list_id": "u-boot.lists.denx.de",
        "list_email": "u-boot@lists.denx.de",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20170927141524.5920-5-wd@denx.de>",
    "list_archive_url": null,
    "date": "2017-09-27T14:15:23",
    "name": "[U-Boot,4/5] Revert \"scripts/dtc: Update to upstream version v1.4.4\"",
    "commit_ref": null,
    "pull_url": null,
    "state": "rejected",
    "archived": false,
    "hash": "6a49cf23daf711374f28deb4676036ef752b5446",
    "submitter": {
        "id": 387,
        "url": "http://patchwork.ozlabs.org/api/people/387/?format=api",
        "name": "Wolfgang Denk",
        "email": "wd@denx.de"
    },
    "delegate": {
        "id": 3651,
        "url": "http://patchwork.ozlabs.org/api/users/3651/?format=api",
        "username": "trini",
        "first_name": "Tom",
        "last_name": "Rini",
        "email": "trini@ti.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/20170927141524.5920-5-wd@denx.de/mbox/",
    "series": [
        {
            "id": 5381,
            "url": "http://patchwork.ozlabs.org/api/series/5381/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/uboot/list/?series=5381",
            "date": "2017-09-27T14:15:19",
            "name": "REVERT Follow the Linux Kernel in building dtc as needed",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/5381/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/819198/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/819198/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<u-boot-bounces@lists.denx.de>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org",
        "Authentication-Results": "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.denx.de\n\t(client-ip=81.169.180.215; helo=lists.denx.de;\n\tenvelope-from=u-boot-bounces@lists.denx.de;\n\treceiver=<UNKNOWN>)",
        "Received": [
            "from lists.denx.de (dione.denx.de [81.169.180.215])\n\tby ozlabs.org (Postfix) with ESMTP id 3y2Kk543M3z9tXy\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 28 Sep 2017 00:21:00 +1000 (AEST)",
            "by lists.denx.de (Postfix, from userid 105)\n\tid 05C19C21D64; Wed, 27 Sep 2017 14:20:58 +0000 (UTC)",
            "from lists.denx.de (localhost [IPv6:::1])\n\tby lists.denx.de (Postfix) with ESMTP id B67C5C21C58;\n\tWed, 27 Sep 2017 14:20:48 +0000 (UTC)",
            "by lists.denx.de (Postfix, from userid 105)\n\tid B4D72C21DDE; Wed, 27 Sep 2017 14:20:03 +0000 (UTC)",
            "from mail-out.m-online.net (mail-out.m-online.net [212.18.0.9])\n\tby lists.denx.de (Postfix) with ESMTPS id 533DFC21DA2\n\tfor <u-boot@lists.denx.de>; Wed, 27 Sep 2017 14:20:01 +0000 (UTC)",
            "from frontend01.mail.m-online.net (unknown [192.168.8.182])\n\tby mail-out.m-online.net (Postfix) with ESMTP id 3y2Khx1CqCz1qr00\n\tfor <u-boot@lists.denx.de>; Wed, 27 Sep 2017 16:20:01 +0200 (CEST)",
            "from localhost (dynscan1.mnet-online.de [192.168.6.70])\n\tby mail.m-online.net (Postfix) with ESMTP id 3y2Khx162Yz1r0x2\n\tfor <u-boot@lists.denx.de>; Wed, 27 Sep 2017 16:20:01 +0200 (CEST)",
            "from mail.mnet-online.de ([192.168.8.182])\n\tby localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new,\n\tport 10024) with ESMTP id l3yCm8GeWTJU for <u-boot@lists.denx.de>;\n\tWed, 27 Sep 2017 16:19:50 +0200 (CEST)",
            "from janitor.denx.de (unknown [62.91.23.180])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby mail.mnet-online.de (Postfix) with ESMTPSA\n\tfor <u-boot@lists.denx.de>; Wed, 27 Sep 2017 16:19:50 +0200 (CEST)",
            "by janitor.denx.de (Postfix, from userid 119)\n\tid 28CF8F46; Wed, 27 Sep 2017 16:19:50 +0200 (CEST)",
            "from gemini.denx.de (gemini.denx.de [10.4.0.2])\n\tby janitor.denx.de (Postfix) with ESMTPS id 4305F4A6;\n\tWed, 27 Sep 2017 16:15:34 +0200 (CEST)",
            "by gemini.denx.de (Postfix, from userid 500)\n\tid DF01E120370; Wed, 27 Sep 2017 16:15:33 +0200 (CEST)"
        ],
        "X-Spam-Checker-Version": "SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de",
        "X-Spam-Level": "",
        "X-Spam-Status": "No, score=-0.7 required=5.0 tests=KHOP_BIG_TO_CC,\n\tRCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3,\n\tRCVD_IN_MSPIKE_WL autolearn=unavailable\n\tautolearn_force=no version=3.4.0",
        "X-Virus-Scanned": "amavisd-new at mnet-online.de",
        "X-Auth-Info": "C2ZhKyJ1QAQLcfSV1u28/8TPjCougypWuqR1RJ3AHhU=",
        "From": "Wolfgang Denk <wd@denx.de>",
        "To": "u-boot@lists.denx.de",
        "Date": "Wed, 27 Sep 2017 16:15:23 +0200",
        "Message-Id": "<20170927141524.5920-5-wd@denx.de>",
        "X-Mailer": "git-send-email 2.13.5",
        "In-Reply-To": "<20170927141524.5920-1-wd@denx.de>",
        "References": "<1506263222-7080-1-git-send-email-trini@konsulko.com>\n\t<20170927141524.5920-1-wd@denx.de>",
        "MIME-Version": "1.0",
        "X-Mailman-Approved-At": "Wed, 27 Sep 2017 14:20:46 +0000",
        "Cc": "Prafulla Wadaskar <prafulla@marvell.com>,\n\tVipin Kumar <vk.vipin@gmail.com>, \n\tAlexey Brodkin <alexey.brodkin@synopsys.com>,\n\tPantelis Antoniou <panto@antoniou-consulting.com>,\n\tJoe Hershberger <joe.hershberger@ni.com>,\n\tPrzemyslaw Marczak <p.marczak@samsung.com>,\n\tKim Phillips <kim.phillips@freescale.com>,\n\tJagan Teki <jteki@openedev.com>, \n\tStefan Roese <sr@denx.de>, Marek Vasut <marex@denx.de>,\n\tTom Rini <trini@konsulko.com>, Angelo Dureghello <angelo@sysam.it>,\n\tMacpaul Lin <macpaul@andestech.com>,\n\tAndre Przywara <andre.przywara@arm.com>, \n\tSonic Zhang <sonic.adi@gmail.com>, Scott Wood <scottwood@freescale.com>, \n\tKyungmin Park <kmpark@infradead.org>,\n\tHuan Wang <alison.wang@freescale.com>, \n\tVagrant Cascadian <vagrant@debian.org>, Tom Warren <TWarren@nvidia.com>, \n\tYork Sun <yorksun@freescale.com>",
        "Subject": "[U-Boot] [PATCH 4/5] Revert \"scripts/dtc: Update to upstream\n\tversion v1.4.4\"",
        "X-BeenThere": "u-boot@lists.denx.de",
        "X-Mailman-Version": "2.1.18",
        "Precedence": "list",
        "List-Id": "U-Boot discussion <u-boot.lists.denx.de>",
        "List-Unsubscribe": "<https://lists.denx.de/options/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=unsubscribe>",
        "List-Archive": "<http://lists.denx.de/pipermail/u-boot/>",
        "List-Post": "<mailto:u-boot@lists.denx.de>",
        "List-Help": "<mailto:u-boot-request@lists.denx.de?subject=help>",
        "List-Subscribe": "<https://lists.denx.de/listinfo/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=subscribe>",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "base64",
        "Errors-To": "u-boot-bounces@lists.denx.de",
        "Sender": "\"U-Boot\" <u-boot-bounces@lists.denx.de>"
    },
    "content": "This reverts commit d6fc90ced42e9fb77185cedfe45d0a2c7ac78508.\n\nThis patch is part of a series which has never been reviewed and\nhas not been generally accepted by the community.\n\nSigned-off-by: Wolfgang Denk <wd@denx.de>\n\nCc: Albert Aribaud <albert.u.boot@aribaud.net>\nCc: Alexander Graf <agraf@suse.de>\nCc: Alexey Brodkin <alexey.brodkin@synopsys.com>\nCc: Anatolij Gustschin <agust@denx.de>\nCc: Andre Przywara <andre.przywara@arm.com>,\nCc: Andreas Bießmann <andreas.devel@googlemail.com>\nCc: Angelo Dureghello <angelo@sysam.it>\nCc: Bin Meng <bmeng.cn@gmail.com>\nCc: Daniel Hellstrom <daniel@gaisler.com>\nCc: Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>\nCc: Heiko Schocher <hs@denx.de>\nCc: Heinrich Schuchardt <xypron.debian@gmx.de>\nCc: Huan Wang <alison.wang@freescale.com>\nCc: Jagan Teki <jteki@openedev.com>\nCc: Joe Hershberger <joe.hershberger@ni.com>\nCc: Kim Phillips <kim.phillips@freescale.com>\nCc: Kyungmin Park <kmpark@infradead.org>\nCc: Lukasz Majewski <lukma@denx.de>\nCc: Macpaul Lin <macpaul@andestech.com>\nCc: Marek Vasut <marek.vasut@gmail.com>\nCc: Marek Vasut <marex@denx.de>\nCc: Masahiro Yamada <yamada.masahiro@socionext.com>\nCc: Michal Simek <monstr@monstr.eu>\nCc: Minkyu Kang <mk7.kang@samsung.com>\nCc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>\nCc: Pantelis Antoniou <panto@antoniou-consulting.com>\nCc: Prafulla Wadaskar <prafulla@marvell.com>\nCc: Przemyslaw Marczak <p.marczak@samsung.com>\nCc: Robert Nelson <robertcnelson@gmail.com>\nCc: Scott Wood  <scottwood@freescale.com>\nCc: Simon Glass <sjg@chromium.org>\nCc: Sonic Zhang <sonic.adi@gmail.com>\nCc: Stanislav Galabov <sgalabov@gmail.com>\nCc: Stefan Roese <sr@denx.de>\nCc: Stefano Babic <sbabic@denx.de>\nCc: Stephen Warren <swarren@wwwdotorg.org>\nCc: Thomas Chou <thomas@wytron.com.tw>\nCc: Tom Rini <trini@konsulko.com>\nCc: Tom Warren <TWarren@nvidia.com>\nCc: u-boot@lists.denx.de\nCc: Vagrant Cascadian <vagrant@debian.org>\nCc: Vipin Kumar <vk.vipin@gmail.com>\nCc: York Sun <yorksun@freescale.com>\n---\n scripts/dtc/checks.c                | 12 ++++--\n scripts/dtc/data.c                  | 16 ++++----\n scripts/dtc/dtc-lexer.l             |  7 +++-\n scripts/dtc/dtc-lexer.lex.c_shipped | 81 ++++++++++++++++++++-----------------\n scripts/dtc/dtc.c                   |  5 ++-\n scripts/dtc/dtc.h                   |  5 ++-\n scripts/dtc/flattree.c              | 58 ++++++++++++++------------\n scripts/dtc/libfdt/libfdt_env.h     | 26 ++++++------\n scripts/dtc/livetree.c              | 16 ++++----\n scripts/dtc/srcpos.h                | 11 ++---\n scripts/dtc/treesource.c            |  6 +--\n scripts/dtc/util.c                  | 11 +++--\n scripts/dtc/util.h                  | 30 +++++++-------\n scripts/dtc/version_gen.h           |  2 +-\n 14 files changed, 155 insertions(+), 131 deletions(-)",
    "diff": "diff --git a/scripts/dtc/checks.c b/scripts/dtc/checks.c\nindex 38f548e582..0e8b978c36 100644\n--- a/scripts/dtc/checks.c\n+++ b/scripts/dtc/checks.c\n@@ -72,8 +72,12 @@ struct check {\n #define CHECK(_nm, _fn, _d, ...) \\\n \tCHECK_ENTRY(_nm, _fn, _d, false, false, __VA_ARGS__)\n \n-static inline void  PRINTF(3, 4) check_msg(struct check *c, struct dt_info *dti,\n-\t\t\t\t\t   const char *fmt, ...)\n+#ifdef __GNUC__\n+static inline void check_msg(struct check *c, struct dt_info *dti,\n+\t\t\t     const char *fmt, ...) __attribute__((format (printf, 3, 4)));\n+#endif\n+static inline void check_msg(struct check *c, struct dt_info *dti,\n+\t\t\t     const char *fmt, ...)\n {\n \tva_list ap;\n \tva_start(ap, fmt);\n@@ -534,13 +538,13 @@ static void fixup_phandle_references(struct check *c, struct dt_info *dti,\n \t\t\t\t\tFAIL(c, dti, \"Reference to non-existent node or \"\n \t\t\t\t\t\t\t\"label \\\"%s\\\"\\n\", m->ref);\n \t\t\t\telse /* mark the entry as unresolved */\n-\t\t\t\t\t*((fdt32_t *)(prop->val.val + m->offset)) =\n+\t\t\t\t\t*((cell_t *)(prop->val.val + m->offset)) =\n \t\t\t\t\t\tcpu_to_fdt32(0xffffffff);\n \t\t\t\tcontinue;\n \t\t\t}\n \n \t\t\tphandle = get_node_phandle(dt, refnode);\n-\t\t\t*((fdt32_t *)(prop->val.val + m->offset)) = cpu_to_fdt32(phandle);\n+\t\t\t*((cell_t *)(prop->val.val + m->offset)) = cpu_to_fdt32(phandle);\n \t\t}\n \t}\n }\ndiff --git a/scripts/dtc/data.c b/scripts/dtc/data.c\nindex aa37a16c88..8cae237468 100644\n--- a/scripts/dtc/data.c\n+++ b/scripts/dtc/data.c\n@@ -171,9 +171,9 @@ struct data data_merge(struct data d1, struct data d2)\n struct data data_append_integer(struct data d, uint64_t value, int bits)\n {\n \tuint8_t value_8;\n-\tfdt16_t value_16;\n-\tfdt32_t value_32;\n-\tfdt64_t value_64;\n+\tuint16_t value_16;\n+\tuint32_t value_32;\n+\tuint64_t value_64;\n \n \tswitch (bits) {\n \tcase 8:\n@@ -197,14 +197,14 @@ struct data data_append_integer(struct data d, uint64_t value, int bits)\n \t}\n }\n \n-struct data data_append_re(struct data d, uint64_t address, uint64_t size)\n+struct data data_append_re(struct data d, const struct fdt_reserve_entry *re)\n {\n-\tstruct fdt_reserve_entry re;\n+\tstruct fdt_reserve_entry bere;\n \n-\tre.address = cpu_to_fdt64(address);\n-\tre.size = cpu_to_fdt64(size);\n+\tbere.address = cpu_to_fdt64(re->address);\n+\tbere.size = cpu_to_fdt64(re->size);\n \n-\treturn data_append_data(d, &re, sizeof(re));\n+\treturn data_append_data(d, &bere, sizeof(bere));\n }\n \n struct data data_append_cell(struct data d, cell_t word)\ndiff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l\nindex fd825ebba6..52bed7b749 100644\n--- a/scripts/dtc/dtc-lexer.l\n+++ b/scripts/dtc/dtc-lexer.l\n@@ -62,7 +62,12 @@ static int dts_version = 1;\n \n static void push_input_file(const char *filename);\n static bool pop_input_file(void);\n-static void PRINTF(1, 2) lexical_error(const char *fmt, ...);\n+#ifdef __GNUC__\n+static void lexical_error(const char *fmt, ...)\n+\t__attribute__((format (printf, 1, 2)));\n+#else\n+static void lexical_error(const char *fmt, ...);\n+#endif\n \n %}\n \ndiff --git a/scripts/dtc/dtc-lexer.lex.c_shipped b/scripts/dtc/dtc-lexer.lex.c_shipped\nindex 3934d8624d..d77fdfe590 100644\n--- a/scripts/dtc/dtc-lexer.lex.c_shipped\n+++ b/scripts/dtc/dtc-lexer.lex.c_shipped\n@@ -663,9 +663,14 @@ static int dts_version = 1;\n \n static void push_input_file(const char *filename);\n static bool pop_input_file(void);\n-static void PRINTF(1, 2) lexical_error(const char *fmt, ...);\n+#ifdef __GNUC__\n+static void lexical_error(const char *fmt, ...)\n+\t__attribute__((format (printf, 1, 2)));\n+#else\n+static void lexical_error(const char *fmt, ...);\n+#endif\n \n-#line 669 \"dtc-lexer.lex.c\"\n+#line 674 \"dtc-lexer.lex.c\"\n \n #define INITIAL 0\n #define BYTESTRING 1\n@@ -856,9 +861,9 @@ YY_DECL\n \tregister char *yy_cp, *yy_bp;\n \tregister int yy_act;\n     \n-#line 69 \"dtc-lexer.l\"\n+#line 74 \"dtc-lexer.l\"\n \n-#line 862 \"dtc-lexer.lex.c\"\n+#line 867 \"dtc-lexer.lex.c\"\n \n \tif ( !(yy_init) )\n \t\t{\n@@ -941,7 +946,7 @@ do_action:\t/* This label is used only to access EOF actions. */\n case 1:\n /* rule 1 can match eol */\n YY_RULE_SETUP\n-#line 70 \"dtc-lexer.l\"\n+#line 75 \"dtc-lexer.l\"\n {\n \t\t\tchar *name = strchr(yytext, '\\\"') + 1;\n \t\t\tyytext[yyleng-1] = '\\0';\n@@ -951,7 +956,7 @@ YY_RULE_SETUP\n case 2:\n /* rule 2 can match eol */\n YY_RULE_SETUP\n-#line 76 \"dtc-lexer.l\"\n+#line 81 \"dtc-lexer.l\"\n {\n \t\t\tchar *line, *fnstart, *fnend;\n \t\t\tstruct data fn;\n@@ -985,7 +990,7 @@ case YY_STATE_EOF(INITIAL):\n case YY_STATE_EOF(BYTESTRING):\n case YY_STATE_EOF(PROPNODENAME):\n case YY_STATE_EOF(V1):\n-#line 105 \"dtc-lexer.l\"\n+#line 110 \"dtc-lexer.l\"\n {\n \t\t\tif (!pop_input_file()) {\n \t\t\t\tyyterminate();\n@@ -995,7 +1000,7 @@ case YY_STATE_EOF(V1):\n case 3:\n /* rule 3 can match eol */\n YY_RULE_SETUP\n-#line 111 \"dtc-lexer.l\"\n+#line 116 \"dtc-lexer.l\"\n {\n \t\t\tDPRINT(\"String: %s\\n\", yytext);\n \t\t\tyylval.data = data_copy_escape_string(yytext+1,\n@@ -1005,7 +1010,7 @@ YY_RULE_SETUP\n \tYY_BREAK\n case 4:\n YY_RULE_SETUP\n-#line 118 \"dtc-lexer.l\"\n+#line 123 \"dtc-lexer.l\"\n {\n \t\t\tDPRINT(\"Keyword: /dts-v1/\\n\");\n \t\t\tdts_version = 1;\n@@ -1015,7 +1020,7 @@ YY_RULE_SETUP\n \tYY_BREAK\n case 5:\n YY_RULE_SETUP\n-#line 125 \"dtc-lexer.l\"\n+#line 130 \"dtc-lexer.l\"\n {\n \t\t\tDPRINT(\"Keyword: /plugin/\\n\");\n \t\t\treturn DT_PLUGIN;\n@@ -1023,7 +1028,7 @@ YY_RULE_SETUP\n \tYY_BREAK\n case 6:\n YY_RULE_SETUP\n-#line 130 \"dtc-lexer.l\"\n+#line 135 \"dtc-lexer.l\"\n {\n \t\t\tDPRINT(\"Keyword: /memreserve/\\n\");\n \t\t\tBEGIN_DEFAULT();\n@@ -1032,7 +1037,7 @@ YY_RULE_SETUP\n \tYY_BREAK\n case 7:\n YY_RULE_SETUP\n-#line 136 \"dtc-lexer.l\"\n+#line 141 \"dtc-lexer.l\"\n {\n \t\t\tDPRINT(\"Keyword: /bits/\\n\");\n \t\t\tBEGIN_DEFAULT();\n@@ -1041,7 +1046,7 @@ YY_RULE_SETUP\n \tYY_BREAK\n case 8:\n YY_RULE_SETUP\n-#line 142 \"dtc-lexer.l\"\n+#line 147 \"dtc-lexer.l\"\n {\n \t\t\tDPRINT(\"Keyword: /delete-property/\\n\");\n \t\t\tDPRINT(\"<PROPNODENAME>\\n\");\n@@ -1051,7 +1056,7 @@ YY_RULE_SETUP\n \tYY_BREAK\n case 9:\n YY_RULE_SETUP\n-#line 149 \"dtc-lexer.l\"\n+#line 154 \"dtc-lexer.l\"\n {\n \t\t\tDPRINT(\"Keyword: /delete-node/\\n\");\n \t\t\tDPRINT(\"<PROPNODENAME>\\n\");\n@@ -1061,7 +1066,7 @@ YY_RULE_SETUP\n \tYY_BREAK\n case 10:\n YY_RULE_SETUP\n-#line 156 \"dtc-lexer.l\"\n+#line 161 \"dtc-lexer.l\"\n {\n \t\t\tDPRINT(\"Label: %s\\n\", yytext);\n \t\t\tyylval.labelref = xstrdup(yytext);\n@@ -1071,7 +1076,7 @@ YY_RULE_SETUP\n \tYY_BREAK\n case 11:\n YY_RULE_SETUP\n-#line 163 \"dtc-lexer.l\"\n+#line 168 \"dtc-lexer.l\"\n {\n \t\t\tchar *e;\n \t\t\tDPRINT(\"Integer Literal: '%s'\\n\", yytext);\n@@ -1097,7 +1102,7 @@ YY_RULE_SETUP\n case 12:\n /* rule 12 can match eol */\n YY_RULE_SETUP\n-#line 185 \"dtc-lexer.l\"\n+#line 190 \"dtc-lexer.l\"\n {\n \t\t\tstruct data d;\n \t\t\tDPRINT(\"Character literal: %s\\n\", yytext);\n@@ -1121,7 +1126,7 @@ YY_RULE_SETUP\n \tYY_BREAK\n case 13:\n YY_RULE_SETUP\n-#line 206 \"dtc-lexer.l\"\n+#line 211 \"dtc-lexer.l\"\n {\t/* label reference */\n \t\t\tDPRINT(\"Ref: %s\\n\", yytext+1);\n \t\t\tyylval.labelref = xstrdup(yytext+1);\n@@ -1130,7 +1135,7 @@ YY_RULE_SETUP\n \tYY_BREAK\n case 14:\n YY_RULE_SETUP\n-#line 212 \"dtc-lexer.l\"\n+#line 217 \"dtc-lexer.l\"\n {\t/* new-style path reference */\n \t\t\tyytext[yyleng-1] = '\\0';\n \t\t\tDPRINT(\"Ref: %s\\n\", yytext+2);\n@@ -1140,7 +1145,7 @@ YY_RULE_SETUP\n \tYY_BREAK\n case 15:\n YY_RULE_SETUP\n-#line 219 \"dtc-lexer.l\"\n+#line 224 \"dtc-lexer.l\"\n {\n \t\t\tyylval.byte = strtol(yytext, NULL, 16);\n \t\t\tDPRINT(\"Byte: %02x\\n\", (int)yylval.byte);\n@@ -1149,7 +1154,7 @@ YY_RULE_SETUP\n \tYY_BREAK\n case 16:\n YY_RULE_SETUP\n-#line 225 \"dtc-lexer.l\"\n+#line 230 \"dtc-lexer.l\"\n {\n \t\t\tDPRINT(\"/BYTESTRING\\n\");\n \t\t\tBEGIN_DEFAULT();\n@@ -1158,7 +1163,7 @@ YY_RULE_SETUP\n \tYY_BREAK\n case 17:\n YY_RULE_SETUP\n-#line 231 \"dtc-lexer.l\"\n+#line 236 \"dtc-lexer.l\"\n {\n \t\t\tDPRINT(\"PropNodeName: %s\\n\", yytext);\n \t\t\tyylval.propnodename = xstrdup((yytext[0] == '\\\\') ?\n@@ -1169,7 +1174,7 @@ YY_RULE_SETUP\n \tYY_BREAK\n case 18:\n YY_RULE_SETUP\n-#line 239 \"dtc-lexer.l\"\n+#line 244 \"dtc-lexer.l\"\n {\n \t\t\tDPRINT(\"Binary Include\\n\");\n \t\t\treturn DT_INCBIN;\n@@ -1178,64 +1183,64 @@ YY_RULE_SETUP\n case 19:\n /* rule 19 can match eol */\n YY_RULE_SETUP\n-#line 244 \"dtc-lexer.l\"\n+#line 249 \"dtc-lexer.l\"\n /* eat whitespace */\n \tYY_BREAK\n case 20:\n /* rule 20 can match eol */\n YY_RULE_SETUP\n-#line 245 \"dtc-lexer.l\"\n+#line 250 \"dtc-lexer.l\"\n /* eat C-style comments */\n \tYY_BREAK\n case 21:\n /* rule 21 can match eol */\n YY_RULE_SETUP\n-#line 246 \"dtc-lexer.l\"\n+#line 251 \"dtc-lexer.l\"\n /* eat C++-style comments */\n \tYY_BREAK\n case 22:\n YY_RULE_SETUP\n-#line 248 \"dtc-lexer.l\"\n+#line 253 \"dtc-lexer.l\"\n { return DT_LSHIFT; };\n \tYY_BREAK\n case 23:\n YY_RULE_SETUP\n-#line 249 \"dtc-lexer.l\"\n+#line 254 \"dtc-lexer.l\"\n { return DT_RSHIFT; };\n \tYY_BREAK\n case 24:\n YY_RULE_SETUP\n-#line 250 \"dtc-lexer.l\"\n+#line 255 \"dtc-lexer.l\"\n { return DT_LE; };\n \tYY_BREAK\n case 25:\n YY_RULE_SETUP\n-#line 251 \"dtc-lexer.l\"\n+#line 256 \"dtc-lexer.l\"\n { return DT_GE; };\n \tYY_BREAK\n case 26:\n YY_RULE_SETUP\n-#line 252 \"dtc-lexer.l\"\n+#line 257 \"dtc-lexer.l\"\n { return DT_EQ; };\n \tYY_BREAK\n case 27:\n YY_RULE_SETUP\n-#line 253 \"dtc-lexer.l\"\n+#line 258 \"dtc-lexer.l\"\n { return DT_NE; };\n \tYY_BREAK\n case 28:\n YY_RULE_SETUP\n-#line 254 \"dtc-lexer.l\"\n+#line 259 \"dtc-lexer.l\"\n { return DT_AND; };\n \tYY_BREAK\n case 29:\n YY_RULE_SETUP\n-#line 255 \"dtc-lexer.l\"\n+#line 260 \"dtc-lexer.l\"\n { return DT_OR; };\n \tYY_BREAK\n case 30:\n YY_RULE_SETUP\n-#line 257 \"dtc-lexer.l\"\n+#line 262 \"dtc-lexer.l\"\n {\n \t\t\tDPRINT(\"Char: %c (\\\\x%02x)\\n\", yytext[0],\n \t\t\t\t(unsigned)yytext[0]);\n@@ -1253,10 +1258,10 @@ YY_RULE_SETUP\n \tYY_BREAK\n case 31:\n YY_RULE_SETUP\n-#line 272 \"dtc-lexer.l\"\n+#line 277 \"dtc-lexer.l\"\n ECHO;\n \tYY_BREAK\n-#line 1260 \"dtc-lexer.lex.c\"\n+#line 1265 \"dtc-lexer.lex.c\"\n \n \tcase YY_END_OF_BUFFER:\n \t\t{\n@@ -2215,7 +2220,7 @@ void yyfree (void * ptr )\n \n #define YYTABLES_NAME \"yytables\"\n \n-#line 272 \"dtc-lexer.l\"\n+#line 277 \"dtc-lexer.l\"\n \n \n \ndiff --git a/scripts/dtc/dtc.c b/scripts/dtc/dtc.c\nindex f5eed9d72c..bb1e52b318 100644\n--- a/scripts/dtc/dtc.c\n+++ b/scripts/dtc/dtc.c\n@@ -138,7 +138,7 @@ static const char *guess_type_by_name(const char *fname, const char *fallback)\n static const char *guess_input_format(const char *fname, const char *fallback)\n {\n \tstruct stat statbuf;\n-\tfdt32_t magic;\n+\tuint32_t magic;\n \tFILE *f;\n \n \tif (stat(fname, &statbuf) != 0)\n@@ -159,7 +159,8 @@ static const char *guess_input_format(const char *fname, const char *fallback)\n \t}\n \tfclose(f);\n \n-\tif (fdt32_to_cpu(magic) == FDT_MAGIC)\n+\tmagic = fdt32_to_cpu(magic);\n+\tif (magic == FDT_MAGIC)\n \t\treturn \"dtb\";\n \n \treturn guess_type_by_name(fname, fallback);\ndiff --git a/scripts/dtc/dtc.h b/scripts/dtc/dtc.h\nindex 403b79deab..1ac2a1e3a4 100644\n--- a/scripts/dtc/dtc.h\n+++ b/scripts/dtc/dtc.h\n@@ -43,6 +43,7 @@\n #define debug(...)\n #endif\n \n+\n #define DEFAULT_FDT_VERSION\t17\n \n /*\n@@ -113,7 +114,7 @@ struct data data_insert_at_marker(struct data d, struct marker *m,\n struct data data_merge(struct data d1, struct data d2);\n struct data data_append_cell(struct data d, cell_t word);\n struct data data_append_integer(struct data d, uint64_t word, int bits);\n-struct data data_append_re(struct data d, uint64_t address, uint64_t size);\n+struct data data_append_re(struct data d, const struct fdt_reserve_entry *re);\n struct data data_append_addr(struct data d, uint64_t addr);\n struct data data_append_byte(struct data d, uint8_t byte);\n struct data data_append_zeroes(struct data d, int len);\n@@ -226,7 +227,7 @@ uint32_t guess_boot_cpuid(struct node *tree);\n /* Boot info (tree plus memreserve information */\n \n struct reserve_info {\n-\tuint64_t address, size;\n+\tstruct fdt_reserve_entry re;\n \n \tstruct reserve_info *next;\n \ndiff --git a/scripts/dtc/flattree.c b/scripts/dtc/flattree.c\nindex fcf71541d8..ebac548b3f 100644\n--- a/scripts/dtc/flattree.c\n+++ b/scripts/dtc/flattree.c\n@@ -49,7 +49,7 @@ static struct version_info {\n \n struct emitter {\n \tvoid (*cell)(void *, cell_t);\n-\tvoid (*string)(void *, const char *, int);\n+\tvoid (*string)(void *, char *, int);\n \tvoid (*align)(void *, int);\n \tvoid (*data)(void *, struct data);\n \tvoid (*beginnode)(void *, struct label *labels);\n@@ -64,7 +64,7 @@ static void bin_emit_cell(void *e, cell_t val)\n \t*dtbuf = data_append_cell(*dtbuf, val);\n }\n \n-static void bin_emit_string(void *e, const char *str, int len)\n+static void bin_emit_string(void *e, char *str, int len)\n {\n \tstruct data *dtbuf = e;\n \n@@ -144,14 +144,22 @@ static void asm_emit_cell(void *e, cell_t val)\n \t\t(val >> 8) & 0xff, val & 0xff);\n }\n \n-static void asm_emit_string(void *e, const char *str, int len)\n+static void asm_emit_string(void *e, char *str, int len)\n {\n \tFILE *f = e;\n+\tchar c = 0;\n \n-\tif (len != 0)\n-\t\tfprintf(f, \"\\t.string\\t\\\"%.*s\\\"\\n\", len, str);\n-\telse\n-\t\tfprintf(f, \"\\t.string\\t\\\"%s\\\"\\n\", str);\n+\tif (len != 0) {\n+\t\t/* XXX: ewww */\n+\t\tc = str[len];\n+\t\tstr[len] = '\\0';\n+\t}\n+\n+\tfprintf(f, \"\\t.string\\t\\\"%s\\\"\\n\", str);\n+\n+\tif (len != 0) {\n+\t\tstr[len] = c;\n+\t}\n }\n \n static void asm_emit_align(void *e, int a)\n@@ -171,7 +179,7 @@ static void asm_emit_data(void *e, struct data d)\n \t\temit_offset_label(f, m->ref, m->offset);\n \n \twhile ((d.len - off) >= sizeof(uint32_t)) {\n-\t\tasm_emit_cell(e, fdt32_to_cpu(*((fdt32_t *)(d.val+off))));\n+\t\tasm_emit_cell(e, fdt32_to_cpu(*((uint32_t *)(d.val+off))));\n \t\toff += sizeof(uint32_t);\n \t}\n \n@@ -310,16 +318,17 @@ static struct data flatten_reserve_list(struct reserve_info *reservelist,\n {\n \tstruct reserve_info *re;\n \tstruct data d = empty_data;\n+\tstatic struct fdt_reserve_entry null_re = {0,0};\n \tint    j;\n \n \tfor (re = reservelist; re; re = re->next) {\n-\t\td = data_append_re(d, re->address, re->size);\n+\t\td = data_append_re(d, &re->re);\n \t}\n \t/*\n \t * Add additional reserved slots if the user asked for them.\n \t */\n \tfor (j = 0; j < reservenum; j++) {\n-\t\td = data_append_re(d, 0, 0);\n+\t\td = data_append_re(d, &null_re);\n \t}\n \n \treturn d;\n@@ -535,11 +544,11 @@ void dt_to_asm(FILE *f, struct dt_info *dti, int version)\n \t\t\tfprintf(f, \"\\t.globl\\t%s\\n\", l->label);\n \t\t\tfprintf(f, \"%s:\\n\", l->label);\n \t\t}\n-\t\tASM_EMIT_BELONG(f, \"0x%08x\", (unsigned int)(re->address >> 32));\n+\t\tASM_EMIT_BELONG(f, \"0x%08x\", (unsigned int)(re->re.address >> 32));\n \t\tASM_EMIT_BELONG(f, \"0x%08x\",\n-\t\t\t\t(unsigned int)(re->address & 0xffffffff));\n-\t\tASM_EMIT_BELONG(f, \"0x%08x\", (unsigned int)(re->size >> 32));\n-\t\tASM_EMIT_BELONG(f, \"0x%08x\", (unsigned int)(re->size & 0xffffffff));\n+\t\t\t\t(unsigned int)(re->re.address & 0xffffffff));\n+\t\tASM_EMIT_BELONG(f, \"0x%08x\", (unsigned int)(re->re.size >> 32));\n+\t\tASM_EMIT_BELONG(f, \"0x%08x\", (unsigned int)(re->re.size & 0xffffffff));\n \t}\n \tfor (i = 0; i < reservenum; i++) {\n \t\tfprintf(f, \"\\t.long\\t0, 0\\n\\t.long\\t0, 0\\n\");\n@@ -600,7 +609,7 @@ static void flat_read_chunk(struct inbuf *inb, void *p, int len)\n \n static uint32_t flat_read_word(struct inbuf *inb)\n {\n-\tfdt32_t val;\n+\tuint32_t val;\n \n \tassert(((inb->ptr - inb->base) % sizeof(val)) == 0);\n \n@@ -709,15 +718,13 @@ static struct reserve_info *flat_read_mem_reserve(struct inbuf *inb)\n \t * First pass, count entries.\n \t */\n \twhile (1) {\n-\t\tuint64_t address, size;\n-\n \t\tflat_read_chunk(inb, &re, sizeof(re));\n-\t\taddress  = fdt64_to_cpu(re.address);\n-\t\tsize = fdt64_to_cpu(re.size);\n-\t\tif (size == 0)\n+\t\tre.address  = fdt64_to_cpu(re.address);\n+\t\tre.size = fdt64_to_cpu(re.size);\n+\t\tif (re.size == 0)\n \t\t\tbreak;\n \n-\t\tnew = build_reserve_entry(address, size);\n+\t\tnew = build_reserve_entry(re.address, re.size);\n \t\treservelist = add_reserve_entry(reservelist, new);\n \t}\n \n@@ -810,7 +817,6 @@ static struct node *unflatten_tree(struct inbuf *dtbuf,\n struct dt_info *dt_from_blob(const char *fname)\n {\n \tFILE *f;\n-\tfdt32_t magic_buf, totalsize_buf;\n \tuint32_t magic, totalsize, version, size_dt, boot_cpuid_phys;\n \tuint32_t off_dt, off_str, off_mem_rsvmap;\n \tint rc;\n@@ -827,7 +833,7 @@ struct dt_info *dt_from_blob(const char *fname)\n \n \tf = srcfile_relative_open(fname, NULL);\n \n-\trc = fread(&magic_buf, sizeof(magic_buf), 1, f);\n+\trc = fread(&magic, sizeof(magic), 1, f);\n \tif (ferror(f))\n \t\tdie(\"Error reading DT blob magic number: %s\\n\",\n \t\t    strerror(errno));\n@@ -838,11 +844,11 @@ struct dt_info *dt_from_blob(const char *fname)\n \t\t\tdie(\"Mysterious short read reading magic number\\n\");\n \t}\n \n-\tmagic = fdt32_to_cpu(magic_buf);\n+\tmagic = fdt32_to_cpu(magic);\n \tif (magic != FDT_MAGIC)\n \t\tdie(\"Blob has incorrect magic number\\n\");\n \n-\trc = fread(&totalsize_buf, sizeof(totalsize_buf), 1, f);\n+\trc = fread(&totalsize, sizeof(totalsize), 1, f);\n \tif (ferror(f))\n \t\tdie(\"Error reading DT blob size: %s\\n\", strerror(errno));\n \tif (rc < 1) {\n@@ -852,7 +858,7 @@ struct dt_info *dt_from_blob(const char *fname)\n \t\t\tdie(\"Mysterious short read reading blob size\\n\");\n \t}\n \n-\ttotalsize = fdt32_to_cpu(totalsize_buf);\n+\ttotalsize = fdt32_to_cpu(totalsize);\n \tif (totalsize < FDT_V1_SIZE)\n \t\tdie(\"DT blob size (%d) is too small\\n\", totalsize);\n \ndiff --git a/scripts/dtc/libfdt/libfdt_env.h b/scripts/dtc/libfdt/libfdt_env.h\nindex 952056cddf..99f936dacc 100644\n--- a/scripts/dtc/libfdt/libfdt_env.h\n+++ b/scripts/dtc/libfdt/libfdt_env.h\n@@ -58,16 +58,16 @@\n #include <string.h>\n \n #ifdef __CHECKER__\n-#define FDT_FORCE __attribute__((force))\n-#define FDT_BITWISE __attribute__((bitwise))\n+#define __force __attribute__((force))\n+#define __bitwise __attribute__((bitwise))\n #else\n-#define FDT_FORCE\n-#define FDT_BITWISE\n+#define __force\n+#define __bitwise\n #endif\n \n-typedef uint16_t FDT_BITWISE fdt16_t;\n-typedef uint32_t FDT_BITWISE fdt32_t;\n-typedef uint64_t FDT_BITWISE fdt64_t;\n+typedef uint16_t __bitwise fdt16_t;\n+typedef uint32_t __bitwise fdt32_t;\n+typedef uint64_t __bitwise fdt64_t;\n \n #define EXTRACT_BYTE(x, n)\t((unsigned long long)((uint8_t *)&x)[n])\n #define CPU_TO_FDT16(x) ((EXTRACT_BYTE(x, 0) << 8) | EXTRACT_BYTE(x, 1))\n@@ -80,29 +80,29 @@ typedef uint64_t FDT_BITWISE fdt64_t;\n \n static inline uint16_t fdt16_to_cpu(fdt16_t x)\n {\n-\treturn (FDT_FORCE uint16_t)CPU_TO_FDT16(x);\n+\treturn (__force uint16_t)CPU_TO_FDT16(x);\n }\n static inline fdt16_t cpu_to_fdt16(uint16_t x)\n {\n-\treturn (FDT_FORCE fdt16_t)CPU_TO_FDT16(x);\n+\treturn (__force fdt16_t)CPU_TO_FDT16(x);\n }\n \n static inline uint32_t fdt32_to_cpu(fdt32_t x)\n {\n-\treturn (FDT_FORCE uint32_t)CPU_TO_FDT32(x);\n+\treturn (__force uint32_t)CPU_TO_FDT32(x);\n }\n static inline fdt32_t cpu_to_fdt32(uint32_t x)\n {\n-\treturn (FDT_FORCE fdt32_t)CPU_TO_FDT32(x);\n+\treturn (__force fdt32_t)CPU_TO_FDT32(x);\n }\n \n static inline uint64_t fdt64_to_cpu(fdt64_t x)\n {\n-\treturn (FDT_FORCE uint64_t)CPU_TO_FDT64(x);\n+\treturn (__force uint64_t)CPU_TO_FDT64(x);\n }\n static inline fdt64_t cpu_to_fdt64(uint64_t x)\n {\n-\treturn (FDT_FORCE fdt64_t)CPU_TO_FDT64(x);\n+\treturn (__force fdt64_t)CPU_TO_FDT64(x);\n }\n #undef CPU_TO_FDT64\n #undef CPU_TO_FDT32\ndiff --git a/scripts/dtc/livetree.c b/scripts/dtc/livetree.c\nindex 3673de07e4..36be9afefd 100644\n--- a/scripts/dtc/livetree.c\n+++ b/scripts/dtc/livetree.c\n@@ -319,8 +319,8 @@ struct reserve_info *build_reserve_entry(uint64_t address, uint64_t size)\n \n \tmemset(new, 0, sizeof(*new));\n \n-\tnew->address = address;\n-\tnew->size = size;\n+\tnew->re.address = address;\n+\tnew->re.size = size;\n \n \treturn new;\n }\n@@ -393,7 +393,7 @@ struct property *get_property(struct node *node, const char *propname)\n cell_t propval_cell(struct property *prop)\n {\n \tassert(prop->val.len == sizeof(cell_t));\n-\treturn fdt32_to_cpu(*((fdt32_t *)prop->val.val));\n+\treturn fdt32_to_cpu(*((cell_t *)prop->val.val));\n }\n \n struct property *get_property_by_label(struct node *tree, const char *label,\n@@ -599,13 +599,13 @@ static int cmp_reserve_info(const void *ax, const void *bx)\n \ta = *((const struct reserve_info * const *)ax);\n \tb = *((const struct reserve_info * const *)bx);\n \n-\tif (a->address < b->address)\n+\tif (a->re.address < b->re.address)\n \t\treturn -1;\n-\telse if (a->address > b->address)\n+\telse if (a->re.address > b->re.address)\n \t\treturn 1;\n-\telse if (a->size < b->size)\n+\telse if (a->re.size < b->re.size)\n \t\treturn -1;\n-\telse if (a->size > b->size)\n+\telse if (a->re.size > b->re.size)\n \t\treturn 1;\n \telse\n \t\treturn 0;\n@@ -902,7 +902,7 @@ static void add_local_fixup_entry(struct dt_info *dti,\n \t\tstruct node *refnode)\n {\n \tstruct node *wn, *nwn;\t/* local fixup node, walk node, new */\n-\tfdt32_t value_32;\n+\tuint32_t value_32;\n \tchar **compp;\n \tint i, depth;\n \ndiff --git a/scripts/dtc/srcpos.h b/scripts/dtc/srcpos.h\nindex 7caca8257c..2cdfcd82e9 100644\n--- a/scripts/dtc/srcpos.h\n+++ b/scripts/dtc/srcpos.h\n@@ -22,7 +22,6 @@\n \n #include <stdio.h>\n #include <stdbool.h>\n-#include \"util.h\"\n \n struct srcfile_state {\n \tFILE *f;\n@@ -107,10 +106,12 @@ extern void srcpos_update(struct srcpos *pos, const char *text, int len);\n extern struct srcpos *srcpos_copy(struct srcpos *pos);\n extern char *srcpos_string(struct srcpos *pos);\n \n-extern void PRINTF(3, 0) srcpos_verror(struct srcpos *pos, const char *prefix,\n-\t\t\t\t\tconst char *fmt, va_list va);\n-extern void PRINTF(3, 4) srcpos_error(struct srcpos *pos, const char *prefix,\n-\t\t\t\t      const char *fmt, ...);\n+extern void srcpos_verror(struct srcpos *pos, const char *prefix,\n+\t\t\t  const char *fmt, va_list va)\n+\t__attribute__((format(printf, 3, 0)));\n+extern void srcpos_error(struct srcpos *pos, const char *prefix,\n+\t\t\t const char *fmt, ...)\n+\t__attribute__((format(printf, 3, 4)));\n \n extern void srcpos_set_line(char *f, int l);\n \ndiff --git a/scripts/dtc/treesource.c b/scripts/dtc/treesource.c\nindex 2461a3d068..c9d8967969 100644\n--- a/scripts/dtc/treesource.c\n+++ b/scripts/dtc/treesource.c\n@@ -137,7 +137,7 @@ static void write_propval_string(FILE *f, struct data val)\n static void write_propval_cells(FILE *f, struct data val)\n {\n \tvoid *propend = val.val + val.len;\n-\tfdt32_t *cp = (fdt32_t *)val.val;\n+\tcell_t *cp = (cell_t *)val.val;\n \tstruct marker *m = val.markers;\n \n \tfprintf(f, \"<\");\n@@ -275,8 +275,8 @@ void dt_to_source(FILE *f, struct dt_info *dti)\n \t\tfor_each_label(re->labels, l)\n \t\t\tfprintf(f, \"%s: \", l->label);\n \t\tfprintf(f, \"/memreserve/\\t0x%016llx 0x%016llx;\\n\",\n-\t\t\t(unsigned long long)re->address,\n-\t\t\t(unsigned long long)re->size);\n+\t\t\t(unsigned long long)re->re.address,\n+\t\t\t(unsigned long long)re->re.size);\n \t}\n \n \twrite_tree_source_node(f, dti->dt, 0);\ndiff --git a/scripts/dtc/util.c b/scripts/dtc/util.c\nindex 9953c32a02..3550f86bd6 100644\n--- a/scripts/dtc/util.c\n+++ b/scripts/dtc/util.c\n@@ -396,7 +396,7 @@ void utilfdt_print_data(const char *data, int len)\n \t\t} while (s < data + len);\n \n \t} else if ((len % 4) == 0) {\n-\t\tconst fdt32_t *cell = (const fdt32_t *)data;\n+\t\tconst uint32_t *cell = (const uint32_t *)data;\n \n \t\tprintf(\" = <\");\n \t\tfor (i = 0, len /= 4; i < len; i++)\n@@ -412,16 +412,15 @@ void utilfdt_print_data(const char *data, int len)\n \t}\n }\n \n-void NORETURN util_version(void)\n+void util_version(void)\n {\n \tprintf(\"Version: %s\\n\", DTC_VERSION);\n \texit(0);\n }\n \n-void NORETURN util_usage(const char *errmsg, const char *synopsis,\n-\t\t\t const char *short_opts,\n-\t\t\t struct option const long_opts[],\n-\t\t\t const char * const opts_help[])\n+void util_usage(const char *errmsg, const char *synopsis,\n+\t\tconst char *short_opts, struct option const long_opts[],\n+\t\tconst char * const opts_help[])\n {\n \tFILE *fp = errmsg ? stderr : stdout;\n \tconst char a_arg[] = \"<arg>\";\ndiff --git a/scripts/dtc/util.h b/scripts/dtc/util.h\nindex ad5f41199e..bc3d223fa6 100644\n--- a/scripts/dtc/util.h\n+++ b/scripts/dtc/util.h\n@@ -25,17 +25,15 @@\n  *                                                                   USA\n  */\n \n+#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))\n+\n #ifdef __GNUC__\n-#define PRINTF(i, j)\t__attribute__((format (printf, i, j)))\n-#define NORETURN\t__attribute__((noreturn))\n+static inline void\n+__attribute__((noreturn)) __attribute__((format (printf, 1, 2)))\n+die(const char *str, ...)\n #else\n-#define PRINTF(i, j)\n-#define NORETURN\n+static inline void die(const char *str, ...)\n #endif\n-\n-#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))\n-\n-static inline void NORETURN PRINTF(1, 2) die(const char *str, ...)\n {\n \tva_list ap;\n \n@@ -68,7 +66,12 @@ static inline void *xrealloc(void *p, size_t len)\n \n extern char *xstrdup(const char *s);\n \n-extern int PRINTF(2, 3) xasprintf(char **strp, const char *fmt, ...);\n+#ifdef __GNUC__\n+extern int __attribute__((format (printf, 2, 3)))\n+xasprintf(char **strp, const char *fmt, ...);\n+#else\n+extern int xasprintf(char **strp, const char *fmt, ...);\n+#endif\n extern char *join_path(const char *path, const char *name);\n \n /**\n@@ -197,7 +200,7 @@ void utilfdt_print_data(const char *data, int len);\n /**\n  * Show source version and exit\n  */\n-void NORETURN util_version(void);\n+void util_version(void) __attribute__((noreturn));\n \n /**\n  * Show usage and exit\n@@ -211,10 +214,9 @@ void NORETURN util_version(void);\n  * @param long_opts\tThe structure of long options\n  * @param opts_help\tAn array of help strings (should align with long_opts)\n  */\n-void NORETURN util_usage(const char *errmsg, const char *synopsis,\n-\t\t\t const char *short_opts,\n-\t\t\t struct option const long_opts[],\n-\t\t\t const char * const opts_help[]);\n+void util_usage(const char *errmsg, const char *synopsis,\n+\t\tconst char *short_opts, struct option const long_opts[],\n+\t\tconst char * const opts_help[]) __attribute__((noreturn));\n \n /**\n  * Show usage and exit\ndiff --git a/scripts/dtc/version_gen.h b/scripts/dtc/version_gen.h\nindex 859564e8b4..bbbd96b1dc 100644\n--- a/scripts/dtc/version_gen.h\n+++ b/scripts/dtc/version_gen.h\n@@ -1 +1 @@\n-#define DTC_VERSION \"DTC 1.4.4\"\n+#define DTC_VERSION \"DTC 1.4.3\"\n",
    "prefixes": [
        "U-Boot",
        "4/5"
    ]
}