From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-vs1-xe34.google.com (mail-vs1-xe34.google.com [IPv6:2607:f8b0:4864:20::e34]) by sourceware.org (Postfix) with ESMTPS id B593D3858D1E for ; Wed, 19 Apr 2023 03:57:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B593D3858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-vs1-xe34.google.com with SMTP id p1so1316437vsi.6 for ; Tue, 18 Apr 2023 20:57:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1681876632; x=1684468632; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=RpZMAlRTUNSTG49t+qAkIjpy+SipW2CM5vKcfkfHHhU=; b=n2HAVzmzqI33L6sqFKUD9CiTgKOgsRH9KOlgCRHUM41ERbDO/rNcJeB9yo29XgJfNK ZO52iN2GELXurkBjdLZAdSFgPa7h1dC1TqdSK0VVrDfi477erJgpsuhHLvip7Jnf5wRB nxZvLOCjANjcgJyrO2CmEODryi4WnlzBMqIBsnCeIfoXbdARGlIPRoana8piftG4SReL gIWuOYfzKIOpG0TMrfw4vvyDYGZo8UQ5yldyfP0xMUXrRkEFW79zX78HP3zGtvAIS1B7 eniCInCRERc8tKEbobnFW5TLP3PZjA4HGIlDFsVAqNecz3pEx9MrMhUBG9PmOYZvjdJU 0TLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681876632; x=1684468632; 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=RpZMAlRTUNSTG49t+qAkIjpy+SipW2CM5vKcfkfHHhU=; b=UX7u+otZnq9U7FBlFwm1xI2OdQ6vI6/8GoA+SV/U8NWqRR6cHyXJtOxhjH5oNBZG85 RI2jJqorPFg+8lbu59khbHKQyAIZQzXLPG+RMvLbn7LrZceo9jI2lf6HQkHGJnETmj4+ FAjyrMWF4SczewcmeGIDIHHpL9fJLdu/DsNSfU6T4tlYs1LNiHnQd2Sw9YubbgvOWi2Q Hb8QesuvwReSZWUg+G87/r+30KKcf+plLDe/TCCBYii+u86wn3qHZ+2Gb0mbsgtzn/xB 71k0RMJIop8ZL+3Cq8crF1jGErPEAN0My3TftNNYslCFCzPXLXQQi6q/WMvubgZai1ec WbEA== X-Gm-Message-State: AAQBX9cTtEABoJZffznSESheGR1SZJvN7ZNguZIAtUluYaPZV/inXT+D 579FSxi5QcXKpYHFbJFLKqxvCVcOzX6aNoWeNpo= X-Google-Smtp-Source: AKy350Zs0QuZ8juFcwNeIbH6LbVDZc2f0JqAKkxgQQrP8bL25yltzDxQPejOfF9sxNKHMNiUXAdeSel+m9sO1Vx/DQU= X-Received: by 2002:a67:fe59:0:b0:42e:41d9:4ea8 with SMTP id m25-20020a67fe59000000b0042e41d94ea8mr5697301vsr.9.1681876631922; Tue, 18 Apr 2023 20:57:11 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Kito Cheng Date: Wed, 19 Apr 2023 11:57:00 +0800 Message-ID: Subject: Re: [PATCH] RISC-V: Update multilib-generator to handle V To: Palmer Dabbelt Cc: gcc-patches@gcc.gnu.org Content-Type: multipart/mixed; boundary="0000000000003497b305f9a86b4f" X-Spam-Status: No, score=-8.9 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: --0000000000003497b305f9a86b4f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Write a primary version for that, did you mind giving it a try? The basic idea is to select multilib only by ABI, so that we don't need to bother with endless multilib reuse cases... On Wed, Apr 19, 2023 at 9:38=E2=80=AFAM Kito Cheng w= rote: > > OK, thanks, I know what the problem is, I tried rv64 but didn't try > rv32, I have another fix in my mind, and will post another fix soon. > > On Wed, Apr 19, 2023 at 9:29=E2=80=AFAM Palmer Dabbelt wrote: > > > > On Tue, 18 Apr 2023 18:26:18 PDT (-0700), Kito Cheng wrote: > > > And which -march -mabi you used will got issue? > > > > > > On Wed, Apr 19, 2023 at 8:51=E2=80=AFAM Palmer Dabbelt wrote: > > >> > > >> On Tue, 18 Apr 2023 17:47:31 PDT (-0700), Kito Cheng wrote: > > >> > Do you mind shared gcc configure and the option you tried? > > >> > > >> Just riscv-gnu-toolchain with "--enbale-multilib --enable-linux". > > >> > > >> > On Wed, Apr 19, 2023 at 4:01=E2=80=AFAM Palmer Dabbelt wrote: > > >> >> > > >> >> On Tue, 18 Apr 2023 08:44:24 PDT (-0700), gcc-patches@gcc.gnu.org= wrote: > > >> >> >> Yep, if I drop the non-canonicial strings via > > >> >> >> > > >> >> >> diff --git a/gcc/config/riscv/multilib-generator b/gcc/con= fig/riscv/multilib-generator > > >> >> >> index 58b7198b243..a63a4d69c18 100755 > > >> >> >> --- a/gcc/config/riscv/multilib-generator > > >> >> >> +++ b/gcc/config/riscv/multilib-generator > > >> >> >> @@ -174,7 +174,7 @@ for cmodel in cmodels: > > >> >> >> ext_combs =3D expand_combination(ext) > > >> >> >> alts =3D sum([[x] + [x + y for y in ext_combs] for x = in [arch] + extra], []) > > >> >> >> alts =3D filter(lambda x: len(x) !=3D 0, alts) > > >> >> >> - alts =3D alts + list(map(lambda a : arch_canonicalize= (a, args.misa_spec), alts)) > > >> >> >> + alts =3D list(map(lambda a : arch_canonicalize(a, arg= s.misa_spec), alts)) > > >> >> >> > > >> >> >> # Drop duplicated entry. > > >> >> >> alts =3D unique(alts) > > >> >> >> > > >> >> >> then I can't link `-march=3Drv32imafdcv`, I need > > >> >> >> `-march=3Drv32imacv_zicsr_zve32f_zve32x_zve64x_zvl128b_zvl32b_= zvl64b`. That's > > >> >> >> kind of a headache for users to type in. > > >> >> > > > >> >> > Yes, that's a headache for users, but arch string canonicalizat= ion is > > >> >> > hiddened at the process, > > >> >> > so the user could still just use rv32imafdcv at compile time an= d > > >> >> > multi-lib config. > > >> >> > > > >> >> > And the driver and multilib-generator (with arch_canonicalize) = script > > >> >> > will handle those headache in the background. > > >> >> > > >> >> Sorry, I'm not exactly sure what you're trying to say. I just re= built > > >> >> GCC with this patch (and t-linux-multilib regenerated from it), i= t's not > > >> >> resolving multlibs for the short names. > > > > `-march=3Drv32imafdcv` is the broken one, > > `-march=3Drv32imacv_zicsr_zve32f_zve32x_zve64x_zvl128b_zvl32b_zvl64b` > > resolves multilibs (there's a bit more above). --0000000000003497b305f9a86b4f Content-Type: text/x-patch; charset="US-ASCII"; name="0001-RISC-V-Handle-multi-lib-path-correclty-for-linux-DRA.patch" Content-Disposition: attachment; filename="0001-RISC-V-Handle-multi-lib-path-correclty-for-linux-DRA.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lgn5v61c0 RnJvbSBhOTJjMGNiMmNlNmZhNTg5MzkzMzE1NDliZmI5ZTgxMTBlYzg2YTExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBLaXRvIENoZW5nIDxraXRvLmNoZW5nQHNpZml2ZS5jb20+CkRh dGU6IFdlZCwgMTkgQXByIDIwMjMgMTE6NTQ6NDIgKzA4MDAKU3ViamVjdDogW1BBVENIXSBSSVND LVY6IEhhbmRsZSBtdWx0aS1saWIgcGF0aCBjb3JyZWNsdHkgZm9yIGxpbnV4IFtEUkFGVF0KCi0t LQogZ2NjL2NvbW1vbi9jb25maWcvcmlzY3YvcmlzY3YtY29tbW9uLmNjIHwgMTE4ICsrKysrKysr KysrKysrKystLS0tLS0tLQogZ2NjL2NvbmZpZy9yaXNjdi9saW51eC5oICAgICAgICAgICAgICAg IHwgIDEzICsrLQogMiBmaWxlcyBjaGFuZ2VkLCA5MCBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9nY2MvY29tbW9uL2NvbmZpZy9yaXNjdi9yaXNjdi1jb21tb24u Y2MgYi9nY2MvY29tbW9uL2NvbmZpZy9yaXNjdi9yaXNjdi1jb21tb24uY2MKaW5kZXggMmZjMGY4 YmZmYzEuLmY0MGIxYjYxN2MyIDEwMDY0NAotLS0gYS9nY2MvY29tbW9uL2NvbmZpZy9yaXNjdi9y aXNjdi1jb21tb24uY2MKKysrIGIvZ2NjL2NvbW1vbi9jb25maWcvcmlzY3YvcmlzY3YtY29tbW9u LmNjCkBAIC0xNTk3LDYgKzE1OTcsNzMgQEAgcmlzY3ZfY2hlY2tfY29uZHMgKAogICByZXR1cm4g bWF0Y2hfc2NvcmUgKyBva19jb3VudCAqIDEwMDsKIH0KIAorc3RhdGljIGNvbnN0IGNoYXIgKgor cmlzY3Zfc2VsZWN0X211bHRpbGliX2J5X2FiaSAoCisgIGNvbnN0IHN0ZDo6c3RyaW5nICZyaXNj dl9jdXJyZW50X2FyY2hfc3RyLAorICBjb25zdCBzdGQ6OnN0cmluZyAmcmlzY3ZfY3VycmVudF9h Ymlfc3RyLAorICBjb25zdCByaXNjdl9zdWJzZXRfbGlzdCAqc3Vic2V0X2xpc3QsCisgIGNvbnN0 IHN0cnVjdCBzd2l0Y2hzdHIgKnN3aXRjaGVzLAorICBpbnQgbl9zd2l0Y2hlcywKKyAgY29uc3Qg c3RkOjp2ZWN0b3I8cmlzY3ZfbXVsdGlfbGliX2luZm9fdD4gJm11bHRpbGliX2luZm9zCisJKQor eworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG11bHRpbGliX2luZm9zLnNpemUgKCk7ICsraSkK KyAgICBpZiAocmlzY3ZfY3VycmVudF9hYmlfc3RyID09IG11bHRpbGliX2luZm9zW2ldLmFiaV9z dHIpCisgICAgICByZXR1cm4geHN0cmR1cCAobXVsdGlsaWJfaW5mb3NbaV0ucGF0aC5jX3N0ciAo KSk7CisKKyAgcmV0dXJuIE5VTEw7Cit9CisKKworc3RhdGljIGNvbnN0IGNoYXIgKgorcmlzY3Zf c2VsZWN0X211bHRpbGliICgKKyAgY29uc3Qgc3RkOjpzdHJpbmcgJnJpc2N2X2N1cnJlbnRfYXJj aF9zdHIsCisgIGNvbnN0IHN0ZDo6c3RyaW5nICZyaXNjdl9jdXJyZW50X2FiaV9zdHIsCisgIGNv bnN0IHJpc2N2X3N1YnNldF9saXN0ICpzdWJzZXRfbGlzdCwKKyAgY29uc3Qgc3RydWN0IHN3aXRj aHN0ciAqc3dpdGNoZXMsCisgIGludCBuX3N3aXRjaGVzLAorICBjb25zdCBzdGQ6OnZlY3Rvcjxy aXNjdl9tdWx0aV9saWJfaW5mb190PiAmbXVsdGlsaWJfaW5mb3MKKwkpCit7CisgIGludCBtYXRj aF9zY29yZSA9IDA7CisgIGludCBtYXhfbWF0Y2hfc2NvcmUgPSAwOworICBpbnQgYmVzdF9tYXRj aF9tdWx0aV9saWIgPSAtMTsKKyAgLyogVHJ5IHRvIGRlY2lzaW9uIHdoaWNoIHNldCB3ZSBzaG91 bGQgdXNlZC4gICovCisgIC8qIFdlIGhhdmUgMyBsZXZlbCBkZWNpc2lvbiB0cmVlIGhlcmUsIEFC SSwgY2hlY2sgaW5wdXQgYXJjaC9BQkkgbXVzdAorICAgICBiZSBzdXBlcnNldCBvZiBtdWx0aS1s aWIgYXJjaCwgYW5kIG90aGVyIHJlc3Qgb3B0aW9uIGNoZWNraW5nLiAgKi8KKyAgZm9yIChzaXpl X3QgaSA9IDA7IGkgPCBtdWx0aWxpYl9pbmZvcy5zaXplICgpOyArK2kpCisgICAgeworICAgICAg LyogQ2hlY2sgQUJJIGlzIHNhbWUgZmlyc3QuICAqLworICAgICAgaWYgKHJpc2N2X2N1cnJlbnRf YWJpX3N0ciAhPSBtdWx0aWxpYl9pbmZvc1tpXS5hYmlfc3RyKQorCWNvbnRpbnVlOworCisgICAg ICAvKiBGb3VuZCBhIHBvdGVudGlhbCBjb21wYXRpYmxlIG11bHRpLWxpYiBzZXR0aW5nIQorCSBD YWxjdWxhdGUgdGhlIG1hdGNoIHNjb3JlLiAgKi8KKyAgICAgIG1hdGNoX3Njb3JlID0gc3Vic2V0 X2xpc3QtPm1hdGNoX3Njb3JlIChtdWx0aWxpYl9pbmZvc1tpXS5zdWJzZXRfbGlzdCk7CisKKyAg ICAgIC8qIENoZWNraW5nIG90aGVyIGNvbmQgaW4gdGhlIG11bHRpLWxpYiBzZXR0aW5nLiAgKi8K KyAgICAgIG1hdGNoX3Njb3JlID0gcmlzY3ZfY2hlY2tfY29uZHMgKHN3aXRjaGVzLAorCQkJCSAg ICAgICBuX3N3aXRjaGVzLAorCQkJCSAgICAgICBtYXRjaF9zY29yZSwKKwkJCQkgICAgICAgbXVs dGlsaWJfaW5mb3NbaV0uY29uZHMpOworCisgICAgICAvKiBSZWNvcmQgaGlnaGVzdCBtYXRjaCBz Y29yZSBtdWx0aS1saWIgc2V0dGluZy4gICovCisgICAgICBpZiAobWF0Y2hfc2NvcmUgPiBtYXhf bWF0Y2hfc2NvcmUpCisJeworCSAgYmVzdF9tYXRjaF9tdWx0aV9saWIgPSBpOworCSAgbWF4X21h dGNoX3Njb3JlID0gbWF0Y2hfc2NvcmU7CisJfQorICAgIH0KKworICBpZiAoYmVzdF9tYXRjaF9t dWx0aV9saWIgPT0gLTEpCisgICAgeworICAgICAgcmlzY3Zfbm9fbWF0Y2hlZF9tdWx0aV9saWIg PSB0cnVlOworICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICBlbHNlCisgICAgcmV0dXJuIHhz dHJkdXAgKG11bHRpbGliX2luZm9zW2Jlc3RfbWF0Y2hfbXVsdGlfbGliXS5wYXRoLmNfc3RyICgp KTsKK30KKwogLyogSW1wbGVtZW50IFRBUkdFVF9DT01QVVRFX01VTFRJTElCLiAgKi8KIHN0YXRp YyBjb25zdCBjaGFyICoKIHJpc2N2X2NvbXB1dGVfbXVsdGlsaWIgKApAQCAtMTYyMSw2ICsxNjg4 LDEyIEBAIHJpc2N2X2NvbXB1dGVfbXVsdGlsaWIgKAogICBzdGQ6OnN0cmluZyBvcHRpb25fY29u ZDsKICAgcmlzY3ZfbXVsdGlfbGliX2luZm9fdCBtdWx0aWxpYl9pbmZvOwogCisgIGJvb2wgY2hl Y2tfYWJpX29ubHkgPSBmYWxzZTsKKworI2lmIFRBUkdFVF9MSU5VWCA9PSAxCisgIGNoZWNrX2Fi aV9vbmx5ID0gdHJ1ZTsKKyNlbmRpZgorCiAgIC8qIEFscmVhZHkgZm91bmQgc3VpdGFibGUsIG11 bHRpLWxpYiwganVzdCB1c2UgdGhhdC4gICovCiAgIGlmIChtdWx0aWxpYl9kaXIgIT0gTlVMTCkK ICAgICByZXR1cm4gbXVsdGlsaWJfZGlyOwpAQCAtMTY3Miw3ICsxNzQ1LDExIEBAIHJpc2N2X2Nv bXB1dGVfbXVsdGlsaWIgKAogCX0KIAogICAgICAgdGhpc19wYXRoX2xlbiA9IHAgLSB0aGlzX3Bh dGg7Ci0gICAgICBtdWx0aWxpYl9pbmZvLnBhdGggPSBzdGQ6OnN0cmluZyAodGhpc19wYXRoLCB0 aGlzX3BhdGhfbGVuKTsKKyAgICAgIGNvbnN0IGNoYXIgKm11bHRpX29zX2Rpcl9wb3MgPSAoY29u c3QgY2hhciopbWVtY2hyICh0aGlzX3BhdGgsICc6JywgdGhpc19wYXRoX2xlbik7CisgICAgICBp ZiAobXVsdGlfb3NfZGlyX3BvcykKKwltdWx0aWxpYl9pbmZvLnBhdGggPSBzdGQ6OnN0cmluZyAo dGhpc19wYXRoLCBtdWx0aV9vc19kaXJfcG9zIC0gdGhpc19wYXRoKTsKKyAgICAgIGVsc2UKKwlt dWx0aWxpYl9pbmZvLnBhdGggPSBzdGQ6OnN0cmluZyAodGhpc19wYXRoLCB0aGlzX3BhdGhfbGVu KTsKIAogICAgICAgb3B0aW9uX2NvbmRzLmNsZWFyICgpOwogICAgICAgLyogUGFzcnNlIG9wdGlv biBjaGVjayBsaXN0IGludG8gdmVjdG9yPHN0cmluZz4uCkBAIC0xNzA3LDQzICsxNzg0LDEwIEBA IHJpc2N2X2NvbXB1dGVfbXVsdGlsaWIgKAogICAgICAgcCsrOwogICAgIH0KIAotICBpbnQgbWF0 Y2hfc2NvcmUgPSAwOwotICBpbnQgbWF4X21hdGNoX3Njb3JlID0gMDsKLSAgaW50IGJlc3RfbWF0 Y2hfbXVsdGlfbGliID0gLTE7Ci0gIC8qIFRyeSB0byBkZWNpc2lvbiB3aGljaCBzZXQgd2Ugc2hv dWxkIHVzZWQuICAqLwotICAvKiBXZSBoYXZlIDMgbGV2ZWwgZGVjaXNpb24gdHJlZSBoZXJlLCBB QkksIGNoZWNrIGlucHV0IGFyY2gvQUJJIG11c3QKLSAgICAgYmUgc3VwZXJzZXQgb2YgbXVsdGkt bGliIGFyY2gsIGFuZCBvdGhlciByZXN0IG9wdGlvbiBjaGVja2luZy4gICovCi0gIGZvciAoc2l6 ZV90IGkgPSAwOyBpIDwgbXVsdGlsaWJfaW5mb3Muc2l6ZSAoKTsgKytpKQotICAgIHsKLSAgICAg IC8qIENoZWNrIEFCSSBpcyBzYW1lIGZpcnN0LiAgKi8KLSAgICAgIGlmIChyaXNjdl9jdXJyZW50 X2FiaV9zdHIgIT0gbXVsdGlsaWJfaW5mb3NbaV0uYWJpX3N0cikKLQljb250aW51ZTsKLQotICAg ICAgLyogRm91bmQgYSBwb3RlbnRpYWwgY29tcGF0aWJsZSBtdWx0aS1saWIgc2V0dGluZyEKLQkg Q2FsY3VsYXRlIHRoZSBtYXRjaCBzY29yZS4gICovCi0gICAgICBtYXRjaF9zY29yZSA9IHN1YnNl dF9saXN0LT5tYXRjaF9zY29yZSAobXVsdGlsaWJfaW5mb3NbaV0uc3Vic2V0X2xpc3QpOwotCi0g ICAgICAvKiBDaGVja2luZyBvdGhlciBjb25kIGluIHRoZSBtdWx0aS1saWIgc2V0dGluZy4gICov Ci0gICAgICBtYXRjaF9zY29yZSA9IHJpc2N2X2NoZWNrX2NvbmRzIChzd2l0Y2hlcywKLQkJCQkg ICAgICAgbl9zd2l0Y2hlcywKLQkJCQkgICAgICAgbWF0Y2hfc2NvcmUsCi0JCQkJICAgICAgIG11 bHRpbGliX2luZm9zW2ldLmNvbmRzKTsKLQotICAgICAgLyogUmVjb3JkIGhpZ2hlc3QgbWF0Y2gg c2NvcmUgbXVsdGktbGliIHNldHRpbmcuICAqLwotICAgICAgaWYgKG1hdGNoX3Njb3JlID4gbWF4 X21hdGNoX3Njb3JlKQotCXsKLQkgIGJlc3RfbWF0Y2hfbXVsdGlfbGliID0gaTsKLQkgIG1heF9t YXRjaF9zY29yZSA9IG1hdGNoX3Njb3JlOwotCX0KLSAgICB9Ci0KLSAgaWYgKGJlc3RfbWF0Y2hf bXVsdGlfbGliID09IC0xKQotICAgIHsKLSAgICAgIHJpc2N2X25vX21hdGNoZWRfbXVsdGlfbGli ID0gdHJ1ZTsKLSAgICAgIHJldHVybiBtdWx0aWxpYl9kaXI7Ci0gICAgfQorICBpZiAoY2hlY2tf YWJpX29ubHkpCisgICAgcmV0dXJuIHJpc2N2X3NlbGVjdF9tdWx0aWxpYl9ieV9hYmkgKHJpc2N2 X2N1cnJlbnRfYXJjaF9zdHIsIHJpc2N2X2N1cnJlbnRfYWJpX3N0ciwgc3Vic2V0X2xpc3QsIHN3 aXRjaGVzLCBuX3N3aXRjaGVzLCBtdWx0aWxpYl9pbmZvcyk7CiAgIGVsc2UKLSAgICByZXR1cm4g eHN0cmR1cCAobXVsdGlsaWJfaW5mb3NbYmVzdF9tYXRjaF9tdWx0aV9saWJdLnBhdGguY19zdHIg KCkpOworICAgIHJldHVybiByaXNjdl9zZWxlY3RfbXVsdGlsaWIgKHJpc2N2X2N1cnJlbnRfYXJj aF9zdHIsIHJpc2N2X2N1cnJlbnRfYWJpX3N0ciwgc3Vic2V0X2xpc3QsIHN3aXRjaGVzLCBuX3N3 aXRjaGVzLCBtdWx0aWxpYl9pbmZvcyk7CiB9CiAKICN1bmRlZiBUQVJHRVRfQ09NUFVURV9NVUxU SUxJQgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9saW51eC5oIGIvZ2NjL2NvbmZpZy9y aXNjdi9saW51eC5oCmluZGV4IGI5NTU3YTc1ZGM3Li40NjI1NmY3OGU1ZCAxMDA2NDQKLS0tIGEv Z2NjL2NvbmZpZy9yaXNjdi9saW51eC5oCisrKyBiL2djYy9jb25maWcvcmlzY3YvbGludXguaApA QCAtNzIsNyArNzIsMTIgQEAgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4g IElmIG5vdCBzZWUKICNkZWZpbmUgVEFSR0VUX0FTTV9GSUxFX0VORCBmaWxlX2VuZF9pbmRpY2F0 ZV9leGVjX3N0YWNrCiAKICNkZWZpbmUgU1RBUlRGSUxFX1BSRUZJWF9TUEVDIAkJCVwKLSAgICIv bGliIiBYTEVOX1NQRUMgIi8iIEFCSV9TUEVDICIvICIJCVwKLSAgICIvdXNyL2xpYiIgWExFTl9T UEVDICIvIiBBQklfU1BFQyAiLyAiCVwKLSAgICIvbGliLyAiCQkJCQlcCi0gICAiL3Vzci9saWIv ICIKKyAgIiV7bWFiaT1scDY0ZDogL2xpYjY0L2xwNjRkLyAvdXNyL2xpYjY0L2xwNjRkLyAvbGli LyAvdXNyL2xpYi99IiBcCisgICIle21hYmk9bHA2NGY6IC9saWI2NC9scDY0Zi8gL3Vzci9saWI2 NC9scDY0Zi8gL2xpYi8gL3Vzci9saWIvfSIgXAorICAiJXttYWJpPWxwNjQ6IC9saWI2NC9scDY0 LyAvdXNyL2xpYjY0L2xwNjQvIC9saWIvIC91c3IvbGliL30iIFwKKyAgIiV7bWFiaT1pbHAzMmQ6 IC9saWIzMi9pbHAzMmQgL3Vzci9saWIzMi9pbHAzMmQvIC9saWIvIC91c3IvbGliL30iIFwKKyAg IiV7bWFiaT1pbHAzMmY6IC9saWIzMi9pbHAzMmYvIC91c3IvbGliMzIvaWxwMzJmLyAvbGliLyAv dXNyL2xpYi99IiBcCisgICIle21hYmk9aWxwMzI6IC9saWIzMi9pbHAzMi8gL3Vzci9saWIzMi9p bHAzMi8gL2xpYi8gL3Vzci9saWIvfSIKKworI2RlZmluZSBSSVNDVl9VU0VfQ1VTVE9NSVNFRF9N VUxUSV9MSUIgMQorI2RlZmluZSBUQVJHRVRfTElOVVggMQotLSAKMi4zOS4yCgo= --0000000000003497b305f9a86b4f--