Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vNpzr-00GYRX-3B for pgsql-bugs@arkaria.postgresql.org; Tue, 25 Nov 2025 10:10:08 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vNpzq-007l4T-18 for pgsql-bugs@arkaria.postgresql.org; Tue, 25 Nov 2025 10:10:06 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vNp4y-007TbZ-0r for pgsql-bugs@lists.postgresql.org; Tue, 25 Nov 2025 09:11:20 +0000 Received: from mail-ej1-x633.google.com ([2a00:1450:4864:20::633]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vNp4v-001MCX-2Q for pgsql-bugs@lists.postgresql.org; Tue, 25 Nov 2025 09:11:19 +0000 Received: by mail-ej1-x633.google.com with SMTP id a640c23a62f3a-b7277324054so778748566b.0 for ; Tue, 25 Nov 2025 01:11:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764061876; x=1764666676; darn=lists.postgresql.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=OOwIlCs50ODSscYwq95ufTsapObTvur0wzi1ZuLDFe8=; b=SDLYsIiqDug0e6zSRF73Q1yA4J2dEPQU8MQh6ZLxNg3han4lVgO3IwQpb6HJbcMiko N/wvkJx3IWeszdxyK3CFD/tGD66aUdHZ05fgGJ62d9+jLM+SiDL5ZIN+Mx9P+3zXP2ZC HxzespWPXLAyfJraYm3/E8MD1Lo9ttQ6i6neown7VjyawY09yel7heWbCaCEYhe6V9YB y2wJeznoDzztW4Q89wovf1SxWHNN1i9AXVch3sUIuX/RkWiQBzeMUnW49xfDkSsGvWOH MMnA7bN57JAc0gIPkltiRBSvCMf1Zri6Ku6v5xEUeaVll+M/TO8jREvK30nw/+nZHVrt /pDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764061876; x=1764666676; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=OOwIlCs50ODSscYwq95ufTsapObTvur0wzi1ZuLDFe8=; b=COpUrcVrOS+G15/RkjHozehdI2IJcu0sf9DsMITBhpDXGf7J3DUOE96ksMYjb7LtQR OUOF6GFa60WUv3bp4wRFGnblzWY1Vu34KoESRFvN1AxulYMbq9/8M7YFTqRRacGuVdba eaxjHPJH828EXhlKa3Uwg2QFpa7LG0Q3MMnWdjPo+3+bs4Hzt17Zy7D111WDq28fABXY g+MHmLk2ASNJHqZNecdIQgU1Ggpa7XIcUrPIaJEiefNNk8aSH3fAqM8yEqiTN67xTw2c VYjPhaDKT21HUKeXezR61ZUNTXkDRbtoxiUW9kzMReHvcoS5C+edrBiKcRs32KS/33MM /W6A== X-Forwarded-Encrypted: i=1; AJvYcCU/77gF6Zd47ltneSb21KtojbIXc0fjb90M1IbJJhWbUmIzbFDNdfEdozDWQhE8lOgs6j7NoXakWtuU@lists.postgresql.org X-Gm-Message-State: AOJu0Yx4JrrUj/yPRCH+H1yAEguhF9miRJMU31mRQIaAYTIZ1UEjsuwQ rH5zSrlv+nDjf3S509mWReuFV2ybeuROVD5gPySxFTdYpo77GAsPNls45d+71usFS5KcoFGxiLl 78Rv2wDi4PWWHO5HhBQtqRrgkuLco7Eg= X-Gm-Gg: ASbGncv2xRBBbclcky2YOH+GMRpKuguzK+rpEaHvxILow/Gv2NzH2FwQb7DAvFBGFds uJHjiBT4NJIY9MAEm2GKTk/4qgU0DF5loCzs1SnD6ygYTo9pj1EbYURXsWLcE/L0fgQIYqFn8sn pBvmNLYbWjBuhWtLWlaf320ag2Rrwf1j4JXHJPjrzPL4UuuQByx9a1ctGfKb+o0stkHlxUDDX39 MkcYaWRwU+UZ30DzWwAE/GAqEJual2K1rtVL3efRqfrFMZTNYwj4ekX1vzhIslMAqzAItk= X-Google-Smtp-Source: AGHT+IGITpHuGelsnOnnJjV/jcqWkaeSFmCrvjFeOcImbibH0hcYrrFyzCaueWeOYBs+CzSlt3jMJY7yA5E7imIjV68= X-Received: by 2002:a17:907:c1a:b0:b73:544d:ba2e with SMTP id a640c23a62f3a-b76715e604bmr1682813566b.25.1764061875402; Tue, 25 Nov 2025 01:11:15 -0800 (PST) MIME-Version: 1.0 References: <19095-6d8256d0c37d4be2@postgresql.org> <2305435.1762929527@sss.pgh.pa.us> <7C7B32ED-5742-49D5-9380-5E02AA5B03C4@yesql.se> <057A2AED-0116-446B-8986-57FDA70CA5A3@yesql.se> In-Reply-To: From: VASUKI M Date: Tue, 25 Nov 2025 14:41:32 +0530 X-Gm-Features: AWmQ_bn0ryOZzBx9HmP8LGgHM0OzQhbPp_7iDJgVIAwCQMHqCynZCActb3-5RTE Message-ID: Subject: Re: BUG #19095: Test if function exit() is used fail when linked static To: Michael Paquier Cc: Daniel Gustafsson , Tom Lane , BharatDB , torsten.rupp@gmx.net, pgsql-bugs@lists.postgresql.org, byavuz81@gmail.com Content-Type: multipart/mixed; boundary="0000000000007251d3064467a902" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000007251d3064467a902 Content-Type: multipart/alternative; boundary="0000000000007251d2064467a900" --0000000000007251d2064467a900 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, 25 Nov 2025 at 03:14, Michael Paquier wrote: > Including a reference to "nm" in this comment for meson is definitely > fine, because it is used as a pre-check in this code with > find_program. However, shouldn't we document the platform-specific > exclusions in the perl script itself? As of the patch, the > explanation is a copy-paste of src/interfaces/libpq/Makefile. I think > that we'd better group everything together, rather than have the same > contents explained in two places. Perhaps I would add an extra > comment in meson.build and the Makefile to document that all the > platform-relevant details are in the perl script itself. > > Thanks for this suggestion michael & Nazir for the code,i have made the changes you said Also added the check where it scans for nm in the environment if it is not present then it gracefully skips the test. V3 attached kindly check and review it. > I would be also tempted to move the solaris check inside the perl > script rather than have it duplicated across meson and make, then do > something based on $Config{osname} instead. > Done Testing performed: - Built with both autoconf+Makefile and Meson builds. - Verified the script runs inside Meson via the custom_target and confirmed with ninja -v. >grep -R "libpq-exit-check" build.ninja build src/interfaces/libpq/libpq-refs-stamp: CUSTOM_COMMAND src/interfaces/libpq/libpq.so.5.19 | ../src/interfaces/libpq/libpq-exit-check /usr/bin/perl COMMAND =3D /usr/bin/perl ../src/interfaces/libpq/libpq-exit-check --input_file src/interfaces/libpq/libpq.so.5.19 --stamp_file src/interfaces/libpq/libpq-refs-stamp description =3D Generating$ src/interfaces/libpq/libpq-exit-check$ with$ a= $ custom$ command - Injected a fake exit() reference into fe-connect.c and ensured the build fails with the expected error message. - Confirmed that removing nm causes the script to skip the check cleanly. - Verified that Meson=E2=80=99s stamp file prevents re-running the check = when libpq.so has not changed. Regards, Vasuki M CDAC-Chennai --0000000000007251d2064467a900 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Tue, 25 Nov 2025 at 03:14, Michael Paq= uier <michael@paquier.xyz>= wrote:
Including a reference to "nm" in this comment for meson is defini= tely
fine, because it is used as a pre-check in this code with
find_program.=C2=A0 However, shouldn't we document the platform-specifi= c
exclusions in the perl script itself?=C2=A0 As of the patch, the
explanation is a copy-paste of src/interfaces/libpq/Makefile.=C2=A0 I think=
that we'd better group everything together, rather than have the same contents explained in two places.=C2=A0 Perhaps I would add an extra
comment in meson.build and the Makefile to document that all the
platform-relevant details are in the perl script itself.

Thanks for this suggestion michael & Nazir for th= e code,i have made the changes you said=C2=A0

Also added the check w= here it scans for nm in the environment if it is not present then it gracef= ully skips the test.
V3 attached kindly check and review it.
= =C2=A0
I would be also tempted to move the solaris check inside the perl
script rather than have it duplicated across meson and make, then do
something based on $Config{osname} instead.
Done
=

Testing performed:
=C2=A0 - Built with both autoconf+Makefile a= nd Meson builds.
=C2=A0 - Verified the script runs inside Meson via the = custom_target and
=C2=A0 =C2=A0 confirmed with ninja -v.
>grep -R = "libpq-exit-check" build.ninja
build src/interfaces/libpq/libp= q-refs-stamp: CUSTOM_COMMAND src/interfaces/libpq/libpq.so.5.19 | ../src/in= terfaces/libpq/libpq-exit-check /usr/bin/perl
=C2=A0COMMAND =3D /usr/bin= /perl ../src/interfaces/libpq/libpq-exit-check --input_file src/interfaces/= libpq/libpq.so.5.19 --stamp_file src/interfaces/libpq/libpq-refs-stamp
= =C2=A0description =3D Generating$ src/interfaces/libpq/libpq-exit-check$ wi= th$ a$ custom$ command

=C2=A0 - Injected a fake exit() refere= nce into fe-connect.c and ensured the
=C2=A0 =C2=A0 build fails with the= expected error message.
=C2=A0 - Confirmed that removing nm causes the = script to skip the check cleanly.
=C2=A0 - Verified that Meson=E2=80=99s= stamp file prevents re-running the check when
=C2=A0 =C2=A0 libpq.so ha= s not changed.

Regards,
Vasuki M
CDAC-Chennai
--0000000000007251d2064467a900-- --0000000000007251d3064467a902 Content-Type: text/x-patch; charset="UTF-8"; name="v3-0001-libpq-exit-check.patch" Content-Disposition: attachment; filename="v3-0001-libpq-exit-check.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miecvpyy0 RnJvbSAyYThkNGE3ZGVmZTQzYTMxZTMyZGFlMmQzMmU3ZGI5NzhjZDExNzM5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCaGFyYXREQlBHIDxiaGFyYXRkYnBnQGdtYWlsLmNvbT4KRGF0 ZTogVHVlLCAyNSBOb3YgMjAyNSAxMjozMzo1MyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjNdIGxp YnBxOiBjZW50cmFsaXplIGV4aXQoKSBjaGVjayBsb2dpYyBpbiBQZXJsIHNjcmlwdCBhbmQKIHNo YXJlIHdpdGggTWVzb24gYW5kIE1ha2VmaWxlCgpUaGUgZXhpc3RpbmcgTWFrZWZpbGUtYmFzZWQg YnVpbGQgcGVyZm9ybXMgYSBzYWZldHkgY2hlY2sgdG8gZW5zdXJlIHRoYXQKbGlicHEgZG9lcyBu b3QgYWNjaWRlbnRhbGx5IHJlZmVyZW5jZSBleGl0KCksIHNpbmNlIGNsaWVudCBsaWJyYXJpZXMK bXVzdCBub3QgdGVybWluYXRlIHRoZSBjYWxsaW5nIHByb2Nlc3MuIE1lc29uIGJ1aWxkcyBkaWQg bm90IHJ1biBhbgplcXVpdmFsZW50IGNoZWNrLCBhbmQgdGhlIGxvZ2ljIGZvciBwbGF0Zm9ybS1z cGVjaWZpYyBoYW5kbGluZyBhbmQKd2hpdGVsaXN0aW5nIHdhcyBkdXBsaWNhdGVkIGluIHRoZSBN YWtlZmlsZSBjb21tZW50cy4KClRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBoZWxwZXIgc2Ny aXB0LCBzcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1leGl0LWNoZWNrLAphbmQgbWFrZXMgYm90 aCB0aGUgTWFrZWZpbGUgYW5kIE1lc29uIGJ1aWxkcyBpbnZva2UgaXQ6CgogICogTW92ZSB0aGUg ZXhpdCgpIGNoZWNraW5nIGxvZ2ljIGludG8gbGlicHEtZXhpdC1jaGVjaywgd3JpdHRlbiBpbiBQ ZXJsLgogICAgVGhlIHNjcmlwdCBjYWxscyBubSBvbiB0aGUgZ2l2ZW4gbGlicmFyeSwgZmlsdGVy cyBvdXQga25vd24gaGFybWxlc3MKICAgIHN5bWJvbHMgKF9fY3hhX2F0ZXhpdCwgX190c2FuX2Z1 bmNfZXhpdCwgcHRocmVhZF9leGl0KSwgYW5kIHJlcG9ydHMKICAgIGFueSByZW1haW5pbmcgZXhp dCgpLXJlbGF0ZWQgcmVmZXJlbmNlcy4KCiAgKiBDZW50cmFsaXplIHBsYXRmb3JtLXNwZWNpZmlj IGJlaGF2aW9yIGluc2lkZSB0aGUgc2NyaXB0OgogICAgICAtIFNraXAgdGhlIGNoZWNrIG9uIFNv bGFyaXMsIHdoZXJlIGxpYnBxIGluZnJhc3RydWN0dXJlIG1heSBjb21lCiAgICAgICAgZnJvbSBz dGF0aWNhbGx5LWxpbmtlZCBsaWJyYXJpZXMuCiAgICAgIC0gU2tpcCB0aGUgY2hlY2sgZW50aXJl bHkgd2hlbiBubSBpcyBub3QgZm91bmQgb3IgaXMgbm90IHVzYWJsZS4KICAgIFRoaXMgcmVtb3Zl cyB0aGUgbmVlZCBmb3Igc2VwYXJhdGUgU29sYXJpcyBjaGVja3MgYW5kIGRldGFpbGVkCiAgICBj b21tZW50cyBpbiB0aGUgTWFrZWZpbGUgYW5kIE1lc29uIGZpbGVzLgoKICAqIFJlZHVjZSB0aGUg TWFrZWZpbGUgYW5kIE1lc29uLXNpZGUgbG9naWMgdG8gYSBzaW1wbGUgaW52b2NhdGlvbiBvZgog ICAgbGlicHEtZXhpdC1jaGVjayBwbHVzIGEgYnJpZWYgY29tbWVudCB0aGF0IHRoZSBwbGF0Zm9y bSBydWxlcyBsaXZlCiAgICBpbiB0aGUgc2NyaXB0LiBNZXNvbiB1c2VzIGEgY3VzdG9tX3Rhcmdl dCB3aXRoIGEgc3RhbXAgZmlsZSBzbyB0aGUKICAgIGNoZWNrIG9ubHkgcmVydW5zIHdoZW4gbGli cHEuc28gaXMgcmVidWlsdC4KCldpdGggdGhlc2UgY2hhbmdlcywgYm90aCBhdXRvY29uZi9NYWtl ZmlsZSBhbmQgTWVzb24gYnVpbGRzIGVuZm9yY2UgdGhlCnNhbWUgZXhpdCgpIHBvbGljeSBmb3Ig bGlicHEgd2hpbGUga2VlcGluZyB0aGUgaW1wbGVtZW50YXRpb24gYW5kCnBsYXRmb3JtIHJ1bGVz IGluIGEgc2luZ2xlIHBsYWNlLgotLS0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL01ha2VmaWxlICAg ICAgICAgfCAyMCArLS0tLS0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWV4aXQtY2hlY2sg fCA5OCArKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL21l c29uLmJ1aWxkICAgICAgfCAxNyArKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAxMTggaW5zZXJ0aW9u cygrKSwgMTcgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA3NTUgc3JjL2ludGVyZmFjZXMv bGlicHEvbGlicHEtZXhpdC1jaGVjawoKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBx L01ha2VmaWxlIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUKaW5kZXggZGE2NjUwMC4u MzA1MzYxZiAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUKKysrIGIv c3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUKQEAgLTEzMCwyNiArMTMwLDEyIEBAICQoc3Rs aWIpOiBvdmVycmlkZSBPQkpTICs9ICQoT0JKU19TVEFUSUMpCiAkKHN0bGliKTogJChPQkpTX1NU QVRJQykKIAogIyBDaGVjayBmb3IgZnVuY3Rpb25zIHRoYXQgbGlicHEgbXVzdCBub3QgY2FsbCwg Y3VycmVudGx5IGp1c3QgZXhpdCgpLgotIyAoSWRlYWxseSB3ZSdkIHJlamVjdCBhYm9ydCgpIHRv bywgYnV0IHRoZXJlIGFyZSB2YXJpb3VzIHNjZW5hcmlvcyB3aGVyZQotIyBidWlsZCB0b29sY2hh aW5zIGluc2VydCBhYm9ydCgpIGNhbGxzLCBlLmcuIHRvIGltcGxlbWVudCBhc3NlcnQoKS4pCi0j IElmIG5tIGRvZXNuJ3QgZXhpc3Qgb3IgZG9lc24ndCB3b3JrIG9uIHNobGlicywgdGhpcyB0ZXN0 IHdpbGwgZG8gbm90aGluZywKLSMgd2hpY2ggaXMgZmluZS4gIFRoZSBleGNsdXNpb24gb2YgX19j eGFfYXRleGl0IGlzIG5lY2Vzc2FyeSBvbiBPcGVuQlNELAotIyB3aGljaCBzZWVtcyB0byBpbnNl cnQgcmVmZXJlbmNlcyB0byB0aGF0IGV2ZW4gaW4gcHVyZSBDIGNvZGUuIEV4Y2x1ZGluZwotIyBf X3RzYW5fZnVuY19leGl0IGlzIG5lY2Vzc2FyeSB3aGVuIHVzaW5nIFRocmVhZFNhbml0aXplciBk YXRhIHJhY2UgZGV0ZWN0b3IKLSMgd2hpY2ggdXNlIHRoaXMgZnVuY3Rpb24gZm9yIGluc3RydW1l bnRhdGlvbiBvZiBmdW5jdGlvbiBleGl0LgotIyBTa2lwIHRoZSB0ZXN0IHdoZW4gcHJvZmlsaW5n LCBhcyBnY2MgbWF5IGluc2VydCBleGl0KCkgY2FsbHMgZm9yIHRoYXQuCi0jIEFsc28gc2tpcCB0 aGUgdGVzdCBvbiBwbGF0Zm9ybXMgd2hlcmUgbGlicHEgaW5mcmFzdHJ1Y3R1cmUgbWF5IGJlIHBy b3ZpZGVkCi0jIGJ5IHN0YXRpY2FsbHktbGlua2VkIGxpYnJhcmllcywgYXMgd2UgY2FuJ3QgZXhw ZWN0IHRoZW0gdG8gaG9ub3IgdGhpcwotIyBjb2RpbmcgcnVsZS4KIGxpYnBxLXJlZnMtc3RhbXA6 ICQoc2hsaWIpCiBpZm5lcSAoJChlbmFibGVfY292ZXJhZ2UpLCB5ZXMpCi1pZmVxICgsJChmaWx0 ZXIgc29sYXJpcywkKFBPUlROQU1FKSkpCi0JQGlmIG5tIC1BIC11ICQ8IDI+L2Rldi9udWxsIHwg Z3JlcCAtdiAtZSBfX2N4YV9hdGV4aXQgLWUgX190c2FuX2Z1bmNfZXhpdCB8IGdyZXAgZXhpdDsg dGhlbiBcCi0JCWVjaG8gJ2xpYnBxIG11c3Qgbm90IGJlIGNhbGxpbmcgYW55IGZ1bmN0aW9uIHdo aWNoIGludm9rZXMgZXhpdCc7IGV4aXQgMTsgXAotCWZpCisgICAgIyBTZWUgbGlicHEtZXhpdC1j aGVjayBmb3IgZnVsbCBwbGF0Zm9ybSBydWxlcyBhbmQgd2hpdGVsaXN0aW5nLgorICAgICQoUEVS TCkgbGlicHEtZXhpdC1jaGVjayAtLWlucHV0X2ZpbGUgJDwKIGVuZGlmCi1lbmRpZgotCXRvdWNo ICRACisgICAgdG91Y2ggJEAKIAogIyBNYWtlIGRlcGVuZGVuY2llcyBvbiBwZ19jb25maWdfcGF0 aHMuaCB2aXNpYmxlIGluIGFsbCBidWlsZHMuCiBmZS1jb25uZWN0Lm86IGZlLWNvbm5lY3QuYyAk KHRvcF9idWlsZGRpcikvc3JjL3BvcnQvcGdfY29uZmlnX3BhdGhzLmgKZGlmZiAtLWdpdCBhL3Ny Yy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWV4aXQtY2hlY2sgYi9zcmMvaW50ZXJmYWNlcy9saWJw cS9saWJwcS1leGl0LWNoZWNrCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY1 MDBjZWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1leGl0 LWNoZWNrCkBAIC0wLDAgKzEsOTggQEAKKyMhL3Vzci9iaW4vcGVybAorCit1c2Ugc3RyaWN0Owor dXNlIHdhcm5pbmdzIEZBVEFMID0+ICdhbGwnOworCit1c2UgR2V0b3B0OjpMb25nOwordXNlIENv bmZpZzsKKworIworIyBQbGF0Zm9ybSAmIHRvb2wgbm90ZXM6CisjCisjIC0gUHVycG9zZTogZW5z dXJlIGxpYnBxIG5ldmVyIHJlZmVyZW5jZXMgZXhpdCgpLCBiZWNhdXNlIGNsaWVudCBsaWJyYXJp ZXMKKyMgICBtdXN0IG5vdCB0ZXJtaW5hdGUgdGhlIGhvc3QgYXBwbGljYXRpb24uCisjCisjIC0g V2hpdGVsaXN0ZWQgaW5qZWN0ZWQgc3ltYm9sczoKKyMgICAgICAgX19jeGFfYXRleGl0ICAgICAt IGluamVjdGVkIGJ5IHNvbWUgbGliY3MgKGUuZy4sIE9wZW5CU0QpCisjICAgICAgIF9fdHNhbl9m dW5jX2V4aXQgLSBUaHJlYWRTYW5pdGl6ZXIgaW5zdHJ1bWVudGF0aW9uCisjICAgICAgIHB0aHJl YWRfZXhpdCAgICAgLSBsZWdpdGltYXRlIHRocmVhZCBjbGVhbnVwCisjCisjIC0gU29sYXJpczog bGlicHEgaW5mcmFzdHJ1Y3R1cmUgbWF5IGJlIHN0YXRpY2FsbHkgbGlua2VkIC0+IHNraXAgY2hl Y2suCisjCisjIC0gbm0gYXZhaWxhYmlsaXR5OgorIyAgICAgICBJZiBubSBkb2VzIG5vdCBleGlz dCBvciBjYW5ub3QgYmUgZXhlY3V0ZWQsIHNraXAgdGhlIHNjYW4uCisjICAgICAgIFRoaXMgbWF0 Y2hlcyBQb3N0Z3JlU1FMIGJlaGF2aW9yIGluIE1ha2VmaWxlIGJ1aWxkcy4KKyMKKyMgLSBNYWtl ZmlsZSBhbmQgTWVzb24gYm90aCByZWx5IG9uIHRoaXMgc2NyaXB0IGZvciBmdWxsIGxvZ2ljLgor IworCitteSAkaW5wdXRfZmlsZTsKK215ICRzdGFtcF9maWxlOworbXkgQHByb2JsZW1hdGljX2xp bmVzOworCitHZXRvcHQ6Okxvbmc6OkdldE9wdGlvbnMoCisgICAgJ2lucHV0X2ZpbGU6cycgPT4g XCRpbnB1dF9maWxlLAorICAgICdzdGFtcF9maWxlOnMnID0+IFwkc3RhbXBfZmlsZSkgb3IgZGll ICIkMDogd3JvbmcgYXJndW1lbnRzXG4iOworCitkaWUgIiQwOiAtLWlucHV0X2ZpbGUgbXVzdCBi ZSBzcGVjaWZpZWRcbiIgdW5sZXNzIGRlZmluZWQgJGlucHV0X2ZpbGU7CisKKyMgLS0tLSBTa2lw IGVudGlyZWx5IG9uIFNvbGFyaXMgLS0tLQoraWYgKCRDb25maWd7b3NuYW1lfSA9fiAvc29sYXJp cy9pKSB7CisgICAgZXhpdCAwOworfQorCisjIC0tLS0gQ2hlY2sgaWYgJ25tJyBleGlzdHMgb24g dGhlIHN5c3RlbSAtLS0tCitteSAkbm1fcGF0aCA9IGB3aGljaCBubSAyPi9kZXYvbnVsbGA7Citj aG9tcCgkbm1fcGF0aCk7CisKK2lmICghJG5tX3BhdGggfHwgISAteCAkbm1fcGF0aCkgeworICAg ICMgbm0gbm90IGF2YWlsYWJsZSDihpIgc2tpcCBjaGVjayBncmFjZWZ1bGx5CisgICAgZXhpdCAw OworfQorCisjIC0tLS0gUnVuIG5tIHRvIHNjYW4gdW5kZWZpbmVkIHN5bWJvbHMgLS0tLQorb3Bl biBteSAkZmgsICctfCcsICIkbm1fcGF0aCAtQSAtdSAkaW5wdXRfZmlsZSAyPi9kZXYvbnVsbCIK KyAgICBvciBleGl0IDA7ICAjIElmIG5tIGZhaWxzIGF0IHJ1bnRpbWUsIHNraXAgYWxzbworCit3 aGlsZSAoPCRmaD4pCit7CisgICAgIyBBbGxvd2VkIHN5bWJvbHMKKyAgICBuZXh0IGlmIC9fX2N4 YV9hdGV4aXQvOworICAgIG5leHQgaWYgL19fdHNhbl9mdW5jX2V4aXQvOworICAgIG5leHQgaWYg L3B0aHJlYWRfZXhpdC87CisKKyAgICAjIEFueXRoaW5nIGNvbnRhaW5pbmcgImV4aXQiIGlzIHN1 c3BpY2lvdXMKKyAgICBpZiAoL2V4aXQvKQorICAgIHsKKyAgICAgICAgcHVzaCBAcHJvYmxlbWF0 aWNfbGluZXMsICRfOworICAgIH0KK30KKworaWYgKEBwcm9ibGVtYXRpY19saW5lcykKK3sKKyAg ICBwcmludCAibGlicHEgbXVzdCBub3QgYmUgY2FsbGluZyBhbnkgZnVuY3Rpb24gd2hpY2ggaW52 b2tlcyBleGl0XG4iOworICAgIHByaW50ICJQcm9ibGVtYXRpYyBzeW1ib2wgcmVmZXJlbmNlczpc biI7CisgICAgcHJpbnQgQHByb2JsZW1hdGljX2xpbmVzOworCisgICAgZXhpdCAxOworfQorZWxz ZQoreworICAgICMgTWVzb24gb3B0aW9uYWwgc3RhbXAgZmlsZQorICAgIGlmICgkc3RhbXBfZmls ZSkKKyAgICB7CisgICAgICAgIGNyZWF0ZV9zdGFtcF9maWxlKCk7CisgICAgfQorCisgICAgZXhp dCAwOworfQorCitzdWIgY3JlYXRlX3N0YW1wX2ZpbGUKK3sKKyAgICBpZiAoISgtZiAkc3RhbXBf ZmlsZSkpCisgICAgeworICAgICAgICBvcGVuIG15ICRmaCwgJz4nLCAkc3RhbXBfZmlsZQorICAg ICAgICAgICAgb3IgZGllICJjYW4ndCBvcGVuICRzdGFtcF9maWxlOiAkISI7CisgICAgICAgIGNs b3NlICRmaDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9tZXNv bi5idWlsZCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL21lc29uLmJ1aWxkCmluZGV4IGE3NGU4ODUu LjFiMzJlZWQgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL21lc29uLmJ1aWxkCisr KyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL21lc29uLmJ1aWxkCkBAIC04NSw2ICs4NSwyMyBAQCBs aWJwcSA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKICAgaW5jbHVkZV9kaXJlY3RvcmllczogW2luY2x1 ZGVfZGlyZWN0b3JpZXMoJy4nKV0KICkKIAorIyBSdW4gdGhlIHVuaWZpZWQgZXhpdCgpIGNoZWNr IHNjcmlwdCBmb3IgbGlicHEuCisjIEFsbCBwbGF0Zm9ybS1zcGVjaWZpYyBydWxlcyBhcmUgaW1w bGVtZW50ZWQgaW5zaWRlIGxpYnBxLWV4aXQtY2hlY2suCitpZiBmaW5kX3Byb2dyYW0oJ25tJywg cmVxdWlyZWQ6IGZhbHNlLCBuYXRpdmU6IHRydWUpLmZvdW5kKCkgYW5kIG5vdCBnZXRfb3B0aW9u KCdiX2NvdmVyYWdlJykKKyAgY3VzdG9tX3RhcmdldCgKKyAgICAnbGlicHEtZXhpdC1jaGVjaycs CisgICAgaW5wdXQ6IGxpYnBxX3NvLAorICAgIG91dHB1dDogJ2xpYnBxLXJlZnMtc3RhbXAnLAor ICAgIGNvbW1hbmQ6IFsKKyAgICAgIHBlcmwsCisgICAgICAgIGZpbGVzKCdsaWJwcS1leGl0LWNo ZWNrJyksCisgICAgICAgICAgJy0taW5wdXRfZmlsZScsICdASU5QVVRAJywKKyAgICAgICAgICAn LS1zdGFtcF9maWxlJywgJ0BPVVRQVVRAJworICAgIF0sCisgICAgYnVpbGRfYnlfZGVmYXVsdDog dHJ1ZSwKKyAgKQorZW5kaWYKKwogcHJpdmF0ZV9kZXBzID0gWwogICBmcm9udGVuZF9zdGxpYl9j b2RlLAogICBsaWJwcV9kZXBzLAotLSAKMi40My4wCgo= --0000000000007251d3064467a902--