From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com [IPv6:2a00:1450:4864:20::134]) by sourceware.org (Postfix) with ESMTPS id C5F313858D37 for ; Thu, 31 Aug 2023 15:25:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C5F313858D37 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linaro.org Received: by mail-lf1-x134.google.com with SMTP id 2adb3069b0e04-500cd6261fdso1851520e87.3 for ; Thu, 31 Aug 2023 08:25:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1693495554; x=1694100354; darn=gcc.gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=vmHPjTHjGLap1kVbXLK7gioe6NFSoJxqx6gWrheUdB0=; b=MQC6qRhVffZSGbT7nuWvt0UaEbO3KF8jpSGuWtiCJnNc1naZD3q2o7hcd6e/+QmC62 XsuM2VBi6W6GFMVXC/8jFWDp35BwqiWp0/dlxgvyyQgCh81+2ctxnnojsbJvZfm64GKd MHoYJyLkl12/7u23HTNm3zJcBstM+F69F76hzV8xHx9rktkD/LCIF7ccMFs0cq3u7IyR 5E1nT8bKuqkwDGxnLE4fwn0j/T/wQRMU8UeIK2wxcMwZ0w+nkZB8M3Y9XAcKXQ1RW7pp 9pjkCozhMK13Xjcwzu2sylI5E/wJsF2BuQrOPaSmaVM1+lLwRecxZ4lmhGCXOYLiqFyb OxHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693495554; x=1694100354; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=vmHPjTHjGLap1kVbXLK7gioe6NFSoJxqx6gWrheUdB0=; b=PJ1RWhsI1TQk8CmKc7YohMXI5jxTftUIt6+DlbDcwAhaUhqlFPdjszaZp4IkUKmVDb MeXwDIpm+MO/awr1sEVKtIrOEkHGz3eTCP1fssiPEj6UAmni/V+PAjmV6v/W0pGViVpu xbbonei7JcP52FyHMv5jWb9uDAlJqYDduKUAu2yQKNmBmD5AWcgFdaxUhhZMPPpikAc+ +dB0jTu/CuBPcsh4lFMdz5YiqbThWnaw1dcXRxRbKhNh3vOfIu+ofKJEKjqYU0AzEdGT vV7lLARgYXxZ6J9VScs266KksWRlFgSsjP+hez6Z/Nxp4ovdCMkpzCMc/78dEogdTw8W +35w== X-Gm-Message-State: AOJu0Yw0+sH4PpByQQrL2pQTN8lgnGB5ZFzMFZVxmQDXGwFlpNJfGw3q VQDObwQHsffTP72QVNGrFiUdr4EskxgWBryKzCaICQ== X-Google-Smtp-Source: AGHT+IG5PMAR8pGIhB0WsW35gWjDcfeCBma4lEkDERd9yheqfdEiXzbUaX5pTG0AQbdn+/27JQll/zO+2LYgHvd0qog= X-Received: by 2002:a19:e006:0:b0:4ff:7602:5879 with SMTP id x6-20020a19e006000000b004ff76025879mr3665000lfg.55.1693495554079; Thu, 31 Aug 2023 08:25:54 -0700 (PDT) MIME-Version: 1.0 From: Christophe Lyon Date: Thu, 31 Aug 2023 17:25:45 +0200 Message-ID: Subject: [PATCH] libstdc++: Use GLIBCXX_CHECK_LINKER_FEATURES for cross-builds (PR111238) To: GCC Patches , Jonathan Wakely , libstdc++@gcc.gnu.org Content-Type: multipart/mixed; boundary="000000000000eeb69e060439a8d4" X-Spam-Status: No, score=-12.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,URI_HEX autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --000000000000eeb69e060439a8d4 Content-Type: multipart/alternative; boundary="000000000000eeb69b060439a8d2" --000000000000eeb69b060439a8d2 Content-Type: text/plain; charset="UTF-8" As discussed in PR104167 (comments #8 and below), and PR111238, using -Wl,-gc-sections in the libstdc++ testsuite for arm-eabi (cross-toolchain) avoids link failures for a few tests: 27_io/filesystem/path/108636.cc std/time/clock/gps/1.cc std/time/clock/gps/io.cc std/time/clock/tai/1.cc std/time/clock/tai/io.cc std/time/clock/utc/1.cc std/time/clock/utc/io.cc std/time/clock/utc/leap_second_info.cc std/time/exceptions.cc std/time/format.cc std/time/time_zone/get_info_local.cc std/time/time_zone/get_info_sys.cc std/time/tzdb/1.cc std/time/tzdb/leap_seconds.cc std/time/tzdb_list/1.cc std/time/zoned_time/1.cc std/time/zoned_time/custom.cc std/time/zoned_time/io.cc std/time/zoned_traits.cc This patch achieves this by calling GLIBCXX_CHECK_LINKER_FEATURES in cross-build cases, like we already do for native builds. We keep not doing so in Canadian-cross builds. However, this would hide the fact that libstdc++ somehow forces the user to use -Wl,-gc-sections to avoid undefined references to chdir, mkdir, chmod, pathconf, ... so maybe it's better to keep the status quo and not apply this patch? 2023-08-31 Christophe Lyon libstdc++-v3/ChangeLog: PR libstdc++/111238 * configure: Regenerate. * configure.ac: Call GLIBCXX_CHECK_LINKER_FEATURES in cross, non-Canadian builds. --000000000000eeb69b060439a8d2-- --000000000000eeb69e060439a8d4 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-libstdc-Use-GLIBCXX_CHECK_LINKER_FEATURES-for-cross-.patch" Content-Disposition: attachment; filename="0001-libstdc-Use-GLIBCXX_CHECK_LINKER_FEATURES-for-cross-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_llzbimhm0 RnJvbSAwMjZiMTczMTA3ZjE5ZDRhMWJmNGUxY2QwNWJlZmE5N2M2NWQwMWY0 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpc3RvcGhlIEx5 b24gPGNocmlzdG9waGUubHlvbkBsaW5hcm8ub3JnPgpEYXRlOiBUaHUsIDMx IEF1ZyAyMDIzIDEzOjUwOjE2ICswMDAwClN1YmplY3Q6IFtQQVRDSF0gbGli c3RkYysrOiBVc2UgR0xJQkNYWF9DSEVDS19MSU5LRVJfRkVBVFVSRVMgZm9y IGNyb3NzLWJ1aWxkcwogKFBSMTExMjM4KQoKQXMgZGlzY3Vzc2VkIGluIFBS MTA0MTY3IChjb21tZW50cyAjOCBhbmQgYmVsb3cpLCBhbmQgUFIxMTEyMzgs IHVzaW5nCi1XbCwtZ2Mtc2VjdGlvbnMgaW4gdGhlIGxpYnN0ZGMrKyB0ZXN0 c3VpdGUgZm9yIGFybS1lYWJpCihjcm9zcy10b29sY2hhaW4pIGF2b2lkcyBs aW5rIGZhaWx1cmVzIGZvciBhIGZldyB0ZXN0czoKCjI3X2lvL2ZpbGVzeXN0 ZW0vcGF0aC8xMDg2MzYuY2MKc3RkL3RpbWUvY2xvY2svZ3BzLzEuY2MKc3Rk L3RpbWUvY2xvY2svZ3BzL2lvLmNjCnN0ZC90aW1lL2Nsb2NrL3RhaS8xLmNj CnN0ZC90aW1lL2Nsb2NrL3RhaS9pby5jYwpzdGQvdGltZS9jbG9jay91dGMv MS5jYwpzdGQvdGltZS9jbG9jay91dGMvaW8uY2MKc3RkL3RpbWUvY2xvY2sv dXRjL2xlYXBfc2Vjb25kX2luZm8uY2MKc3RkL3RpbWUvZXhjZXB0aW9ucy5j YwpzdGQvdGltZS9mb3JtYXQuY2MKc3RkL3RpbWUvdGltZV96b25lL2dldF9p bmZvX2xvY2FsLmNjCnN0ZC90aW1lL3RpbWVfem9uZS9nZXRfaW5mb19zeXMu Y2MKc3RkL3RpbWUvdHpkYi8xLmNjCnN0ZC90aW1lL3R6ZGIvbGVhcF9zZWNv bmRzLmNjCnN0ZC90aW1lL3R6ZGJfbGlzdC8xLmNjCnN0ZC90aW1lL3pvbmVk X3RpbWUvMS5jYwpzdGQvdGltZS96b25lZF90aW1lL2N1c3RvbS5jYwpzdGQv dGltZS96b25lZF90aW1lL2lvLmNjCnN0ZC90aW1lL3pvbmVkX3RyYWl0cy5j YwoKVGhpcyBwYXRjaCBhY2hpZXZlcyB0aGlzIGJ5IGNhbGxpbmcgR0xJQkNY WF9DSEVDS19MSU5LRVJfRkVBVFVSRVMgaW4KY3Jvc3MtYnVpbGQgY2FzZXMs IGxpa2Ugd2UgYWxyZWFkeSBkbyBmb3IgbmF0aXZlIGJ1aWxkcy4gV2Uga2Vl cCBub3QKZG9pbmcgc28gaW4gQ2FuYWRpYW4tY3Jvc3MgYnVpbGRzLgoKSG93 ZXZlciwgdGhpcyB3b3VsZCBoaWRlIHRoZSBmYWN0IHRoYXQgbGlic3RkYysr IHNvbWVob3cgZm9yY2VzIHRoZQp1c2VyIHRvIHVzZSAtV2wsLWdjLXNlY3Rp b25zIHRvIGF2b2lkIHVuZGVmaW5lZCByZWZlcmVuY2VzIHRvIGNoZGlyLApt a2RpciwgY2htb2QsIHBhdGhjb25mLCAuLi4gc28gbWF5YmUgaXQncyBiZXR0 ZXIgdG8ga2VlcCB0aGUgc3RhdHVzCnF1byBhbmQgbm90IGFwcGx5IHRoaXMg cGF0Y2g/CgoyMDIzLTA4LTMxICBDaHJpc3RvcGhlIEx5b24gIDxjaHJpc3Rv cGhlLmx5b25AbGluYXJvLm9yZz4KCmxpYnN0ZGMrKy12My9DaGFuZ2VMb2c6 CgoJUFIgbGlic3RkYysrLzExMTIzOAoJKiBjb25maWd1cmU6IFJlZ2VuZXJh dGUuCgkqIGNvbmZpZ3VyZS5hYzogQ2FsbCBHTElCQ1hYX0NIRUNLX0xJTktF Ul9GRUFUVVJFUyBpbiBjcm9zcywKCW5vbi1DYW5hZGlhbiBidWlsZHMuCi0t LQogbGlic3RkYysrLXYzL2NvbmZpZ3VyZSAgICB8IDE1NCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwogbGlic3RkYysrLXYzL2Nv bmZpZ3VyZS5hYyB8ICAgNCArCiAyIGZpbGVzIGNoYW5nZWQsIDE1OCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL2NvbmZpZ3Vy ZSBiL2xpYnN0ZGMrKy12My9jb25maWd1cmUKaW5kZXggYzRkYTU2YzMwNDIu Ljk0OGRhYjRmOWEwIDEwMDc1NQotLS0gYS9saWJzdGRjKystdjMvY29uZmln dXJlCisrKyBiL2xpYnN0ZGMrKy12My9jb25maWd1cmUKQEAgLTI5ODIzLDYg KzI5ODIzLDE2MCBAQCBlbHNlCiAgICAgQ0FOQURJQU49eWVzCiAgIGVsc2UK ICAgICBDQU5BRElBTj1ubworICBmaQorCisgIGlmIHRlc3QgJENBTkFESUFO ID0gbm87IHRoZW4KKworICAjIElmIHdlJ3JlIG5vdCB1c2luZyBHTlUgbGQs IHRoZW4gdGhlcmUncyBubyBwb2ludCBpbiBldmVuIHRyeWluZyB0aGVzZQor ICAjIHRlc3RzLiAgQ2hlY2sgZm9yIHRoYXQgZmlyc3QuICBXZSBzaG91bGQg aGF2ZSBhbHJlYWR5IHRlc3RlZCBmb3IgZ2xkCisgICMgYnkgbm93IChpbiBs aWJ0b29sKSwgYnV0IHJlcXVpcmUgaXQgbm93IGp1c3QgdG8gYmUgc2FmZS4u LgorICB0ZXN0IC16ICIkU0VDVElPTl9MREZMQUdTIiAmJiBTRUNUSU9OX0xE RkxBR1M9JycKKyAgdGVzdCAteiAiJE9QVF9MREZMQUdTIiAmJiBPUFRfTERG TEFHUz0nJworCisKKworICAjIFRoZSBuYW1lIHNldCBieSBsaWJ0b29sIGRl cGVuZHMgb24gdGhlIHZlcnNpb24gb2YgbGlidG9vbC4gIFNoYW1lIG9uIHVz CisgICMgZm9yIGRlcGVuZGluZyBvbiBhbiBpbXBsIGRldGFpbCwgYnV0IGMn ZXN0IGxhIHZpZS4gIE9sZGVyIHZlcnNpb25zIHVzZWQKKyAgIyBhY19jdl9w cm9nX2dudV9sZCwgYnV0IG5vdyBpdCdzIGx0X2N2X3Byb2dfZ251X2xkLCBh bmQgaXMgY29waWVkIGJhY2sgb24KKyAgIyB0b3Agb2Ygd2l0aF9nbnVfbGQg KHdoaWNoIGlzIGFsc28gc2V0IGJ5IC0td2l0aC1nbnUtbGQsIHNvIHRoYXQg YWN0dWFsbHkKKyAgIyBtYWtlcyBzZW5zZSkuICBXZSdsbCB0ZXN0IHdpdGhf Z251X2xkIGV2ZXJ5d2hlcmUgZWxzZSwgc28gaWYgdGhhdCBpc24ndAorICAj IHNldCAoaGVuY2Ugd2UncmUgdXNpbmcgYW4gb2xkZXIgbGlidG9vbCksIHRo ZW4gc2V0IGl0LgorICBpZiB0ZXN0IHgke3dpdGhfZ251X2xkK3NldH0gIT0g eHNldDsgdGhlbgorICAgIGlmIHRlc3QgeCR7YWNfY3ZfcHJvZ19nbnVfbGQr c2V0fSAhPSB4c2V0OyB0aGVuCisgICAgICAjIFdlIGdvdCB0aHJvdWdoICJh Y19yZXF1aXJlKGFjX3Byb2dfbGQpIiBhbmQgc3RpbGwgbm90IHNldD8gIEh1 aD8KKyAgICAgIHdpdGhfZ251X2xkPW5vCisgICAgZWxzZQorICAgICAgd2l0 aF9nbnVfbGQ9JGFjX2N2X3Byb2dfZ251X2xkCisgICAgZmkKKyAgZmkKKwor ICAjIFN0YXJ0IGJ5IGdldHRpbmcgdGhlIHZlcnNpb24gbnVtYmVyLiAgSSB0 aGluayB0aGUgbGlidG9vbCB0ZXN0IGFscmVhZHkKKyAgIyBkb2VzIHNvbWUg b2YgdGhpcywgYnV0IHRocm93cyBhd2F5IHRoZSByZXN1bHQuCisgIGdsaWJj eHhfbGRfaXNfZ29sZD1ubworICBnbGliY3h4X2xkX2lzX21vbGQ9bm8KKyAg aWYgdGVzdCB4IiR3aXRoX2dudV9sZCIgPSB4InllcyI7IHRoZW4KKyAgICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNr aW5nIGZvciBsZCB2ZXJzaW9uIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5n IGZvciBsZCB2ZXJzaW9uLi4uICIgPiY2OyB9CisKKyAgICBpZiAkTEQgLS12 ZXJzaW9uIDI+L2Rldi9udWxsIHwgZ3JlcCAnR05VIGdvbGQnID4vZGV2L251 bGwgMj4mMTsgdGhlbgorICAgICAgZ2xpYmN4eF9sZF9pc19nb2xkPXllcwor ICAgIGVsaWYgJExEIC0tdmVyc2lvbiAyPi9kZXYvbnVsbCB8IGdyZXAgJ21v bGQnID4vZGV2L251bGwgMj4mMTsgdGhlbgorICAgICAgZ2xpYmN4eF9sZF9p c19tb2xkPXllcworICAgIGZpCisgICAgbGR2ZXI9YCRMRCAtLXZlcnNpb24g Mj4vZGV2L251bGwgfAorCSAgIHNlZCAtZSAncy9bLiBdWzAtOV1cezhcfSQv LztzLy4qIFwoW14gXVx7MSxcfVwpJC9cMS87IHEnYAorCisgICAgZ2xpYmN4 eF9nbnVfbGRfdmVyc2lvbj1gZWNobyAkbGR2ZXIgfCBcCisJICAgJEFXSyAt Ri4gJ3sgaWYgKE5GPDMpICQzPTA7IHByaW50ICgkMSoxMDArJDIpKjEwMCsk MyB9J2AKKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IHJlc3VsdDogJGdsaWJjeHhfZ251X2xkX3ZlcnNpb24iID4mNQor JGFzX2VjaG8gIiRnbGliY3h4X2dudV9sZF92ZXJzaW9uIiA+JjY7IH0KKyAg ZmkKKworICAjIFNldCAtLWdjLXNlY3Rpb25zLgorICBnbGliY3h4X2hhdmVf Z2Nfc2VjdGlvbnM9bm8KKyAgaWYgdGVzdCAiJGdsaWJjeHhfbGRfaXNfZ29s ZCIgPSAieWVzIiB8fCB0ZXN0ICIkZ2xpYmN4eF9sZF9pc19tb2xkIiA9ICJ5 ZXMiIDsgdGhlbgorICAgIGlmICRMRCAtLWhlbHAgMj4vZGV2L251bGwgfCBn cmVwIGdjLXNlY3Rpb25zID4vZGV2L251bGwgMj4mMTsgdGhlbgorICAgICAg Z2xpYmN4eF9oYXZlX2djX3NlY3Rpb25zPXllcworICAgIGZpCisgIGVsc2UK KyAgICBnbGliY3h4X2djc2VjdGlvbnNfbWluX2xkPTIxNjAyCisgICAgaWYg dGVzdCB4IiR3aXRoX2dudV9sZCIgPSB4InllcyIgJiYKKwl0ZXN0ICRnbGli Y3h4X2dudV9sZF92ZXJzaW9uIC1ndCAkZ2xpYmN4eF9nY3NlY3Rpb25zX21p bl9sZCA7IHRoZW4KKyAgICAgIGdsaWJjeHhfaGF2ZV9nY19zZWN0aW9ucz15 ZXMKKyAgICBmaQorICBmaQorICBpZiB0ZXN0ICIkZ2xpYmN4eF9oYXZlX2dj X3NlY3Rpb25zIiA9ICJ5ZXMiOyB0aGVuCisgICAgIyBTdWZmaWNpZW50bHkg eW91bmcgR05VIGxkIGl0IGlzISAgSm95IGFuZCBidW5ueSByYWJiaXRzIQor ICAgICMgTkI6IFRoaXMgZmxhZyBvbmx5IHdvcmtzIHJlbGlhYmx5IGFmdGVy IDIuMTYuMS4gQ29uZmlndXJlIHRlc3RzCisgICAgIyBmb3IgdGhpcyBhcmUg ZGlmZmljdWx0LCBzbyBoYXJkIHdpcmUgYSB2YWx1ZSB0aGF0IHNob3VsZCB3 b3JrLgorCisgICAgYWNfdGVzdF9DRkxBR1M9IiR7Q0ZMQUdTK3NldH0iCisg ICAgYWNfc2F2ZV9DRkxBR1M9IiRDRkxBR1MiCisgICAgQ0ZMQUdTPSctV2ws LS1nYy1zZWN0aW9ucycKKworICAgICMgQ2hlY2sgZm9yIC1XbCwtLWdjLXNl Y3Rpb25zCisgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBjaGVja2luZyBmb3IgbGQgdGhhdCBzdXBwb3J0cyAtV2wsLS1n Yy1zZWN0aW9ucyIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBmb3IgbGQg dGhhdCBzdXBwb3J0cyAtV2wsLS1nYy1zZWN0aW9ucy4uLiAiID4mNjsgfQor ICAgIGlmIHRlc3QgeCRnY2Nfbm9fbGluayA9IHh5ZXM7IHRoZW4KKyAgYXNf Zm5fZXJyb3IgJD8gIkxpbmsgdGVzdHMgYXJlIG5vdCBhbGxvd2VkIGFmdGVy IEdDQ19OT19FWEVDVVRBQkxFUy4iICIkTElORU5PIiA1CitmaQorY2F0IGNv bmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorLyogZW5k IGNvbmZkZWZzLmguICAqLworIGludCBvbmUodm9pZCkgeyByZXR1cm4gMTsg fQorICAgICBpbnQgdHdvKHZvaWQpIHsgcmV0dXJuIDI7IH0KKworaW50Citt YWluICgpCit7CisgdHdvKCk7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNF T0YKK2lmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKKyAg YWNfZ2NzZWN0aW9ucz15ZXMKK2Vsc2UKKyAgYWNfZ2NzZWN0aW9ucz1ubwor ZmkKK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpl eHQgXAorICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0 CisgICAgaWYgdGVzdCAiJGFjX2djc2VjdGlvbnMiID0gInllcyI7IHRoZW4K KyAgICAgIHJtIC1mIGNvbmZ0ZXN0LmMKKyAgICAgIHRvdWNoIGNvbmZ0ZXN0 LmMKKyAgICAgIGlmICRDQyAtYyBjb25mdGVzdC5jOyB0aGVuCisJaWYgJExE IC0tZ2Mtc2VjdGlvbnMgLW8gY29uZnRlc3QgY29uZnRlc3QubyAyPiYxIHwg XAorCSAgIGdyZXAgIldhcm5pbmc6IGdjLXNlY3Rpb25zIG9wdGlvbiBpZ25v cmVkIiA+IC9kZXYvbnVsbDsgdGhlbgorCSAgYWNfZ2NzZWN0aW9ucz1ubwor CWZpCisgICAgICBmaQorICAgICAgcm0gLWYgY29uZnRlc3QuYyBjb25mdGVz dC5vIGNvbmZ0ZXN0CisgICAgZmkKKyAgICBpZiB0ZXN0ICIkYWNfZ2NzZWN0 aW9ucyIgPSAieWVzIjsgdGhlbgorICAgICAgU0VDVElPTl9MREZMQUdTPSIt V2wsLS1nYy1zZWN0aW9ucyAkU0VDVElPTl9MREZMQUdTIgorICAgIGZpCisg ICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBy ZXN1bHQ6ICRhY19nY3NlY3Rpb25zIiA+JjUKKyRhc19lY2hvICIkYWNfZ2Nz ZWN0aW9ucyIgPiY2OyB9CisKKyAgICBpZiB0ZXN0ICIkYWNfdGVzdF9DRkxB R1MiID0gc2V0OyB0aGVuCisgICAgICBDRkxBR1M9IiRhY19zYXZlX0NGTEFH UyIKKyAgICBlbHNlCisgICAgICAjIHRoaXMgaXMgdGhlIHN1c3BpY2lvdXMg cGFydAorICAgICAgQ0ZMQUdTPScnCisgICAgZmkKKyAgZmkKKworICAjIFNl dCAteixyZWxyby4KKyAgIyBOb3RlIHRoaXMgaXMgb25seSBmb3Igc2hhcmVk IG9iamVjdHMuCisgIGFjX2xkX3JlbHJvPW5vCisgIGlmIHRlc3QgeCIkd2l0 aF9nbnVfbGQiID0geCJ5ZXMiOyB0aGVuCisgICAgIyBjeWd3aW4gYW5kIG1p bmd3IHVzZXMgUEUsIHdoaWNoIGhhcyBubyBFTEYgcmVscm8gc3VwcG9ydCwK KyAgICAjIG11bHRpIHRhcmdldCBsZCBtYXkgY29uZnVzZSBjb25maWd1cmUg bWFjaGluZXJ5CisgICAgY2FzZSAiJGhvc3QiIGluCisgICAgKi0qLWN5Z3dp biopCisgICAgIDs7CisgICAgKi0qLW1pbmd3KikKKyAgICAgOzsKKyAgICAq KQorICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBjaGVja2luZyBmb3IgbGQgdGhhdCBzdXBwb3J0cyAtV2wsLXoscmVs cm8iID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGxkIHRoYXQgc3Vw cG9ydHMgLVdsLC16LHJlbHJvLi4uICIgPiY2OyB9CisgICAgICBjeHhfel9y ZWxvPWAkTEQgLXYgLS1oZWxwIDI+L2Rldi9udWxsIHwgZ3JlcCAieiByZWxy byJgCisgICAgICBpZiB0ZXN0IC1uICIkY3h4X3pfcmVsbyI7IHRoZW4KKyAg ICAgICAgT1BUX0xERkxBR1M9Ii1XbCwteixyZWxybyIKKyAgICAgICAgYWNf bGRfcmVscm89eWVzCisgICAgICBmaQorICAgICAgeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19sZF9yZWxy byIgPiY1CiskYXNfZWNobyAiJGFjX2xkX3JlbHJvIiA+JjY7IH0KKyAgICBl c2FjCisgIGZpCisKKyAgIyBTZXQgbGlua2VyIG9wdGltaXphdGlvbiBmbGFn cy4KKyAgaWYgdGVzdCB4IiR3aXRoX2dudV9sZCIgPSB4InllcyI7IHRoZW4K KyAgICBPUFRfTERGTEFHUz0iLVdsLC1PMSAkT1BUX0xERkxBR1MiCisgIGZp CisKKworCisKICAgZmkKIAogICAjIENvbnN0cnVjdCBjcm9zc2VzIGJ5IGhh bmQsIGVsaW1pbmF0aW5nIGJpdHMgdGhhdCBuZWVkIGxkLi4uCmRpZmYgLS1n aXQgYS9saWJzdGRjKystdjMvY29uZmlndXJlLmFjIGIvbGlic3RkYysrLXYz L2NvbmZpZ3VyZS5hYwppbmRleCBmYzBmMjUyMjAyNy4uNDk0NzIzNTM0MzUg MTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9jb25maWd1cmUuYWMKKysrIGIv bGlic3RkYysrLXYzL2NvbmZpZ3VyZS5hYwpAQCAtMzI1LDYgKzMyNSwxMCBA QCBlbHNlCiAgICAgQ0FOQURJQU49bm8KICAgZmkKIAorICBpZiB0ZXN0ICRD QU5BRElBTiA9IG5vOyB0aGVuCisgICAgR0xJQkNYWF9DSEVDS19MSU5LRVJf RkVBVFVSRVMKKyAgZmkKKwogICAjIENvbnN0cnVjdCBjcm9zc2VzIGJ5IGhh bmQsIGVsaW1pbmF0aW5nIGJpdHMgdGhhdCBuZWVkIGxkLi4uCiAgICMgR0xJ QkNYWF9DSEVDS19NQVRIX1NVUFBPUlQKIAotLSAKMi4zNC4xCgo= --000000000000eeb69e060439a8d4--