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 1w1tPc-000h58-2A for pgsql-hackers@arkaria.postgresql.org; Sun, 15 Mar 2026 21:54:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w1tPa-005pCm-1d for pgsql-hackers@arkaria.postgresql.org; Sun, 15 Mar 2026 21:54:15 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w1tPa-005pCd-0T for pgsql-hackers@lists.postgresql.org; Sun, 15 Mar 2026 21:54:14 +0000 Received: from mail-ej1-x633.google.com ([2a00:1450:4864:20::633]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w1tPX-00000000K5t-3i9H for pgsql-hackers@postgresql.org; Sun, 15 Mar 2026 21:54:14 +0000 Received: by mail-ej1-x633.google.com with SMTP id a640c23a62f3a-b932fe2e1a7so469836466b.1 for ; Sun, 15 Mar 2026 14:54:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jeltef.nl; s=google; t=1773611646; x=1774216446; darn=postgresql.org; h=in-reply-to:references:mime-version:from:to:subject:cc:message-id :date:from:to:cc:subject:date:message-id:reply-to; bh=iqxAQI/Tq7iBk3+eT56O8biAlUHH6tnSwFcPGJvwxVM=; b=inRyra298oV5RTIcDQT5Iuljjh0mPOtuD2bB2jk+FvbwabzTAsbyk5m9/yYHBJ2MbM zavhZ6MThCukEYmLLU2ohoTtXgqmoPEQjqKiozulf6h2KBKS9LU8pUAeT+bktpQ9QqMP /xrF3TaVCaFFzU9IAZGM9wDI4QYtkpDrbDXCitLMMwLcLSgdzR34ZGE5yWT/KqYK4wM8 W9w0JjL3vpF8nWrizvQrTxDk3HFuswIr6PomTLCvqo1XtHOIwXsxDnERGkv0U4/JWWiE +3B/NpQmbz/H2GfNtQveZhb5lk3tGOoXtE105Gji2YkCiX903sKFkLNOw0BP/WUt+9Yh QxPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773611646; x=1774216446; h=in-reply-to:references:mime-version:from:to:subject:cc:message-id :date:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=iqxAQI/Tq7iBk3+eT56O8biAlUHH6tnSwFcPGJvwxVM=; b=qQQUTJdgj8r9fMzTppVdmvGJyvPtLOfDtKwimRneH6lHJ5AKRvD9q/6v5rBunDamO1 31Gjtcu+JfmR7XL7Wts6exjvQMxdsh9QPT0Pegv5ALRRIw0DpUJzXHkWz+Y+Ri9lolqI tkHfm+yc63OJGZRXT3Ifxk+AWzhx0bq4ku1JncXxPnX0obANU61qYchXGlnoiNv1h6F2 Hh9ov4DVNkkna8ioGlAjnJLFKSXZoSyPatfoZ08mdxxKSNuMkA2V5x3RZUn1i7+hhBNQ 2cMoOxiYYU5iowVISZLWdPKW0mb4kp/dE7VY2oQdJsDQqEgfGOIiWlKc1FKuvjQRkv35 uqNA== X-Gm-Message-State: AOJu0YzkJo/2Z6TZDPygmpUo3WuX6PiCVSPI84gXETFjSblkh5GcvUxF yxo7BCUwG7b/fwdE5ppb76046K/JuhZuxIGOgaxaPy/7s2Nt3CaiJT0MbkfbzffYddyUVPvmZlK JvCZY X-Gm-Gg: ATEYQzwSQjMdClNdKyE8L3Bsx/pCYNkH0QZtziOiEcoA9eEwmCSWrLRJvpjrsak5dv+ ovPAUI97ycAPkD+o0jsYOy6nmMyIFIkCVhWJIN5rI2jkkkqXtTb0wboMXkhhHlj8PyMl0Bke2Yv x3GzRMVxo2tCyuHbXJmCDHrm5+Gk1W4oXiqMgj8ZepAP8BmzUr/yJi6vHD4ZoBf/kqXyQvvTdeX L32/SliQf4b6RBxYXPtBluSn+fGjGduMTZgCTgMDM4nMuCj2fYmflk2otVqBmW/GpaTN9srLDGH lvbALyXCBfWrl0EFXvwYtahl2DYyWDq+9DQv4DXiILbSe84jZPNasxz7bs3jhnvTNYcCUISVjxW A7oi85j4BTk1XfB3+qdIbl84BYUByDTteJXsSfaKTOxP9i5GXBup77PenmIoTFU1FAWBBsuUKqY HIiktE7BWusiZbNckYlPRjJIv022ZdYmasaFaQm3Jch0wp/LkO X-Received: by 2002:a17:907:94d4:b0:b88:dc6:3967 with SMTP id a640c23a62f3a-b976537db9fmr692669866b.40.1773611645828; Sun, 15 Mar 2026 14:54:05 -0700 (PDT) Received: from localhost (145-53-221-196.fixed.kpn.net. [145.53.221.196]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b976cefca43sm450052266b.46.2026.03.15.14.54.04 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 15 Mar 2026 14:54:05 -0700 (PDT) Content-Type: multipart/mixed; boundary=d0ed9bae4f73ec283c24547c0177091fb49905bed4917d754d57bc7f02e3 Date: Sun, 15 Mar 2026 22:54:04 +0100 Message-Id: Cc: "pgsql-hackers" Subject: Re: Change copyObject() to use typeof_unqual To: "Peter Eisentraut" From: "Jelte Fennema-Nio" MIME-Version: 1.0 References: <92f9750f-c7f6-42d8-9a4a-85a3cbe808f3@eisentraut.org> In-Reply-To: X-TUID: A4AO3xuvIeR4 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --d0ed9bae4f73ec283c24547c0177091fb49905bed4917d754d57bc7f02e3 Content-Type: multipart/alternative; boundary=ecf0de6d8b440c3c8a7b8fa244bb087ef985f177a13b11bd5fefef0e66cf --ecf0de6d8b440c3c8a7b8fa244bb087ef985f177a13b11bd5fefef0e66cf Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8; format=Flowed On Fri, 13 Mar 2026 at 11:43, Peter Eisentraut wrote= : > There is a failure on buildfarm member taipan because it uses an unusual > combination of gcc and clang (the gcc is much newer than clang). The > only sensible workaround I could think of is a hardcoded override based > on the clang version, as in the attached patch. =20 If we can then start prefering typeof_unqual over __typeof_unqual__ in the configure check for CC, then I think I like this as a workaround. If not, then I'm starting to think that actually checking support for this feature for CLANG is probably easier to understand (and less fragile) than combining all of these tricks together. Attached is a patch to do so.=20 This only does it for CLANG, not for CLANG compiling C++ files. Theoretically that could be necessary, but I couldn't find a C++ compiler that supports any spelling of typeof_unqual. So I'm not even sure we need the current CXX check for typeof_unqual, I think we could remove that too and always use the fallback. > And alternative is that > we decide that we don't want to support this combination, meaning that > we would effectively require that clang is approximately as-old-or-newer > than gcc. Given that Tom seems to have reproduced this on Fedora 40, it sounds like we should fix it. --ecf0de6d8b440c3c8a7b8fa244bb087ef985f177a13b11bd5fefef0e66cf-- --d0ed9bae4f73ec283c24547c0177091fb49905bed4917d754d57bc7f02e3 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v1-0001-Check-CLANG-for-typeof_unqual.patch Content-Type: text/x-patch; charset=utf-8; name=v1-0001-Check-CLANG-for-typeof_unqual.patch RnJvbSAzNzdiM2I2OGMwNzNjMWI2MmJjMGU1YzM1N2VlZDUwNjI0MDIyY2I1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBTdW4sIDE1IE1hciAyMDI2IDIyOjM5OjQ1ICswMTAwClN1YmplY3Q6IFtQQVRDSCB2 MV0gQ2hlY2sgQ0xBTkcgZm9yIHR5cGVvZl91bnF1YWwKClR1cm5zIG91dCB0aGF0IENMQU5HIG9u IHRoZSBidWlsZGZhcm0gaXMgc29tZXRpbWVzIHNpZ25pZmljYW50bHkgb2xkZXIKdGhhbiB0aGUg Q0MgY29tcGlsZXIsIGFuZCB0aHVzIHN1cHBvcnRzIGRpZmZlcmVudCBmZWF0dXJlcy4gVGhpcwpl eHBsaWNpdGx5IGNoZWNrcyB0eXBlb2ZfdW5xdWFsIHN1cHBvcnQgZm9yIENMQU5HLCBiZWNhdXNl IHRoYXQncyB0aGUKZmVhdHVyZSB0aGF0IHNvbWV0aW1lcyBzZWVtcyB0byBiZSBsYWNraW5nIGlu IHByYWN0aWNlLgotLS0KIGNvbmZpZy9jLWNvbXBpbGVyLm00ICAgICAgIHwgNDUgKysrKysrKysr KysrKysrKysrKysrLS0tLS0KIGNvbmZpZ3VyZSAgICAgICAgICAgICAgICAgIHwgNjUgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KIGNvbmZpZ3VyZS5hYyAgICAgICAgICAg ICAgIHwgIDYgKysrKwogc3JjL2luY2x1ZGUvYy5oICAgICAgICAgICAgfCAxNiArKysrKysrKysr CiBzcmMvaW5jbHVkZS9wZ19jb25maWcuaC5pbiB8ICA3ICsrKysKIDUgZmlsZXMgY2hhbmdlZCwg MTIzIGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbmZpZy9j LWNvbXBpbGVyLm00IGIvY29uZmlnL2MtY29tcGlsZXIubTQKaW5kZXggODgzMzNlZjMwMWQuLjZh ZTU3MTk5YjFjIDEwMDY0NAotLS0gYS9jb25maWcvYy1jb21waWxlci5tNAorKysgYi9jb25maWcv Yy1jb21waWxlci5tNApAQCAtMTgxLDE2ICsxODEsMTIgQEAgZmldKSMgUEdBQ19DX1RZUEVPRgog IyBDaGVjayBpZiB0aGUgQyBjb21waWxlciB1bmRlcnN0YW5kcyB0eXBlb2ZfdW5xdWFsIG9yIGEg dmFyaWFudC4gIERlZmluZQogIyBIQVZFX1RZUEVPRl9VTlFVQUwgaWYgc28sIGFuZCBkZWZpbmUg J3R5cGVvZl91bnF1YWwnIHRvIHRoZSBhY3R1YWwga2V5IHdvcmQuCiAjCisjIFRlc3Qgd2l0aCBh IHZvaWQgcG9pbnRlciwgYmVjYXVzZSBNU1ZDIGRvZXNuJ3QgaGFuZGxlIHRoYXQsIGFuZCB3ZQor IyBuZWVkIHRoYXQgZm9yIGNvcHlPYmplY3QoKS4KIEFDX0RFRlVOKFtQR0FDX0NfVFlQRU9GX1VO UVVBTF0sCiBbQUNfQ0FDSEVfQ0hFQ0soZm9yIHR5cGVvZl91bnF1YWwsIHBnYWNfY3ZfY190eXBl b2ZfdW5xdWFsLAogW3BnYWNfY3ZfY190eXBlb2ZfdW5xdWFsPW5vCi0jIFRlc3QgdGhlIHVuZGVy c2NvcmUgdmFyaWFudCBmaXJzdCBzbyB0aGF0IHRoZXJlIGlzIGEgaGlnaGVyIGNoYW5jZQotIyB0 aGF0IGNsYW5nIHVzZWQgZm9yIGJpdGNvZGUgYWxzbyBzdXBwb3J0cyBpdCwgc2luY2Ugd2UgZG9u J3QgdGVzdAotIyB0aGF0IHNlcGFyYXRlbHkuCi0jCi0jIFRlc3Qgd2l0aCBhIHZvaWQgcG9pbnRl ciwgYmVjYXVzZSBNU1ZDIGRvZXNuJ3QgaGFuZGxlIHRoYXQsIGFuZCB3ZQotIyBuZWVkIHRoYXQg Zm9yIGNvcHlPYmplY3QoKS4KLWZvciBwZ2FjX2t3IGluIF9fdHlwZW9mX3VucXVhbF9fIHR5cGVv Zl91bnF1YWw7IGRvCitmb3IgcGdhY19rdyBpbiB0eXBlb2ZfdW5xdWFsIF9fdHlwZW9mX3VucXVh bF9fOyBkbwogICBBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtdLAogW2ludCB4 ID0gMDsKICRwZ2FjX2t3KHgpIHk7CkBAIC0yNDgsNyArMjQ0LDcgQEAgQUNfREVGVU4oW1BHQUNf Q1hYX1RZUEVPRl9VTlFVQUxdLAogW0FDX0NBQ0hFX0NIRUNLKGZvciBDKysgdHlwZW9mX3VucXVh bCwgcGdhY19jdl9jeHhfdHlwZW9mX3VucXVhbCwKIFtwZ2FjX2N2X2N4eF90eXBlb2ZfdW5xdWFs PW5vCiBBQ19MQU5HX1BVU0goQysrKQotZm9yIHBnYWNfa3cgaW4gX190eXBlb2ZfdW5xdWFsX18g dHlwZW9mX3VucXVhbDsgZG8KK2ZvciBwZ2FjX2t3IGluIHR5cGVvZl91bnF1YWwgX190eXBlb2Zf dW5xdWFsX187IGRvCiAgIEFDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW10sCiBb aW50IHggPSAwOwogJHBnYWNfa3coeCkgeTsKQEAgLTI3MCw2ICsyNjYsMzkgQEAgaWYgdGVzdCAi JHBnYWNfY3ZfY3h4X3R5cGVvZl91bnF1YWwiICE9IG5vOyB0aGVuCiBmaV0pIyBQR0FDX0NYWF9U WVBFT0ZfVU5RVUFMCiAKIAorIyBQR0FDX0NMQU5HX1RZUEVPRl9VTlFVQUwKKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisjIENoZWNrIGlmIENMQU5HICh1c2VkIGZvciBMTFZNIGJpdGNvZGUg Y29tcGlsYXRpb24pIHVuZGVyc3RhbmRzCisjIHR5cGVvZl91bnF1YWwgb3IgYSB2YXJpYW50LiAg RGVmaW5lIEhBVkVfQ0xBTkdfVFlQRU9GX1VOUVVBTCBpZiBzbywgYW5kCisjIGRlZmluZSAncGdf Y2xhbmdfdHlwZW9mX3VucXVhbCcgdG8gdGhlIGFjdHVhbCBrZXkgd29yZC4KKyMKK0FDX0RFRlVO KFtQR0FDX0NMQU5HX1RZUEVPRl9VTlFVQUxdLAorW0FDX0NBQ0hFX0NIRUNLKGZvciBDTEFORyB0 eXBlb2ZfdW5xdWFsLCBwZ2FjX2N2X2NsYW5nX3R5cGVvZl91bnF1YWwsCitbcGdhY19jdl9jbGFu Z190eXBlb2ZfdW5xdWFsPW5vCitwZ2FjX3NhdmVfQ0M9JENDCitDQz0iJENMQU5HIgorZm9yIHBn YWNfa3cgaW4gdHlwZW9mX3VucXVhbCBfX3R5cGVvZl91bnF1YWxfXzsgZG8KKyAgX0FDX0NPTVBJ TEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW10sCitbaW50IHggPSAwOworJHBnYWNfa3coeCkg eTsKK2NvbnN0IHZvaWQgKmE7Cit2b2lkICpiOworeSA9IHg7CitiID0gKCRwZ2FjX2t3KCphKSAq KSBhOworcmV0dXJuIHk7XSldLAorW3BnYWNfY3ZfY2xhbmdfdHlwZW9mX3VucXVhbD0kcGdhY19r d10pCisgIHRlc3QgIiRwZ2FjX2N2X2NsYW5nX3R5cGVvZl91bnF1YWwiICE9IG5vICYmIGJyZWFr Citkb25lCitDQz0iJHBnYWNfc2F2ZV9DQyJdKQoraWYgdGVzdCAiJHBnYWNfY3ZfY2xhbmdfdHlw ZW9mX3VucXVhbCIgIT0gbm87IHRoZW4KKyAgQUNfREVGSU5FKEhBVkVfQ0xBTkdfVFlQRU9GX1VO UVVBTCwgMSwKKyAgICAgICAgICAgIFtEZWZpbmUgdG8gMSBpZiBDTEFORyBmb3IgYml0Y29kZSB1 bmRlcnN0YW5kcyBgdHlwZW9mX3VucXVhbCcgb3Igc29tZXRoaW5nIHNpbWlsYXIuXSkKKyAgaWYg dGVzdCAiJHBnYWNfY3ZfY2xhbmdfdHlwZW9mX3VucXVhbCIgIT0gdHlwZW9mX3VucXVhbDsgdGhl bgorICAgIEFDX0RFRklORV9VTlFVT1RFRChwZ19jbGFuZ190eXBlb2ZfdW5xdWFsLCAkcGdhY19j dl9jbGFuZ190eXBlb2ZfdW5xdWFsLCBbRGVmaW5lIHRvIGhvdyBDTEFORyBmb3IgYml0Y29kZSBz cGVsbHMgYHR5cGVvZl91bnF1YWwnLl0pCisgIGZpCitmaV0pIyBQR0FDX0NMQU5HX1RZUEVPRl9V TlFVQUwKKworCiAKICMgUEdBQ19DX1RZUEVTX0NPTVBBVElCTEUKICMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQppbmRleCA0Yzc4OWJk OTI4OS4uODBlMjlmZjNlYWQgMTAwNzU1Ci0tLSBhL2NvbmZpZ3VyZQorKysgYi9jb25maWd1cmUK QEAgLTcwNzcsNiArNzA3Nyw5IEBAIGZpCiBpZiB0ZXN0ICIkd2l0aF9sbHZtIiA9IHllcyA7IHRo ZW4KICAgQ0xBTkdYWD0iJENMQU5HIC14YysrIgogCisgIEJJVENPREVfQ0ZMQUdTPSIkQklUQ09E RV9DRkxBR1MgLURQR19DT01QSUxJTkdfQklUQ09ERSIKKyAgQklUQ09ERV9DWFhGTEFHUz0iJEJJ VENPREVfQ1hYRkxBR1MgLURQR19DT01QSUxJTkdfQklUQ09ERSIKKwogICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgJHtDTEFOR30gc3Vw cG9ydHMgLWZuby1zdHJpY3QtYWxpYXNpbmcsIGZvciBCSVRDT0RFX0NGTEFHUyIgPiY1CiAkYXNf ZWNob19uICJjaGVja2luZyB3aGV0aGVyICR7Q0xBTkd9IHN1cHBvcnRzIC1mbm8tc3RyaWN0LWFs aWFzaW5nLCBmb3IgQklUQ09ERV9DRkxBR1MuLi4gIiA+JjY7IH0KIGlmICR7cGdhY19jdl9wcm9n X0NMQU5HX2NmbGFnc19fZm5vX3N0cmljdF9hbGlhc2luZys6fSBmYWxzZTsgdGhlbiA6CkBAIC0x NTEwNywxMyArMTUxMTAsNyBAQCBpZiAke3BnYWNfY3ZfY190eXBlb2ZfdW5xdWFsKzp9IGZhbHNl OyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgcGdhY19jdl9j X3R5cGVvZl91bnF1YWw9bm8KLSMgVGVzdCB0aGUgdW5kZXJzY29yZSB2YXJpYW50IGZpcnN0IHNv IHRoYXQgdGhlcmUgaXMgYSBoaWdoZXIgY2hhbmNlCi0jIHRoYXQgY2xhbmcgdXNlZCBmb3IgYml0 Y29kZSBhbHNvIHN1cHBvcnRzIGl0LCBzaW5jZSB3ZSBkb24ndCB0ZXN0Ci0jIHRoYXQgc2VwYXJh dGVseS4KLSMKLSMgVGVzdCB3aXRoIGEgdm9pZCBwb2ludGVyLCBiZWNhdXNlIE1TVkMgZG9lc24n dCBoYW5kbGUgdGhhdCwgYW5kIHdlCi0jIG5lZWQgdGhhdCBmb3IgY29weU9iamVjdCgpLgotZm9y IHBnYWNfa3cgaW4gX190eXBlb2ZfdW5xdWFsX18gdHlwZW9mX3VucXVhbDsgZG8KK2ZvciBwZ2Fj X2t3IGluIHR5cGVvZl91bnF1YWwgX190eXBlb2ZfdW5xdWFsX187IGRvCiAgIGNhdCBjb25mZGVm cy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKIC8qIGVuZCBjb25mZGVmcy5oLiAgKi8K IApAQCAtMTUxNjQsNyArMTUxNjEsNyBAQCBhY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAk Q1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCiBhY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg JExJQlMgPiY1JwogYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251CiAKLWZv ciBwZ2FjX2t3IGluIF9fdHlwZW9mX3VucXVhbF9fIHR5cGVvZl91bnF1YWw7IGRvCitmb3IgcGdh Y19rdyBpbiB0eXBlb2ZfdW5xdWFsIF9fdHlwZW9mX3VucXVhbF9fOyBkbwogICBjYXQgY29uZmRl ZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CiAvKiBlbmQgY29uZmRlZnMuaC4gICov CiAKQEAgLTE1MjA4LDYgKzE1MjA1LDU4IEBAIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKIF9B Q0VPRgogCiAgIGZpCitmaQoraWYgdGVzdCAiJHdpdGhfbGx2bSIgPSB5ZXM7IHRoZW4gOgorCisg IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIENM QU5HIHR5cGVvZl91bnF1YWwiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIENMQU5HIHR5 cGVvZl91bnF1YWwuLi4gIiA+JjY7IH0KK2lmICR7cGdhY19jdl9jbGFuZ190eXBlb2ZfdW5xdWFs Kzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAg cGdhY19jdl9jbGFuZ190eXBlb2ZfdW5xdWFsPW5vCitwZ2FjX3NhdmVfQ0M9JENDCitDQz0iJENM QU5HIgorZm9yIHBnYWNfa3cgaW4gdHlwZW9mX3VucXVhbCBfX3R5cGVvZl91bnF1YWxfXzsgZG8K KyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorLyogZW5kIGNv bmZkZWZzLmguICAqLworCitpbnQKK21haW4gKCkKK3sKK2ludCB4ID0gMDsKKyRwZ2FjX2t3KHgp IHk7Citjb25zdCB2b2lkICphOwordm9pZCAqYjsKK3kgPSB4OworYiA9ICgkcGdhY19rdygqYSkg KikgYTsKK3JldHVybiB5OworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitpZiBhY19mbl9j X3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6CisgIHBnYWNfY3ZfY2xhbmdfdHlwZW9mX3Vu cXVhbD0kcGdhY19rdworZmkKK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3QuJGFjX2V4dAorICB0ZXN0ICIkcGdhY19jdl9jbGFuZ190eXBlb2ZfdW5x dWFsIiAhPSBubyAmJiBicmVhaworZG9uZQorQ0M9IiRwZ2FjX3NhdmVfQ0MiCitmaQoreyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRwZ2FjX2N2X2NsYW5n X3R5cGVvZl91bnF1YWwiID4mNQorJGFzX2VjaG8gIiRwZ2FjX2N2X2NsYW5nX3R5cGVvZl91bnF1 YWwiID4mNjsgfQoraWYgdGVzdCAiJHBnYWNfY3ZfY2xhbmdfdHlwZW9mX3VucXVhbCIgIT0gbm87 IHRoZW4KKworJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9DTEFOR19UWVBFT0ZfVU5RVUFMIDEiID4+ Y29uZmRlZnMuaAorCisgIGlmIHRlc3QgIiRwZ2FjX2N2X2NsYW5nX3R5cGVvZl91bnF1YWwiICE9 IHR5cGVvZl91bnF1YWw7IHRoZW4KKworY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmlu ZSBwZ19jbGFuZ190eXBlb2ZfdW5xdWFsICRwZ2FjX2N2X2NsYW5nX3R5cGVvZl91bnF1YWwKK19B Q0VPRgorCisgIGZpCitmaQorCiBmaQogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBjaGVja2luZyBmb3IgX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCIgPiY1CiAk YXNfZWNob19uICJjaGVja2luZyBmb3IgX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcC4uLiAi ID4mNjsgfQpkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IDll ZGZmZTQ4MWE2Li42OWFkMDE0MjM4ZiAxMDA2NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2Nv bmZpZ3VyZS5hYwpAQCAtNjg2LDYgKzY4Niw5IEBAIEFDX1NVQlNUKENYWEZMQUdTX1NMX01PRFVM RSkKIGlmIHRlc3QgIiR3aXRoX2xsdm0iID0geWVzIDsgdGhlbgogICBDTEFOR1hYPSIkQ0xBTkcg LXhjKysiCiAKKyAgQklUQ09ERV9DRkxBR1M9IiRCSVRDT0RFX0NGTEFHUyAtRFBHX0NPTVBJTElO R19CSVRDT0RFIgorICBCSVRDT0RFX0NYWEZMQUdTPSIkQklUQ09ERV9DWFhGTEFHUyAtRFBHX0NP TVBJTElOR19CSVRDT0RFIgorCiAgIFBHQUNfUFJPR19WQVJDQ19WQVJGTEFHU19PUFQoQ0xBTkcs IEJJVENPREVfQ0ZMQUdTLCBbLWZuby1zdHJpY3QtYWxpYXNpbmddKQogICBQR0FDX1BST0dfVkFS Q1hYX1ZBUkZMQUdTX09QVChDTEFOR1hYLCBCSVRDT0RFX0NYWEZMQUdTLCBbLWZuby1zdHJpY3Qt YWxpYXNpbmddKQogICBQR0FDX1BST0dfVkFSQ0NfVkFSRkxBR1NfT1BUKENMQU5HLCBCSVRDT0RF X0NGTEFHUywgWy1md3JhcHZdKQpAQCAtMTczNCw2ICsxNzM3LDkgQEAgUEdBQ19DX1RZUEVPRgog UEdBQ19DWFhfVFlQRU9GCiBQR0FDX0NfVFlQRU9GX1VOUVVBTAogUEdBQ19DWFhfVFlQRU9GX1VO UVVBTAorQVNfSUYoW3Rlc3QgIiR3aXRoX2xsdm0iID0geWVzXSwgWworICBQR0FDX0NMQU5HX1RZ UEVPRl9VTlFVQUwKK10pCiBQR0FDX0NfVFlQRVNfQ09NUEFUSUJMRQogUEdBQ19DX0JVSUxUSU5f Q09OU1RBTlRfUAogUEdBQ19DX0JVSUxUSU5fT1BfT1ZFUkZMT1cKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2MuaCBiL3NyYy9pbmNsdWRlL2MuaAppbmRleCAyOWZlZjJmNTRlMS4uZTBkZmI4OTc1 MjkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2MuaAorKysgYi9zcmMvaW5jbHVkZS9jLmgKQEAg LTQ2Niw2ICs0NjYsMjIgQEAgZXh0ZXJuICJDKysiCiAjZW5kaWYKICNlbmRpZgkJCQkJCQkvKiBf X2NwbHVzcGx1cyAqLwogCisvKgorICogT3ZlcnJpZGUgdHlwZW9mX3VucXVhbCBmb3IgTExWTSBi aXRjb2RlIGNvbXBpbGF0aW9uIHdoZW4gQ0xBTkcgZG9lc24ndAorICogc3VwcG9ydCB0aGUgc2Ft ZSBrZXl3b3JkIGFzIENDLiAgQW5hbG9nb3VzIHRvIHRoZSBDKysgb3ZlcnJpZGUgYWJvdmUuCisg KiBQR19DT01QSUxJTkdfQklUQ09ERSBpcyBkZWZpbmVkIGluIEJJVENPREVfQ0ZMQUdTLgorICov CisjaWYgZGVmaW5lZChQR19DT01QSUxJTkdfQklUQ09ERSkgJiYgIWRlZmluZWQoX19jcGx1c3Bs dXMpCisjdW5kZWYgSEFWRV9UWVBFT0ZfVU5RVUFMCisjdW5kZWYgdHlwZW9mX3VucXVhbAorI2lm ZGVmIHBnX2NsYW5nX3R5cGVvZl91bnF1YWwKKyNkZWZpbmUgdHlwZW9mX3VucXVhbCh4KSBwZ19j bGFuZ190eXBlb2ZfdW5xdWFsKHgpCisjZGVmaW5lIEhBVkVfVFlQRU9GX1VOUVVBTCAxCisjZWxp ZiBkZWZpbmVkKEhBVkVfQ0xBTkdfVFlQRU9GX1VOUVVBTCkKKyNkZWZpbmUgSEFWRV9UWVBFT0Zf VU5RVUFMIDEKKyNlbmRpZgorI2VuZGlmCQkJCQkJCS8qIFBHX0NPTVBJTElOR19CSVRDT0RFICYm ICFfX2NwbHVzcGx1cyAqLworCiAvKgogICogQ3BwQXNTdHJpbmcKICAqCQlDb252ZXJ0IHRoZSBh cmd1bWVudCB0byBhIHN0cmluZywgdXNpbmcgdGhlIEMgcHJlcHJvY2Vzc29yLgpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvcGdfY29uZmlnLmguaW4gYi9zcmMvaW5jbHVkZS9wZ19jb25maWcuaC5p bgppbmRleCA3OTM3OWE0ZDEyNS4uYjFjMjBjZTc1NGEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3BnX2NvbmZpZy5oLmluCisrKyBiL3NyYy9pbmNsdWRlL3BnX2NvbmZpZy5oLmluCkBAIC01NCw2 ICs1NCwxMCBAQAogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBiYWNrdHJhY2Vfc3lt Ym9scycgZnVuY3Rpb24uICovCiAjdW5kZWYgSEFWRV9CQUNLVFJBQ0VfU1lNQk9MUwogCisvKiBE ZWZpbmUgdG8gMSBpZiBDTEFORyBmb3IgYml0Y29kZSB1bmRlcnN0YW5kcyBgdHlwZW9mX3VucXVh bCcgb3Igc29tZXRoaW5nCisgICBzaW1pbGFyLiAqLworI3VuZGVmIEhBVkVfQ0xBTkdfVFlQRU9G X1VOUVVBTAorCiAvKiBEZWZpbmUgdG8gMSBpZiB5b3VyIGNvbXBpbGVyIGhhbmRsZXMgY29tcHV0 ZWQgZ290b3MuICovCiAjdW5kZWYgSEFWRV9DT01QVVRFRF9HT1RPCiAKQEAgLTc4OSw2ICs3OTMs OSBAQAogLyogRGVmaW5lIGZvciBsYXJnZSBmaWxlcywgb24gQUlYLXN0eWxlIGhvc3RzLiAqLwog I3VuZGVmIF9MQVJHRV9GSUxFUwogCisvKiBEZWZpbmUgdG8gaG93IENMQU5HIGZvciBiaXRjb2Rl IHNwZWxscyBgdHlwZW9mX3VucXVhbCcuICovCisjdW5kZWYgcGdfY2xhbmdfdHlwZW9mX3VucXVh bAorCiAvKiBEZWZpbmUgdG8gaG93IHRoZSBDKysgY29tcGlsZXIgc3BlbGxzIGB0eXBlb2YnLiAq LwogI3VuZGVmIHBnX2N4eF90eXBlb2YKIAoKYmFzZS1jb21taXQ6IGE3OTM2NzdlNTdiYzI3YzY3 NGNiOTRiMjMwMTY0YjJjMjhmNGNiYWUKLS0gCjIuNTMuMAoK --d0ed9bae4f73ec283c24547c0177091fb49905bed4917d754d57bc7f02e3--