From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-yw1-x1135.google.com (mail-yw1-x1135.google.com [IPv6:2607:f8b0:4864:20::1135]) by sourceware.org (Postfix) with ESMTPS id C23A23858D38 for ; Thu, 25 Jan 2024 13:42:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C23A23858D38 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org C23A23858D38 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::1135 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706190145; cv=none; b=LWvjlE0VtO21Jn6fzlGTMK1lvO5fbENzWgHvaQmH9OtmoWKjE7AJKD36llvJOWlba4pXWuWgu5y/Q+RwSFsr42qUPI0+RvRZRzhW2tQB2dybwDtYoR939NqTv0vIQhIspDbvmpQHGs9ohRRjaNFXjvYH2X4iw0P1dGGqfJpcnF0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706190145; c=relaxed/simple; bh=GyY3jz4pFYeMO1LTaot9HtTSNz0uaMVfpMVcBSXuCIo=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=irpRauA0OTtD9ekZH+Vn73BBWExTPihKlx3I0alAjzc+4sLAaQvzFrOD0ama++sbFJaPngKWI24yP1clbCml3c7ePMKRKzrlQSA78bPr0po7C223QtLWgcmnqgHssc4AaqzL1uPAXL80DvvePaljvWR10n7rF63t65VPQskNrFA= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-yw1-x1135.google.com with SMTP id 00721157ae682-5ffdf06e009so43117187b3.3 for ; Thu, 25 Jan 2024 05:42:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706190142; x=1706794942; darn=sourceware.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=GkxKmDKCdfTXEJCaNOxhqDUWWX9oFM272Bi40cW+W48=; b=Yfc29bwiQp4Axz77p4IxhEEh0j7iU5DPmADiJ2vHytnZ0GY3+TWi2hGV6wpq495X0V SZ3Uv+bQb9dZpycQCrClwUKh1FyS/cC1z1AeSkyptgtFdBXD5qr2pTlFC1srF0lC1k3e zKY1/03lp9BQCW1jZA1Bk6LrUOfdpOWQP6H/pDx0qEgYps2lUKwpV5P8hhP9odCF0nB6 YVxo7hAEegdshwUzfrl6FdOVrbaL9WVPTIl9LxMG48CH0H7x/Rx2ac1UNJRLyt7Q6Bwr lWXwWCx/aIltOuIcPwFpYcKNfrHDXqiBWQRJbwR6MLgXyMF5tsYEveGGJPioGlE3Rthe 0F9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706190142; x=1706794942; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=GkxKmDKCdfTXEJCaNOxhqDUWWX9oFM272Bi40cW+W48=; b=NKvzoEJh7hhuWwgMtewiPufP+6IZebjycv784hsHjHpxzf9HfQPspfArJ8A8Yx0d/R jwih6/7Ee/twRVsGCc7EcH7UL4GuEtLu5PW36FdLEFZTzPRgm6kVf9oM6JdHgIi+6v1c 5yCYSWWpUvEZN0QX5pirQwsL0wSJCajELFI5pgurwYJtw/o2WLOx7upI0gZrvcJsh3hg bQuO950ifvsPHvtlCgYt7BoKdkdYXMBSBFhyFVyVMxIsOHKewBg+xFs3/of6Caj2jl8q Tnnm+WeaaHcSFqdl7T5MBLn+8pQKSLjhBUML5sk6NT7Jb9Lqd76CDJntgp69UrNhEcC5 4JDA== X-Gm-Message-State: AOJu0YxIOEnYqPmTenBkiLbL/IpqzRf9R3aLRXuqgTrWl1Cx8vKAXuqI kqPWKEox1/mVyKK/zIHV1bVLuvU5TCpJV8J814kwdwtUdMCX6ndKRLBNnJ9wGg5irYofv7ThVrr e7xwzBrzxgjkYArcOMf4YxRVupYQ= X-Google-Smtp-Source: AGHT+IFFkhlO7XdqhbuS7f2HMYT6AHwp8Z3guCzx9EGmHijumWkV2WZYOpXxJoqntcVrem3K+WiKC540Aax3dKx5cBM= X-Received: by 2002:a05:6902:2806:b0:dc2:65e1:706 with SMTP id ed6-20020a056902280600b00dc265e10706mr674168ybb.74.1706190141953; Thu, 25 Jan 2024 05:42:21 -0800 (PST) MIME-Version: 1.0 References: <20240124225103.219222-1-hjl.tools@gmail.com> <7ea5e547-cdd1-4782-add8-c5c1c0511ad3@redhat.com> In-Reply-To: <7ea5e547-cdd1-4782-add8-c5c1c0511ad3@redhat.com> From: "H.J. Lu" Date: Thu, 25 Jan 2024 05:41:45 -0800 Message-ID: Subject: Re: [PATCH] ld: Improve --fatal-warnings for unknown command-line options To: Nick Clifton Cc: Jan Beulich , Fangrui Song , binutils@sourceware.org Content-Type: multipart/mixed; boundary="00000000000054c27c060fc5599b" X-Spam-Status: No, score=-3021.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --00000000000054c27c060fc5599b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Jan 25, 2024 at 3:32=E2=80=AFAM Nick Clifton wro= te: > > Hi H.J. > > Thanks for taking this problem on. When I qrote my RFC I had > not expected anyone to care that much... > > >>> This patch queues unknown command-line option warnings and outputs qu= eued > >>> command-line option warnings after all command-line options have been > >>> processed so that --fatal-warnings can work for unknown command-line > >>> options regardless of the order of --fatal-warnings. > >>> > >>> When --fatal-warnings is used, the linker message is changed from > >>> > >>> ld: warning: -z bad-option ignored > >>> > >>> to > >>> > >>> ld: error: unsupported option: -z bad-option > >>> > >>> The above also applies to "-z dynamic-undefined-weak" when the known > >>> "-z dynamic-undefined-weak" option is ignored. > > Patch approved - with the change suggested by Fangrui: Here is the patch I am checking. I renamed pr31289-*.d to fatal-warnings-*.d. > >> Thanks for the patch. For newer tests, I wonder whether a descriptive > >> short name (in this case, fatal-warnings-*[ab].s) would be more > >> suitable than PR. > > Cheers > Nick > > > Thanks. --=20 H.J. --00000000000054c27c060fc5599b Content-Type: text/x-patch; charset="US-ASCII"; name="0001-ld-Improve-fatal-warnings-for-unknown-command-line-o.patch" Content-Disposition: attachment; filename="0001-ld-Improve-fatal-warnings-for-unknown-command-line-o.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lrt9g61w0 RnJvbSA1ZTQwYjdhMmZkYmIzNGZmYzY1MmIxNzk3MWRkMWM5MGRiMmNmNTY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6 IFdlZCwgMjQgSmFuIDIwMjQgMTM6NTM6MTEgLTA4MDAKU3ViamVjdDogW1BBVENIXSBsZDogSW1w cm92ZSAtLWZhdGFsLXdhcm5pbmdzIGZvciB1bmtub3duIGNvbW1hbmQtbGluZSBvcHRpb25zCgpU aGVyZSBhcmUgMiBwcm9ibGVtcyB3aXRoIC0tZmF0YWwtd2FybmluZ3MgZm9yIHVua25vd24gY29t bWFuZC1saW5lCm9wdGlvbnM6CgoxLiAtLWZhdGFsLXdhcm5pbmdzIGRvZXNuJ3QgdHJpZ2dlciBh biBlcnJvciBmb3IgYW4gdW5rbm93biBjb21tYW5kLWxpbmUKb3B0aW9uIHdoZW4gLS1mYXRhbC13 YXJuaW5ncyBpcyB0aGUgbGFzdCBjb21tYW5kLWxpbmUgb3B0aW9uLgoyLiBXaGVuIC0tZmF0YWwt d2FybmluZ3MgdHJpZ2dlcnMgYW4gZXJyb3IgZm9yIGFuIHVua25vd24gY29tbWFuZC1saW5lCm9w dGlvbiwgdGhlIG1lc3NhZ2Ugc2F5cyB0aGF0IHRoZSB1bmtub3duIGNvbW1hbmQtbGluZSBvcHRp b24gaXMgaWdub3JlZC4KClRoaXMgcGF0Y2ggcXVldWVzIHVua25vd24gY29tbWFuZC1saW5lIG9w dGlvbiB3YXJuaW5ncyBhbmQgb3V0cHV0cyBxdWV1ZWQKY29tbWFuZC1saW5lIG9wdGlvbiB3YXJu aW5ncyBhZnRlciBhbGwgY29tbWFuZC1saW5lIG9wdGlvbnMgaGF2ZSBiZWVuCnByb2Nlc3NlZCBz byB0aGF0IC0tZmF0YWwtd2FybmluZ3MgY2FuIHdvcmsgZm9yIHVua25vd24gY29tbWFuZC1saW5l Cm9wdGlvbnMgcmVnYXJkbGVzcyBvZiB0aGUgb3JkZXIgb2YgLS1mYXRhbC13YXJuaW5ncy4KCldo ZW4gLS1mYXRhbC13YXJuaW5ncyBpcyB1c2VkLCB0aGUgbGlua2VyIG1lc3NhZ2UgaXMgY2hhbmdl ZCBmcm9tCgpsZDogd2FybmluZzogLXogYmFkLW9wdGlvbiBpZ25vcmVkCgp0bwoKbGQ6IGVycm9y OiB1bnN1cHBvcnRlZCBvcHRpb246IC16IGJhZC1vcHRpb24KClRoZSBhYm92ZSBhbHNvIGFwcGxp ZXMgdG8gIi16IGR5bmFtaWMtdW5kZWZpbmVkLXdlYWsiIHdoZW4gdGhlIGtub3duCiIteiBkeW5h bWljLXVuZGVmaW5lZC13ZWFrIiBvcHRpb24gaXMgaWdub3JlZC4KCglQUiBsZC8zMTI4OQoJKiBs ZGVsZi5jIChsZGVsZl9hZnRlcl9wYXJzZSk6IFVzZSBxdWV1ZV91bmtub3duX2NtZGxpbmVfd2Fy bmluZwoJdG8gd2FybiB0aGUgaWdub3JlZCAteiBkeW5hbWljLXVuZGVmaW5lZC13ZWFrIG9wdGlv bi4KCSogbGRtYWluLmMgKG1haW4pOiBDYWxsIG91dHB1dF91bmtub3duX2NtZGxpbmVfd2Fybmlu Z3MgYWZ0ZXIKCWNhbGxpbmcgbGRlbXVsX2FmdGVyX3BhcnNlLgoJKiBsZG1pc2MuYyAoQ01ETElO RV9XQVJOSU5HX1NJWkUpOiBOZXcuCgkoY21kbGluZV93YXJuaW5nX2xpc3QpOiBMaWtld2lzZS4K CShjbWRsaW5lX3dhcm5pbmdfaGVhZCk6IExpa2V3aXNlLgoJKGNtZGxpbmVfd2FybmluZ190YWls KTogTGlrZXdpc2UuCgkocXVldWVfdW5rbm93bl9jbWRsaW5lX3dhcm5pbmcpOiBMaWtld2lzZS4K CShvdXRwdXRfdW5rbm93bl9jbWRsaW5lX3dhcm5pbmdzKTogTGlrZXdpc2UuCgkqIGxkbWlzYy5o IChxdWV1ZV91bmtub3duX2NtZGxpbmVfd2FybmluZyk6IExpa2V3aXNlLgoJKG91dHB1dF91bmtu b3duX2NtZGxpbmVfd2FybmluZ3MpOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2VsZi5lbSAoZ2xk JHtFTVVMQVRJT05fTkFNRX1faGFuZGxlX29wdGlvbik6IFVzZQoJcXVldWVfdW5rbm93bl9jbWRs aW5lX3dhcm5pbmcgdG8gd2FybiB1bmtub3duIC16IG9wdGlvbi4KCSogdGVzdHN1aXRlL2xkLWVs Zi9mYXRhbC13YXJuaW5ncy0xYS5kOiBOZXcgZmlsZS4KCSogdGVzdHN1aXRlL2xkLWVsZi9mYXRh bC13YXJuaW5ncy0xYi5kOiBMaWtld2lzZS4KCSogdGVzdHN1aXRlL2xkLWVsZi9mYXRhbC13YXJu aW5ncy0yYS5kOiBMaWtld2lzZS4KCSogdGVzdHN1aXRlL2xkLWVsZi9mYXRhbC13YXJuaW5ncy0y Yi5kOiBMaWtld2lzZS4KCSogdGVzdHN1aXRlL2xkLWVsZi9mYXRhbC13YXJuaW5ncy0zYS5kOiBM aWtld2lzZS4KCSogdGVzdHN1aXRlL2xkLWVsZi9mYXRhbC13YXJuaW5ncy0zYi5kOiBMaWtld2lz ZS4KCSogdGVzdHN1aXRlL2xkLWVsZi9mYXRhbC13YXJuaW5ncy00YS5kOiBMaWtld2lzZS4KCSog dGVzdHN1aXRlL2xkLWVsZi9mYXRhbC13YXJuaW5ncy00Yi5kOiBMaWtld2lzZS4KLS0tCiBsZC9l bXVsdGVtcGwvZWxmLmVtICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogbGQvbGRlbGYuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGxkL2xkbWFpbi5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAyICsKIGxkL2xkbWlzYy5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IDc1ICsrKysrKysrKysrKysrKysrKysrKysrKysKIGxkL2xkbWlzYy5oICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICsKIGxkL3Rlc3RzdWl0ZS9sZC1lbGYvZmF0 YWwtd2FybmluZ3MtMWEuZCB8ICA2ICsrCiBsZC90ZXN0c3VpdGUvbGQtZWxmL2ZhdGFsLXdhcm5p bmdzLTFiLmQgfCAgNiArKwogbGQvdGVzdHN1aXRlL2xkLWVsZi9mYXRhbC13YXJuaW5ncy0yYS5k IHwgIDYgKysKIGxkL3Rlc3RzdWl0ZS9sZC1lbGYvZmF0YWwtd2FybmluZ3MtMmIuZCB8ICA2ICsr CiBsZC90ZXN0c3VpdGUvbGQtZWxmL2ZhdGFsLXdhcm5pbmdzLTNhLmQgfCAgNiArKwogbGQvdGVz dHN1aXRlL2xkLWVsZi9mYXRhbC13YXJuaW5ncy0zYi5kIHwgIDYgKysKIGxkL3Rlc3RzdWl0ZS9s ZC1lbGYvZmF0YWwtd2FybmluZ3MtNGEuZCB8ICA2ICsrCiBsZC90ZXN0c3VpdGUvbGQtZWxmL2Zh dGFsLXdhcm5pbmdzLTRiLmQgfCAgNiArKwogMTMgZmlsZXMgY2hhbmdlZCwgMTI5IGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGQvdGVzdHN1aXRlL2xk LWVsZi9mYXRhbC13YXJuaW5ncy0xYS5kCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGQvdGVzdHN1aXRl L2xkLWVsZi9mYXRhbC13YXJuaW5ncy0xYi5kCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGQvdGVzdHN1 aXRlL2xkLWVsZi9mYXRhbC13YXJuaW5ncy0yYS5kCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGQvdGVz dHN1aXRlL2xkLWVsZi9mYXRhbC13YXJuaW5ncy0yYi5kCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGQv dGVzdHN1aXRlL2xkLWVsZi9mYXRhbC13YXJuaW5ncy0zYS5kCiBjcmVhdGUgbW9kZSAxMDA2NDQg bGQvdGVzdHN1aXRlL2xkLWVsZi9mYXRhbC13YXJuaW5ncy0zYi5kCiBjcmVhdGUgbW9kZSAxMDA2 NDQgbGQvdGVzdHN1aXRlL2xkLWVsZi9mYXRhbC13YXJuaW5ncy00YS5kCiBjcmVhdGUgbW9kZSAx MDA2NDQgbGQvdGVzdHN1aXRlL2xkLWVsZi9mYXRhbC13YXJuaW5ncy00Yi5kCgpkaWZmIC0tZ2l0 IGEvbGQvZW11bHRlbXBsL2VsZi5lbSBiL2xkL2VtdWx0ZW1wbC9lbGYuZW0KaW5kZXggZjU1MTIy NWNkYWMuLjU1YTg3MGY3ZDJkIDEwMDY0NAotLS0gYS9sZC9lbXVsdGVtcGwvZWxmLmVtCisrKyBi L2xkL2VtdWx0ZW1wbC9lbGYuZW0KQEAgLTg3Myw3ICs4NzMsNyBAQCBmaQogCiBmcmFnbWVudCA8 PEVPRgogICAgICAgZWxzZQotCWVpbmZvIChfKCIlUDogd2FybmluZzogLXogJXMgaWdub3JlZFxu IiksIG9wdGFyZyk7CisJcXVldWVfdW5rbm93bl9jbWRsaW5lX3dhcm5pbmcgKCIteiAlcyIsIG9w dGFyZyk7CiAgICAgICBicmVhazsKIEVPRgogCmRpZmYgLS1naXQgYS9sZC9sZGVsZi5jIGIvbGQv bGRlbGYuYwppbmRleCAyODUyODUxZGNkNS4uMDQwNDVhY2JmM2QgMTAwNjQ0Ci0tLSBhL2xkL2xk ZWxmLmMKKysrIGIvbGQvbGRlbGYuYwpAQCAtNzQsNyArNzQsNyBAQCBsZGVsZl9hZnRlcl9wYXJz ZSAodm9pZCkKICAgICAgICYmIGxpbmtfaW5mby5ub2ludGVycCkKICAgICB7CiAgICAgICBpZiAo bGlua19pbmZvLmR5bmFtaWNfdW5kZWZpbmVkX3dlYWsgPiAwKQotCWVpbmZvIChfKCIlUDogd2Fy bmluZzogLXogZHluYW1pYy11bmRlZmluZWQtd2VhayBpZ25vcmVkXG4iKSk7CisJcXVldWVfdW5r bm93bl9jbWRsaW5lX3dhcm5pbmcgKCIteiBkeW5hbWljLXVuZGVmaW5lZC13ZWFrIik7CiAgICAg ICBsaW5rX2luZm8uZHluYW1pY191bmRlZmluZWRfd2VhayA9IDA7CiAgICAgfQogCmRpZmYgLS1n aXQgYS9sZC9sZG1haW4uYyBiL2xkL2xkbWFpbi5jCmluZGV4IGU5MGMyMDIxYjMzLi4zYjRhZDE0 NGEyZiAxMDA2NDQKLS0tIGEvbGQvbGRtYWluLmMKKysrIGIvbGQvbGRtYWluLmMKQEAgLTQ3OSw2 ICs0NzksOCBAQCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAKICAgbGRlbXVsX2FmdGVy X3BhcnNlICgpOwogCisgIG91dHB1dF91bmtub3duX2NtZGxpbmVfd2FybmluZ3MgKCk7CisKICAg aWYgKGNvbmZpZy5tYXBfZmlsZW5hbWUpCiAgICAgewogICAgICAgaWYgKHN0cmNtcCAoY29uZmln Lm1hcF9maWxlbmFtZSwgIi0iKSA9PSAwKQpkaWZmIC0tZ2l0IGEvbGQvbGRtaXNjLmMgYi9sZC9s ZG1pc2MuYwppbmRleCAzYzg2MmVhNDM3YS4uMTgwYjI0YjM0NDggMTAwNjQ0Ci0tLSBhL2xkL2xk bWlzYy5jCisrKyBiL2xkL2xkbWlzYy5jCkBAIC02MjAsNiArNjIwLDgxIEBAIGVpbmZvIChjb25z dCBjaGFyICpmbXQsIC4uLikKICAgZmZsdXNoIChzdGRlcnIpOwogfQogCisvKiBUaGUgYnVmZmVy IHNpemUgZm9yIGVhY2ggY29tbWFuZC1saW5lIG9wdGlvbiB3YXJuaW5nLiAgKi8KKyNkZWZpbmUg Q01ETElORV9XQVJOSU5HX1NJWkUJMjU2CisKKy8qIEEgbGlua2VkIGxpc3Qgb2YgY29tbWFuZC1s aW5lIG9wdGlvbiB3YXJuaW5ncy4gICovCisKK3N0cnVjdCBjbWRsaW5lX3dhcm5pbmdfbGlzdAor eworICBzdHJ1Y3QgY21kbGluZV93YXJuaW5nX2xpc3QgKm5leHQ7CisgIGNoYXIgKndhcm5pbmc7 Cit9OworCisvKiBUaGUgaGVhZCBvZiB0aGUgbGlua2VkIGxpc3Qgb2YgY29tbWFuZC1saW5lIG9w dGlvbiB3YXJuaW5ncy4gICovCitzdGF0aWMgc3RydWN0IGNtZGxpbmVfd2FybmluZ19saXN0ICpj bWRsaW5lX3dhcm5pbmdfaGVhZCA9IE5VTEw7CisKKy8qIFRoZSB0YWlsIG9mIHRoZSBsaW5rZWQg bGlzdCBvZiBjb21tYW5kLWxpbmUgb3B0aW9uIHdhcm5pbmdzLiAgKi8KK3N0YXRpYyBzdHJ1Y3Qg Y21kbGluZV93YXJuaW5nX2xpc3QgKipjbWRsaW5lX3dhcm5pbmdfdGFpbAorICA9ICZjbWRsaW5l X3dhcm5pbmdfaGVhZDsKKworLyogUXVldWUgYW4gdW5rbm93biBjb21tYW5kLWxpbmUgb3B0aW9u IHdhcm5pbmcuICAqLworCit2b2lkCitxdWV1ZV91bmtub3duX2NtZGxpbmVfd2FybmluZyAoY29u c3QgY2hhciAqZm10LCAuLi4pCit7CisgIHZhX2xpc3QgYXJnOworICBzdHJ1Y3QgY21kbGluZV93 YXJuaW5nX2xpc3QgKndhcm5pbmdfcHRyCisgICAgPSB4bWFsbG9jIChzaXplb2YgKCp3YXJuaW5n X3B0cikpOworICB3YXJuaW5nX3B0ci0+d2FybmluZyA9IHhtYWxsb2MgKENNRExJTkVfV0FSTklO R19TSVpFKTsKKyAgd2FybmluZ19wdHItPm5leHQgPSBOVUxMOworICBpbnQgd3JpdHRlbjsKKwor ICB2YV9zdGFydCAoYXJnLCBmbXQpOworICB3cml0dGVuID0gdnNucHJpbnRmICh3YXJuaW5nX3B0 ci0+d2FybmluZywgQ01ETElORV9XQVJOSU5HX1NJWkUsIGZtdCwKKwkJICAgICAgIGFyZyk7Cisg IGlmICh3cml0dGVuIDwgMCB8fCB3cml0dGVuID49IENNRExJTkVfV0FSTklOR19TSVpFKQorICAg IHsKKyAgICAgIC8qIElmIHZzbnByaW50ZiBmYWlscyBvciB0cnVuY2F0ZXMsIG91dHB1dCB0aGUg d2FybmluZyBkaXJlY3RseS4gICovCisgICAgICBmZmx1c2ggKHN0ZG91dCk7CisgICAgICB2YV9z dGFydCAoYXJnLCBmbXQpOworICAgICAgdmZpbmZvIChzdGRlcnIsIGZtdCwgYXJnLCB0cnVlKTsK KyAgICAgIGZmbHVzaCAoc3RkZXJyKTsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICAqY21k bGluZV93YXJuaW5nX3RhaWwgPSB3YXJuaW5nX3B0cjsKKyAgICAgIGNtZGxpbmVfd2FybmluZ190 YWlsID0gJndhcm5pbmdfcHRyLT5uZXh0OworICAgIH0KKyAgdmFfZW5kIChhcmcpOworfQorCisv KiBPdXRwdXQgcXVldWVkIHVua25vd24gY29tbWFuZC1saW5lIG9wdGlvbiB3YXJuaW5ncy4gICov CisKK3ZvaWQKK291dHB1dF91bmtub3duX2NtZGxpbmVfd2FybmluZ3MgKHZvaWQpCit7CisgIHN0 cnVjdCBjbWRsaW5lX3dhcm5pbmdfbGlzdCAqbGlzdCA9IGNtZGxpbmVfd2FybmluZ19oZWFkOwor ICBzdHJ1Y3QgY21kbGluZV93YXJuaW5nX2xpc3QgKm5leHQ7CisgIGlmIChsaXN0ID09IE5VTEwp CisgICAgcmV0dXJuOworCisgIGZmbHVzaCAoc3Rkb3V0KTsKKworICBmb3IgKDsgbGlzdCAhPSBO VUxMOyBsaXN0ID0gbmV4dCkKKyAgICB7CisgICAgICBuZXh0ID0gbGlzdC0+bmV4dDsKKyAgICAg IGlmIChjb25maWcuZmF0YWxfd2FybmluZ3MpCisJZWluZm8gKF8oIiVQOiBlcnJvcjogdW5zdXBw b3J0ZWQgb3B0aW9uOiAlc1xuIiksIGxpc3QtPndhcm5pbmcpOworICAgICAgZWxzZQorCWVpbmZv IChfKCIlUDogd2FybmluZzogJXMgaWdub3JlZFxuIiksIGxpc3QtPndhcm5pbmcpOworICAgICAg ZnJlZSAobGlzdC0+d2FybmluZyk7CisgICAgICBmcmVlIChsaXN0KTsKKyAgICB9CisKKyAgZmZs dXNoIChzdGRlcnIpOworfQorCiB2b2lkCiBpbmZvX2Fzc2VydCAoY29uc3QgY2hhciAqZmlsZSwg dW5zaWduZWQgaW50IGxpbmUpCiB7CmRpZmYgLS1naXQgYS9sZC9sZG1pc2MuaCBiL2xkL2xkbWlz Yy5oCmluZGV4IGU4Yjk4MmZlMzI0Li4yMDI4OTEyN2MwYSAxMDA2NDQKLS0tIGEvbGQvbGRtaXNj LmgKKysrIGIvbGQvbGRtaXNjLmgKQEAgLTI3LDYgKzI3LDggQEAgZXh0ZXJuIHZvaWQgbWluZm8g KGNvbnN0IGNoYXIgKiwgLi4uKTsKIGV4dGVybiB2b2lkIGluZm9fbXNnIChjb25zdCBjaGFyICos IC4uLik7CiBleHRlcm4gdm9pZCBsZmluZm8gKEZJTEUgKiwgY29uc3QgY2hhciAqLCAuLi4pOwog ZXh0ZXJuIHZvaWQgaW5mb19hc3NlcnQgKGNvbnN0IGNoYXIgKiwgdW5zaWduZWQgaW50KTsKK2V4 dGVybiB2b2lkIHF1ZXVlX3Vua25vd25fY21kbGluZV93YXJuaW5nIChjb25zdCBjaGFyICosIC4u Lik7CitleHRlcm4gdm9pZCBvdXRwdXRfdW5rbm93bl9jbWRsaW5lX3dhcm5pbmdzICh2b2lkKTsK IAogI2RlZmluZSBBU1NFUlQoeCkgXAogZG8geyBpZiAoISh4KSkgaW5mb19hc3NlcnQoX19GSUxF X18sX19MSU5FX18pOyB9IHdoaWxlICgwKQpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLWVs Zi9mYXRhbC13YXJuaW5ncy0xYS5kIGIvbGQvdGVzdHN1aXRlL2xkLWVsZi9mYXRhbC13YXJuaW5n cy0xYS5kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kNjY5MzkyZGI4 OAotLS0gL2Rldi9udWxsCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvZmF0YWwtd2FybmluZ3Mt MWEuZApAQCAtMCwwICsxLDYgQEAKKyNQUiBsZC8zMTI4OQorI3NvdXJjZTogcHIyMjI2OS5zCisj bGQ6IC1waWUgLS1uby1keW5hbWljLWxpbmtlciAtLWZhdGFsLXdhcm5pbmdzIC16IGR5bmFtaWMt dW5kZWZpbmVkLXdlYWsKKyNyZWFkZWxmOiAtciAteCAuZGF0YS5yZWwucm8KKyNlcnJvcjogdW5z dXBwb3J0ZWQgb3B0aW9uOiAteiBkeW5hbWljLXVuZGVmaW5lZC13ZWFrCisjdGFyZ2V0OiAqLSot bGludXgqICotKi1nbnUqICotKi1uYWNsKiBhcm0qLSotdWNsaW51eGZkcGljZWFiaQpkaWZmIC0t Z2l0IGEvbGQvdGVzdHN1aXRlL2xkLWVsZi9mYXRhbC13YXJuaW5ncy0xYi5kIGIvbGQvdGVzdHN1 aXRlL2xkLWVsZi9mYXRhbC13YXJuaW5ncy0xYi5kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi42NDRlOTZiNjcwNwotLS0gL2Rldi9udWxsCisrKyBiL2xkL3Rlc3RzdWl0 ZS9sZC1lbGYvZmF0YWwtd2FybmluZ3MtMWIuZApAQCAtMCwwICsxLDYgQEAKKyNQUiBsZC8zMTI4 OQorI3NvdXJjZTogcHIyMjI2OS5zCisjbGQ6IC1waWUgLS1uby1keW5hbWljLWxpbmtlciAteiBk eW5hbWljLXVuZGVmaW5lZC13ZWFrIC0tZmF0YWwtd2FybmluZ3MKKyNyZWFkZWxmOiAtciAteCAu ZGF0YS5yZWwucm8KKyNlcnJvcjogdW5zdXBwb3J0ZWQgb3B0aW9uOiAteiBkeW5hbWljLXVuZGVm aW5lZC13ZWFrCisjdGFyZ2V0OiAqLSotbGludXgqICotKi1nbnUqICotKi1uYWNsKiBhcm0qLSot dWNsaW51eGZkcGljZWFiaQpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLWVsZi9mYXRhbC13 YXJuaW5ncy0yYS5kIGIvbGQvdGVzdHN1aXRlL2xkLWVsZi9mYXRhbC13YXJuaW5ncy0yYS5kCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41YzQ2ZjQzMDBjNgotLS0gL2Rl di9udWxsCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvZmF0YWwtd2FybmluZ3MtMmEuZApAQCAt MCwwICsxLDYgQEAKKyNQUiBsZC8zMTI4OQorI3NvdXJjZTogc3RhcnQucworI2xkOiAteiBiYWQt b3B0aW9uMSAteiBiYWQtb3B0aW9uMgorI3dhcm5pbmc6IC16IGJhZC1vcHRpb24xIGlnbm9yZWQK KyN4ZmFpbDogW2lzX2dlbmVyaWNdCisjIGdlbmVyaWMgbGlua2VyIHRhcmdldHMgZG9uJ3Qgc3Vw cG9ydCAteiBvcHRpb25zLgpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLWVsZi9mYXRhbC13 YXJuaW5ncy0yYi5kIGIvbGQvdGVzdHN1aXRlL2xkLWVsZi9mYXRhbC13YXJuaW5ncy0yYi5kCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41ZmE5NGU0NjdhZgotLS0gL2Rl di9udWxsCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvZmF0YWwtd2FybmluZ3MtMmIuZApAQCAt MCwwICsxLDYgQEAKKyNQUiBsZC8zMTI4OQorI3NvdXJjZTogc3RhcnQucworI2xkOiAteiBiYWQt b3B0aW9uMSAteiBiYWQtb3B0aW9uMgorI3dhcm5pbmc6IC16IGJhZC1vcHRpb24yIGlnbm9yZWQK KyN4ZmFpbDogW2lzX2dlbmVyaWNdCisjIGdlbmVyaWMgbGlua2VyIHRhcmdldHMgZG9uJ3Qgc3Vw cG9ydCAteiBvcHRpb25zLgpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLWVsZi9mYXRhbC13 YXJuaW5ncy0zYS5kIGIvbGQvdGVzdHN1aXRlL2xkLWVsZi9mYXRhbC13YXJuaW5ncy0zYS5kCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hMzc3YjczOGIxZAotLS0gL2Rl di9udWxsCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvZmF0YWwtd2FybmluZ3MtM2EuZApAQCAt MCwwICsxLDYgQEAKKyNQUiBsZC8zMTI4OQorI3NvdXJjZTogc3RhcnQucworI2xkOiAtLWZhdGFs LXdhcm5pbmdzIC16IGJhZC1vcHRpb24xIC16IGJhZC1vcHRpb24yCisjZXJyb3I6IHVuc3VwcG9y dGVkIG9wdGlvbjogLXogYmFkLW9wdGlvbjEKKyN4ZmFpbDogW2lzX2dlbmVyaWNdCisjIGdlbmVy aWMgbGlua2VyIHRhcmdldHMgZG9uJ3Qgc3VwcG9ydCAteiBvcHRpb25zLgpkaWZmIC0tZ2l0IGEv bGQvdGVzdHN1aXRlL2xkLWVsZi9mYXRhbC13YXJuaW5ncy0zYi5kIGIvbGQvdGVzdHN1aXRlL2xk LWVsZi9mYXRhbC13YXJuaW5ncy0zYi5kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi44N2VhMjg2ZDc0OAotLS0gL2Rldi9udWxsCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC1l bGYvZmF0YWwtd2FybmluZ3MtM2IuZApAQCAtMCwwICsxLDYgQEAKKyNQUiBsZC8zMTI4OQorI3Nv dXJjZTogc3RhcnQucworI2xkOiAtLWZhdGFsLXdhcm5pbmdzIC16IGJhZC1vcHRpb24xIC16IGJh ZC1vcHRpb24yCisjZXJyb3I6IHVuc3VwcG9ydGVkIG9wdGlvbjogLXogYmFkLW9wdGlvbjIKKyN4 ZmFpbDogW2lzX2dlbmVyaWNdCisjIGdlbmVyaWMgbGlua2VyIHRhcmdldHMgZG9uJ3Qgc3VwcG9y dCAteiBvcHRpb25zLgpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLWVsZi9mYXRhbC13YXJu aW5ncy00YS5kIGIvbGQvdGVzdHN1aXRlL2xkLWVsZi9mYXRhbC13YXJuaW5ncy00YS5kCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40Njg1ZTM4NzdkNgotLS0gL2Rldi9u dWxsCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvZmF0YWwtd2FybmluZ3MtNGEuZApAQCAtMCww ICsxLDYgQEAKKyNQUiBsZC8zMTI4OQorI3NvdXJjZTogc3RhcnQucworI2xkOiAteiBiYWQtb3B0 aW9uMSAteiBiYWQtb3B0aW9uMiAtLWZhdGFsLXdhcm5pbmdzCisjZXJyb3I6IHVuc3VwcG9ydGVk IG9wdGlvbjogLXogYmFkLW9wdGlvbjEKKyN4ZmFpbDogW2lzX2dlbmVyaWNdCisjIGdlbmVyaWMg bGlua2VyIHRhcmdldHMgZG9uJ3Qgc3VwcG9ydCAteiBvcHRpb25zLgpkaWZmIC0tZ2l0IGEvbGQv dGVzdHN1aXRlL2xkLWVsZi9mYXRhbC13YXJuaW5ncy00Yi5kIGIvbGQvdGVzdHN1aXRlL2xkLWVs Zi9mYXRhbC13YXJuaW5ncy00Yi5kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi42ZmMyMTg1ZjEyNgotLS0gL2Rldi9udWxsCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC1lbGYv ZmF0YWwtd2FybmluZ3MtNGIuZApAQCAtMCwwICsxLDYgQEAKKyNQUiBsZC8zMTI4OQorI3NvdXJj ZTogc3RhcnQucworI2xkOiAteiBiYWQtb3B0aW9uMSAteiBiYWQtb3B0aW9uMiAtLWZhdGFsLXdh cm5pbmdzCisjZXJyb3I6IHVuc3VwcG9ydGVkIG9wdGlvbjogLXogYmFkLW9wdGlvbjIKKyN4ZmFp bDogW2lzX2dlbmVyaWNdCisjIGdlbmVyaWMgbGlua2VyIHRhcmdldHMgZG9uJ3Qgc3VwcG9ydCAt eiBvcHRpb25zLgotLSAKMi40My4wCgo= --00000000000054c27c060fc5599b--