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 1vbqzB-00Eglo-2W for pgsql-hackers@arkaria.postgresql.org; Sat, 03 Jan 2026 02:03:22 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vbqzA-00BqqX-0i for pgsql-hackers@arkaria.postgresql.org; Sat, 03 Jan 2026 02:03:21 +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 1vbqz9-00BqqP-2j for pgsql-hackers@lists.postgresql.org; Sat, 03 Jan 2026 02:03:20 +0000 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vbqz7-004Ake-1s for pgsql-hackers@lists.postgresql.org; Sat, 03 Jan 2026 02:03:20 +0000 Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-29f2d829667so24103435ad.0 for ; Fri, 02 Jan 2026 18:03:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767405794; x=1768010594; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=oXzG02kj6fXUA0MhUOgWvMVCIIp8n5XBElHZ9TzZK4U=; b=O+aG1vZRdzFQgponKLpb09b6Qs3wVeqP32Rh0iWvpYbhzPjmJM2I7855jVSNWmeppk U2l3uy6eozVhokkiP+frY3U6Jg9oNq0GPtmJbYOMDDJVBBprCXzfyMPb8JeCXQ/SpM/V RCl4bkEva2HqnR3lhtdIPFt1CrUtNjFffVbAxaW6yP2GKf9rBcdxsskE7Vu3s2WAt3Zo +h8DKsH6ePLXFW6EoDEZnhw3DAlG646PlMdeMIBCZkzN1EC7LYiabgoSGDBvedi0ad8Y m1j/UA4KKxVpuytQV1kGSz9RpV7pf2Wih/KIDbaqP3RSRKeOO3f3pVSVFIQ/ujeeG2hI gStA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767405794; x=1768010594; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=oXzG02kj6fXUA0MhUOgWvMVCIIp8n5XBElHZ9TzZK4U=; b=VmC9wGihLQz+lyIGA/e5GXkeTGQ0t+4UYVROS0Xy4mb9XFAW4DUaj0rTRafeTaPP36 8U4c3tG7bbcmg2rnv80KKegNUkBAxLsiWt+skDT322cpGzn2Y/HJK/HrsnEbvjrHSbJJ F7sCRVLoqkTyzcxTlDVmhEpm4XOg8aauNry3q0/SQVD4LCzWsp9f1hgioJSm7s5iJPdN JWNqiF4hgALY3vdUOzVr9c+/42Et13sKLiDbEDJdkutE786eWn4rN47jsDGhTtG3cB7x cWejXviIOnawoRynh+MVs92FEEPxDJ4AgFnU1/7F4XtB+H53ty/OXD2tFEUSARvWXnGM IwTw== X-Gm-Message-State: AOJu0YyOLErhUF7zSxfIg4jiDJ+LsU48R4hlXtgOt9fQYH2BS/kFCCcE jUK6pilQN6GCEcr6QVv695w4+wecW/LpLSLV+iwM0ZVsdjR8675zrLIupBZ3MB1nd4nruryM0VQ /YkcmnaToa582b26AdnBaz5VmeXqqLn1ggC02 X-Gm-Gg: AY/fxX6KNyM/Q2xXi4Mr8/mWyXuIjEuKImnew1Ycr4mNa5qRI3+mB4k03PiTFVl1/9h r463D4RSYzI+JJvlIsjBEx4BFVBgnJAjShoVt3h8kUCa2WUrF27OUcFriRThYl41R9D0IeDA6Hm EMdLVbaK7V8GAQqln4+cyk8/YPzXaWTQMj7z34s+dAWyd+JIM/GAQ4ds8gbrkQpmVJ2ublQugrq nuj8RBWlZXmUAQE6AhIoFWF4roKhIA04nu38vPbyKCzSoLNUU/u6xWo3eyNPT0pYlPGxIKHtEC9 SM1UFz+zdiIxdUDje4Cfx8kB43dv6qQXBbNoafZ6QU+P9Y52jFDg X-Google-Smtp-Source: AGHT+IEuul3iTuaAotezfhE4Z+xXmn5QPC4ZcTrb7+Bx+clG2AneB8j4NTFgWCulDIyja+zzDikyTRWXZjKyC+JMPoc= X-Received: by 2002:a05:7300:e9d3:10b0:2ac:19ac:ba3e with SMTP id 5a478bee46e88-2b05ec64c5bmr15717530eec.9.1767405794293; Fri, 02 Jan 2026 18:03:14 -0800 (PST) MIME-Version: 1.0 From: Thomas Munro Date: Sat, 3 Jan 2026 15:02:37 +1300 X-Gm-Features: AQt7F2rwARSQiIvpOuj94LoWXGj4TXssIuU52NzNLJREdYB7BudC3mM5bNIOhiI Message-ID: Subject: LLVM 22 To: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000008b98c80647723aab" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000008b98c80647723aab Content-Type: text/plain; charset="UTF-8" Hi, Ideally we should have all changes for LLVM 22 in our February minor releases. I have written up some notes on release synchronisation on the wiki[1] to show the scheduling problem if we don't. The second patch here still needs some validation. 1. We won't need our local llvm::backport::SectionMemoryManager for LLVM 22, so it will be nice to draw a line under that messy business. See commit message for details. You can review the differences between our in-tree copy and the code that was finally committed and will shortly ship in LLVM 22 like this: LLVM_BRANCH=main LLVM_URL=https://raw.githubusercontent.com/llvm/llvm-project/refs/heads curl -s \ $LLVM_URL/$LLVM_BRANCH/llvm/include/llvm/ExecutionEngine/SectionMemoryManager.h | \ diff -u - src/include/jit/SectionMemoryManager.h curl -s \ $LLVM_URL/$LLVM_BRANCH/llvm/lib/ExecutionEngine/SectionMemoryManager.cpp | \ diff -u - src/backend/jit/llvm/SectionMemoryManager.cpp In a week or two, LLVM_BRANCH=release/22.x should work too. I've attached the output, which shows the expected changes in our copy, namely: * top-of-file comments * namespace change * tweaks for older LLVM versions * tree-wide spellchecks and #include "" -> <> changes They haven't made any changes on their side, except for adding some LLVM_ABI macros added in LLVM 20 that we missed. See commit message for why we don't want those. The place in llvmjit_backport.h that does: -#if defined(__aarch64__) +#if defined(__aarch64__) && LLVM_VERSION_MAJOR < 22 #define USE_LLVM_BACKPORT_SECTION_MEMORY_MANAGER ... would be like this in REL_17_STABLE and earlier: +#if defined(__aarch64__) && LLVM_VERSION_MAJOR > 11 && LLVM_VERSION_MAJOR < 22 That's because we never made the backport work with LLVM < 12, and I have heard no complaints about that so at this point it looks like we got away with it. 2. LLVM 22 changed the semantics of the "lifetime.end" instruction. See commit message for references. Without this change, LLVM main/22 assertions fail in the regression tests with messages like this in postmaster.log: Intrinsic has incorrect argument type! ptr @llvm.lifetime.end.p0 Intrinsic has incorrect argument type! ptr @llvm.lifetime.end.p0 2026-01-02 17:28:31.394 NZDT client backend[42798] pg_regress/boolean FATAL: fatal llvm error: Broken module found, compilation aborted! I haven't seen anything bad happen in non-assertion builds. Here's a potential minimal fix. I haven't yet proven that the optimisation is still working as expected. Probably need to compile an expression that calls an inlined function and then a non-inlined function with jit_dump_bitcode=true, then find the right XXX.bc file under pgdata, llvm-dis XXX.bc, llc XXX.ll, then visually inspect XXX.s with enough caffeine to confirm that it's not spilling something (ie store instructions) where previously it didn't, but I wanted to post what I had so far to see if anyone has a better idea or an easy way to test it... [1] https://wiki.postgresql.org/wiki/LLVM#Cadence --0000000000008b98c80647723aab Content-Type: text/plain; charset="US-ASCII"; name="SectionMemoryManager-diff.txt" Content-Disposition: attachment; filename="SectionMemoryManager-diff.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mjxn7srm2 LS0tIC0JMjAyNi0wMS0wMiAxNzowMzo0My43OTUyMjgwMDAgKzEzMDAKKysrIHNyYy9pbmNsdWRl L2ppdC9TZWN0aW9uTWVtb3J5TWFuYWdlci5oCTIwMjYtMDEtMDIgMTY6NTI6NTAuMzUyMDk1MDAw ICsxMzAwCkBAIC0xLDMgKzEsOCBAQAorLyoKKyAqIFRoaXMgaXMgYSBjb3B5IG9mIExMVk0gc291 cmNlIGNvZGUgbW9kaWZpZWQgYnkgdGhlIFBvc3RncmVTUUwgcHJvamVjdC4KKyAqIFNlZSBTZWN0 aW9uTWVtb3J5TWFuYWdlci5jcHAgZm9yIG5vdGVzIG9uIHByb3ZlbmFuY2UgYW5kIGxpY2Vuc2Uu CisgKi8KKwogLy89PT0tIFNlY3Rpb25NZW1vcnlNYW5hZ2VyLmggLSBNZW1vcnkgbWFuYWdlciBm b3IgTUNKSVQvUnREeWxkIC0qLSBDKysgLSotPT09Ly8KIC8vCiAvLyBQYXJ0IG9mIHRoZSBMTFZN IFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRp b25zLgpAQCAtMTEsMTggKzE2LDE5IEBACiAvLwogLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KIAot I2lmbmRlZiBMTFZNX0VYRUNVVElPTkVOR0lORV9TRUNUSU9OTUVNT1JZTUFOQUdFUl9ICi0jZGVm aW5lIExMVk1fRVhFQ1VUSU9ORU5HSU5FX1NFQ1RJT05NRU1PUllNQU5BR0VSX0gKKyNpZm5kZWYg TExWTV9FWEVDVVRJT05FTkdJTkVfQkFDS1BPUlRfU0VDVElPTk1FTU9SWU1BTkFHRVJfSAorI2Rl ZmluZSBMTFZNX0VYRUNVVElPTkVOR0lORV9CQUNLUE9SVF9TRUNUSU9OTUVNT1JZTUFOQUdFUl9I CiAKLSNpbmNsdWRlICJsbHZtL0FEVC9TbWFsbFZlY3Rvci5oIgotI2luY2x1ZGUgImxsdm0vRXhl Y3V0aW9uRW5naW5lL1JURHlsZE1lbW9yeU1hbmFnZXIuaCIKLSNpbmNsdWRlICJsbHZtL1N1cHBv cnQvQ29tcGlsZXIuaCIKLSNpbmNsdWRlICJsbHZtL1N1cHBvcnQvTWVtb3J5LmgiCisjaW5jbHVk ZSA8bGx2bS9BRFQvU21hbGxWZWN0b3IuaD4KKyNpbmNsdWRlIDxsbHZtL0V4ZWN1dGlvbkVuZ2lu ZS9SVER5bGRNZW1vcnlNYW5hZ2VyLmg+CisjaW5jbHVkZSA8bGx2bS9TdXBwb3J0L0FsaWdubWVu dC5oPgorI2luY2x1ZGUgPGxsdm0vU3VwcG9ydC9NZW1vcnkuaD4KICNpbmNsdWRlIDxjc3RkaW50 PgogI2luY2x1ZGUgPHN0cmluZz4KICNpbmNsdWRlIDxzeXN0ZW1fZXJyb3I+CiAKIG5hbWVzcGFj ZSBsbHZtIHsKK25hbWVzcGFjZSBiYWNrcG9ydCB7CiAKIC8vLyBUaGlzIGlzIGEgc2ltcGxlIG1l bW9yeSBtYW5hZ2VyIHdoaWNoIGltcGxlbWVudHMgdGhlIG1ldGhvZHMgY2FsbGVkIGJ5CiAvLy8g dGhlIFJ1bnRpbWVEeWxkIGNsYXNzIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3Igc2VjdGlvbi1iYXNl ZCBsb2FkaW5nIG9mCkBAIC0zNyw3ICs0Myw3IEBACiAvLy8gaW4gdGhlIEpJVGVkIG9iamVjdC4g IFBlcm1pc3Npb25zIGNhbiBiZSBhcHBsaWVkIGVpdGhlciBieSBjYWxsaW5nCiAvLy8gTUNKSVQ6 OmZpbmFsaXplT2JqZWN0IG9yIGJ5IGNhbGxpbmcgU2VjdGlvbk1lbW9yeU1hbmFnZXI6OmZpbmFs aXplTWVtb3J5CiAvLy8gZGlyZWN0bHkuICBDbGllbnRzIG9mIE1DSklUIHNob3VsZCBjYWxsIE1D SklUOjpmaW5hbGl6ZU9iamVjdC4KLWNsYXNzIExMVk1fQUJJIFNlY3Rpb25NZW1vcnlNYW5hZ2Vy IDogcHVibGljIFJURHlsZE1lbW9yeU1hbmFnZXIgeworY2xhc3MgU2VjdGlvbk1lbW9yeU1hbmFn ZXIgOiBwdWJsaWMgUlREeWxkTWVtb3J5TWFuYWdlciB7CiBwdWJsaWM6CiAgIC8vLyBUaGlzIGVu dW0gZGVzY3JpYmVzIHRoZSB2YXJpb3VzIHJlYXNvbnMgdG8gYWxsb2NhdGUgcGFnZXMgZnJvbQog ICAvLy8gYWxsb2NhdGVNYXBwZWRNZW1vcnkuCkBAIC00OSw3ICs1NSw3IEBACiAKICAgLy8vIElt cGxlbWVudGF0aW9ucyBvZiB0aGlzIGludGVyZmFjZSBhcmUgdXNlZCBieSBTZWN0aW9uTWVtb3J5 TWFuYWdlciB0bwogICAvLy8gcmVxdWVzdCBwYWdlcyBmcm9tIHRoZSBvcGVyYXRpbmcgc3lzdGVt LgotICBjbGFzcyBMTFZNX0FCSSBNZW1vcnlNYXBwZXIgeworICBjbGFzcyBNZW1vcnlNYXBwZXIg ewogICBwdWJsaWM6CiAgICAgLy8vIFRoaXMgbWV0aG9kIGF0dGVtcHRzIHRvIGFsbG9jYXRlIFxw IE51bUJ5dGVzIGJ5dGVzIG9mIHZpcnR1YWwgbWVtb3J5IGZvcgogICAgIC8vLyBccCBQdXJwb3Nl LiAgXHAgTmVhckJsb2NrIG1heSBwb2ludCB0byBhbiBleGlzdGluZyBhbGxvY2F0aW9uLCBpbiB3 aGljaApAQCAtMTE5LDkgKzEyNSwxNyBAQAogICAvLy8gSW1wbGVtZW50cyBhbGxvY2F0aW5nIGFs bCBtZW1vcnkgaW4gYSBzaW5nbGUgYmxvY2suIFRoaXMgaXMgcmVxdWlyZWQgdG8KICAgLy8vIGxp bWl0IG1lbW9yeSBvZmZzZXRzIHRvIGZpdCB0aGUgQVJNIEFCSTsgbGFyZ2UgbWVtb3J5IHN5c3Rl bXMgbWF5CiAgIC8vLyBvdGhlcndpc2UgYWxsb2NhdGUgc2VwYXJhdGUgc2VjdGlvbnMgdG9vIGZh ciBhcGFydC4KKyNpZiBMTFZNX1ZFUlNJT05fTUFKT1IgPCAxNgorICB2aXJ0dWFsIHZvaWQgcmVz ZXJ2ZUFsbG9jYXRpb25TcGFjZSh1aW50cHRyX3QgQ29kZVNpemUsIHVpbnQzMl90IENvZGVBbGln biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90IFJPRGF0 YVNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IFJP RGF0YUFsaWduLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50cHRy X3QgUldEYXRhU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDMyX3QgUldEYXRhQWxpZ24pIG92ZXJyaWRlOworI2Vsc2UKICAgdm9pZCByZXNlcnZlQWxsb2Nh dGlvblNwYWNlKHVpbnRwdHJfdCBDb2RlU2l6ZSwgQWxpZ24gQ29kZUFsaWduLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90IFJPRGF0YVNpemUsIEFsaWduIFJPRGF0YUFs aWduLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90IFJXRGF0YVNpemUs IEFsaWduIFJXRGF0YUFsaWduKSBvdmVycmlkZTsKKyNlbmRpZgogCiAgIC8vLyBBbGxvY2F0ZXMg YSBtZW1vcnkgYmxvY2sgb2YgKGF0IGxlYXN0KSB0aGUgZ2l2ZW4gc2l6ZSBzdWl0YWJsZSBmb3IK ICAgLy8vIGV4ZWN1dGFibGUgY29kZS4KQEAgLTEzOSw3ICsxNTMsNyBAQAogICAvLy8gYSBkZWZh dWx0IGFsaWdubWVudCBvZiAxNiB3aWxsIGJlIHVzZWQuCiAgIHVpbnQ4X3QgKmFsbG9jYXRlRGF0 YVNlY3Rpb24odWludHB0cl90IFNpemUsIHVuc2lnbmVkIEFsaWdubWVudCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBTZWN0aW9uSUQsIFN0cmluZ1JlZiBTZWN0aW9u TmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGlzUmVhZE9ubHkpIG92 ZXJyaWRlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgSXNSZWFkT25seSkg b3ZlcnJpZGU7CiAKICAgLy8vIFVwZGF0ZSBzZWN0aW9uLXNwZWNpZmljIG1lbW9yeSBwZXJtaXNz aW9ucyBhbmQgb3RoZXIgYXR0cmlidXRlcy4KICAgLy8vCkBAIC0xNjgsNyArMTgyLDcgQEAKICAg ICAvLyBUaGUgYWN0dWFsIGJsb2NrIG9mIGZyZWUgbWVtb3J5CiAgICAgc3lzOjpNZW1vcnlCbG9j ayBGcmVlOwogICAgIC8vIElmIHRoZXJlIGlzIGEgcGVuZGluZyBhbGxvY2F0aW9uIGZyb20gdGhl IHNhbWUgcmVzZXJ2YXRpb24gcmlnaHQgYmVmb3JlCi0gICAgLy8gdGhpcyBibG9jaywgc3RvcmUg aXQncyBpbmRleCBpbiBQZW5kaW5nTWVtLCB0byBiZSBhYmxlIHRvIHVwZGF0ZSB0aGUKKyAgICAv LyB0aGlzIGJsb2NrLCBzdG9yZSBpdHMgaW5kZXggaW4gUGVuZGluZ01lbSwgdG8gYmUgYWJsZSB0 byB1cGRhdGUgdGhlCiAgICAgLy8gcGVuZGluZyByZWdpb24gaWYgcGFydCBvZiB0aGlzIGJsb2Nr IGlzIGFsbG9jYXRlZCwgcmF0aGVyIHRoYW4gaGF2aW5nIHRvCiAgICAgLy8gY3JlYXRlIGEgbmV3 IG9uZQogICAgIHVuc2lnbmVkIFBlbmRpbmdQcmVmaXhJbmRleDsKQEAgLTIwNiw2ICsyMjAsNyBA QAogICBib29sIFJlc2VydmVBbGxvY2F0aW9uOwogfTsKIAorfSAvLyBlbmQgbmFtZXNwYWNlIGJh Y2twb3J0CiB9IC8vIGVuZCBuYW1lc3BhY2UgbGx2bQogCi0jZW5kaWYgLy8gTExWTV9FWEVDVVRJ T05FTkdJTkVfU0VDVElPTk1FTU9SWU1BTkFHRVJfSAorI2VuZGlmIC8vIExMVk1fRVhFQ1VUSU9O RU5HSU5FX0JBQ0tQT1JUX1NFQ1RJT05NRU1PUllNQU5BR0VSX0gKLS0tIC0JMjAyNi0wMS0wMiAx NzowMzo1Ny42NzIyODUwMDAgKzEzMDAKKysrIHNyYy9iYWNrZW5kL2ppdC9sbHZtL1NlY3Rpb25N ZW1vcnlNYW5hZ2VyLmNwcAkyMDI2LTAxLTAyIDE2OjUyOjUwLjM1MTkzODAwMCArMTMwMApAQCAt MSwzICsxLDE5IEBACisvKgorICogVGhpcyBmaWxlIGlzIGZyb20gTExWTSAyMiAob3JpZ2luYWxs eSBwdWxsIHJlcXVlc3QgIzcxOTY4KSwgd2l0aCBtaW5vcgorICogbW9kaWZpY2F0aW9ucyB0byBh dm9pZCBuYW1lIGNsYXNoIGFuZCB3b3JrIHdpdGggb2xkZXIgTExWTSB2ZXJzaW9ucy4gIEl0Cisg KiByZXBsYWNlcyBsbHZtOjpTZWN0aW9uTWVtb3J5TWFuYWdlciwgYW5kIGlzIGluamVjdGVkIGlu dG8gbGx2bTo6UnVudGltZUR5bGQKKyAqIHRvIGZpeCBhIG1lbW9yeSBsYXlvdXQgYnVnIG9uIGxh cmdlIG1lbW9yeSBBUk0gc3lzdGVtcyBvbiBMTFZNIDwgMjIuCisgKgorICogV2UgY2FuIHJlbW92 ZSB0aGlzIGNvZGUgKC5jcHAsIC5oLCAuTElDRU5TRSkgb25jZSBMTFZNIDIyIGlzIG91ciBtaW5p bXVtCisgKiBzdXBwb3J0ZWQgdmVyc2lvbiBvciB3ZSd2ZSBzd2l0Y2hlZCB0byBKSVRMaW5rIGZv ciBhdCBsZWFzdCBBYXJjaDY0LgorICoKKyAqIFRoaXMgZmlsZSBpcyBhIG1vZGlmaWVkIGNvcHkg b2YgYSBwYXJ0IG9mIHRoZSBMTFZNIHNvdXJjZSBjb2RlIHRoYXQKKyAqIHdlIHdvdWxkIG5vcm1h bGx5IGFjY2VzcyBmcm9tIHRoZSBMTFZNIGxpYnJhcnkuICBJdCBpcyB0aGVyZWZvcmUKKyAqIGNv dmVyZWQgYnkgdGhlIGxpY2Vuc2UgYXQgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCwgcmVw cm9kdWNlZAorICogdmVyYmF0aW0gaW4gU2VjdGlvbk1lbW9yeU1hbmFnZXIuTElDRU5TRSBpbiBm dWxmaWxsbWVudCBvZiBjbGF1c2UKKyAqIDRhLgorICovCisKIC8vPT09LSBTZWN0aW9uTWVtb3J5 TWFuYWdlci5jcHAgLSBNZW1vcnkgbWFuYWdlciBmb3IgTUNKSVQvUnREeWxkICotIEMrKyAtKi09 PS8vCiAvLwogLy8gUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExp Y2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KQEAgLTExLDExICsyNywxNiBAQAogLy8K IC8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCiAKLSNpbmNsdWRlICJsbHZtL0V4ZWN1dGlvbkVuZ2lu ZS9TZWN0aW9uTWVtb3J5TWFuYWdlci5oIgotI2luY2x1ZGUgImxsdm0vQ29uZmlnL2NvbmZpZy5o IgotI2luY2x1ZGUgImxsdm0vU3VwcG9ydC9Qcm9jZXNzLmgiCisjaW5jbHVkZSAiaml0L2xsdm1q aXRfYmFja3BvcnQuaCIKIAorI2lmZGVmIFVTRV9MTFZNX0JBQ0tQT1JUX1NFQ1RJT05fTUVNT1JZ X01BTkFHRVIKKworI2luY2x1ZGUgImppdC9TZWN0aW9uTWVtb3J5TWFuYWdlci5oIgorI2luY2x1 ZGUgPGxsdm0vU3VwcG9ydC9NYXRoRXh0cmFzLmg+CisjaW5jbHVkZSA8bGx2bS9TdXBwb3J0L1By b2Nlc3MuaD4KKwogbmFtZXNwYWNlIGxsdm0geworbmFtZXNwYWNlIGJhY2twb3J0IHsKIAogYm9v bCBTZWN0aW9uTWVtb3J5TWFuYWdlcjo6aGFzU3BhY2UoY29uc3QgTWVtb3J5R3JvdXAgJk1lbUdy b3VwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90IFNpemUp IGNvbnN0IHsKQEAgLTI2LDkgKzQ3LDIxIEBACiAgIHJldHVybiBmYWxzZTsKIH0KIAorI2lmIExM Vk1fVkVSU0lPTl9NQUpPUiA8IDE2Cit2b2lkIFNlY3Rpb25NZW1vcnlNYW5hZ2VyOjpyZXNlcnZl QWxsb2NhdGlvblNwYWNlKHVpbnRwdHJfdCBDb2RlU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgQ29kZUFsaWduX2ksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnRwdHJfdCBS T0RhdGFTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1aW50MzJfdCBST0RhdGFBbGlnbl9pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1aW50cHRyX3QgUldEYXRhU2l6ZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgUldEYXRhQWxp Z25faSkgeworICBBbGlnbiBDb2RlQWxpZ24oQ29kZUFsaWduX2kpOworICBBbGlnbiBST0RhdGFB bGlnbihST0RhdGFBbGlnbl9pKTsKKyAgQWxpZ24gUldEYXRhQWxpZ24oUldEYXRhQWxpZ25faSk7 CisjZWxzZQogdm9pZCBTZWN0aW9uTWVtb3J5TWFuYWdlcjo6cmVzZXJ2ZUFsbG9jYXRpb25TcGFj ZSgKICAgICB1aW50cHRyX3QgQ29kZVNpemUsIEFsaWduIENvZGVBbGlnbiwgdWludHB0cl90IFJP RGF0YVNpemUsCiAgICAgQWxpZ24gUk9EYXRhQWxpZ24sIHVpbnRwdHJfdCBSV0RhdGFTaXplLCBB bGlnbiBSV0RhdGFBbGlnbikgeworI2VuZGlmCiAgIGlmIChDb2RlU2l6ZSA9PSAwICYmIFJPRGF0 YVNpemUgPT0gMCAmJiBSV0RhdGFTaXplID09IDApCiAgICAgcmV0dXJuOwogCkBAIC0zNjUsNCAr Mzk4LDcgQEAKICAgfQogfQogCit9IC8vIG5hbWVzcGFjZSBiYWNrcG9ydAogfSAvLyBuYW1lc3Bh Y2UgbGx2bQorCisjZW5kaWYK --0000000000008b98c80647723aab Content-Type: text/x-patch; charset="US-ASCII"; name="0001-jit-Skip-local-SectionMemoryManager-for-LLVM-22.patch" Content-Disposition: attachment; filename="0001-jit-Skip-local-SectionMemoryManager-for-LLVM-22.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mjxn7ksq0 RnJvbSBhZTcwZWVhMjBhOTE3MzUwMmM1ZmZjOTdhNmM4NTc0MWUwYjkyMmUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUaG9tYXMgTXVucm8gPHRob21hcy5tdW5yb0BnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMzEgRGVjIDIwMjUgMTc6MzU6MDQgKzEzMDAKU3ViamVjdDogW1BBVENIIDEv Ml0gaml0OiBTa2lwIGxvY2FsIFNlY3Rpb25NZW1vcnlNYW5hZ2VyIGZvciBMTFZNIDIyLgoKTm93 IHRoYXQgTExWTSBoYXMgY29tbWl0dGVkWzFdIHRoZSBidWcgZml4IHRoYXQgd2Ugc2x1cnBlZCBp bnRvIHRoZSB0cmVlCmluIGNvbW1pdCA5MDQ0ZmMxZCwgd2Ugb25seSBuZWVkIHRvIHVzZSBvdXIg bG9jYWwgY29weSBmb3IgTExWTSA8IDIyLgpUaGlzIGF2b2lkcyBmdXJ0aGVyIG1haW50ZW5hbmNl IGJ1cmRlbiAoY2YgMGRjZWJhMjEpLCBhbmQgYWxzbwplc3RhYmxpc2hlcyBhIGdhcmJhZ2UgY29s bGVjdGlvbiBob3Jpem9uIHRoYXQgd2lsbCBsZXQgdXMgZGVsZXRlIG91cgpjb3B5IHdoZW4gdGhl IHRpbWUgY29tZXMuCgpUaGUgb25seSBjaGFuZ2UgdGhhdCB3ZSBkb24ndCBoYXZlIGZyb20gdGhl IHZlcnNpb24gdGhhdCB3YXMgY29tbWl0dGVkCmlzIHRoZSBhZGRpdGlvbiBvZiBhIExMVk1fQUJJ IG1hY3JvIHRvIGNvbnRyb2wgc2hhcmVkIGxpYnJhcnkgZXhwb3J0cywKYnV0IHRoYXQgaXNuJ3Qg ZGVmaW5lZCBiZWZvcmUgTExWTSAyMCAob3VyIGNvcHkgaGFzIHRvIHdvcmsgd2l0aCBlYXJsaWVy CnZlcnNpb25zKSwgYW5kIGlzbid0IGFwcHJvcHJpYXRlIGhlcmUgYXMgb3VyIGNvcHkgaXMgcHJp dmF0ZSBhbmQgaW4gb3VyCm93biBsaWJyYXJ5LgoKQWxzbyBhZGp1c3QgdGhlIGNvbW1lbnRzIHRv IGV4cGxhaW4gdGhhdCB0aGlzIGlzIHRoZSBjb2RlIGZyb20gTExWTSAyMi4KSGlzdG9yaWNhbCBk ZXRhaWxzIGFib3V0IHRoZSBwdWxsIHJlcXVlc3QgYXJlIG5vdyBpcnJlbGV2YW50LgoKWzFdIGh0 dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9jb21taXQvMTkyMmM2Y2EyNjIzMTFi ZjMyMWQzMzk5NzQ3MTkxN2FkY2RmYmFlZgoKQmFja3BhdGNoLXRocm91Z2g6IDE0ClJldmlld2Vk LWJ5OgpEaXNjdXNzaW9uOgotLS0KIHNyYy9iYWNrZW5kL2ppdC9sbHZtL1NlY3Rpb25NZW1vcnlN YW5hZ2VyLmNwcCB8IDIyICsrKysrKy0tLS0tLS0tLS0tLS0KIHNyYy9pbmNsdWRlL2ppdC9TZWN0 aW9uTWVtb3J5TWFuYWdlci5oICAgICAgICB8ICAyICstCiBzcmMvaW5jbHVkZS9qaXQvbGx2bWpp dF9iYWNrcG9ydC5oICAgICAgICAgICAgfCAgNCArKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDEwIGlu c2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2pp dC9sbHZtL1NlY3Rpb25NZW1vcnlNYW5hZ2VyLmNwcCBiL3NyYy9iYWNrZW5kL2ppdC9sbHZtL1Nl Y3Rpb25NZW1vcnlNYW5hZ2VyLmNwcAppbmRleCAyMTcxZGI1ZjM4Mi4uZTExM2NlODFhM2QgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2ppdC9sbHZtL1NlY3Rpb25NZW1vcnlNYW5hZ2VyLmNwcAor KysgYi9zcmMvYmFja2VuZC9qaXQvbGx2bS9TZWN0aW9uTWVtb3J5TWFuYWdlci5jcHAKQEAgLTEs MjUgKzEsMTcgQEAKIC8qCi0gKiBUaGlzIGZpbGUgaXMgZnJvbSBodHRwczovL2dpdGh1Yi5jb20v bGx2bS9sbHZtLXByb2plY3QvcHVsbC83MTk2OAotICogd2l0aCBtaW5vciBtb2RpZmljYXRpb25z IHRvIGF2b2lkIG5hbWUgY2xhc2ggYW5kIHdvcmsgd2l0aCBvbGRlcgotICogTExWTSB2ZXJzaW9u cy4gIFRoZSBsbHZtOjpiYWNrcG9ydDo6U2VjdGlvbk1lbW9yeU1hbmFnZXIgY2xhc3MgaXMgYQot ICogZHJvcC1pbiByZXBsYWNlbWVudCBmb3IgbGx2bTo6U2VjdGlvbk1lbW9yeU1hbmFnZXIsIGZv ciB1c2Ugd2l0aAotICogbGx2bTo6UnVudGltZUR5bGQuICBJdCBmaXhlcyBhIG1lbW9yeSBsYXlv dXQgYnVnIG9uIGxhcmdlIG1lbW9yeQotICogQVJNIHN5c3RlbXMgKHNlZSBwdWxsIHJlcXVlc3Qg Zm9yIGRldGFpbHMpLiAgSWYgdGhlIExMVk0gcHJvamVjdAotICogZXZlbnR1YWxseSBjb21taXRz IHRoZSBjaGFuZ2UsIHdlIG1heSBuZWVkIHRvIHJlc3luY2hyb25pemUgb3VyCi0gKiBjb3B5IHdp dGggYW55IGZ1cnRoZXIgbW9kaWZpY2F0aW9ucywgYnV0IHRoZXkgd291bGQgYmUgdW5saWtlbHkg dG8KLSAqIGJhY2twb3J0IGl0IGludG8gdGhlIExMVk0gdmVyc2lvbnMgdGhhdCB3ZSB0YXJnZXQg c28gd2Ugd291bGQgc3RpbGwKLSAqIG5lZWQgdGhpcyBjb3B5LgorICogVGhpcyBmaWxlIGlzIGZy b20gTExWTSAyMiAob3JpZ2luYWxseSBwdWxsIHJlcXVlc3QgIzcxOTY4KSwgd2l0aCBtaW5vcgor ICogbW9kaWZpY2F0aW9ucyB0byBhdm9pZCBuYW1lIGNsYXNoIGFuZCB3b3JrIHdpdGggb2xkZXIg TExWTSB2ZXJzaW9ucy4gIEl0CisgKiByZXBsYWNlcyBsbHZtOjpTZWN0aW9uTWVtb3J5TWFuYWdl ciwgYW5kIGlzIGluamVjdGVkIGludG8gbGx2bTo6UnVudGltZUR5bGQKKyAqIHRvIGZpeCBhIG1l bW9yeSBsYXlvdXQgYnVnIG9uIGxhcmdlIG1lbW9yeSBBUk0gc3lzdGVtcyBvbiBMTFZNIDwgMjIu CiAgKgotICogSW4gdGhlIGZ1dHVyZSB3ZSB3aWxsIHN3aXRjaCB0byB1c2luZyBKSVRMaW5rIGlu c3RlYWQgb2YKLSAqIFJ1bnRpbWVEeWxkIHdoZXJlIHBvc3NpYmxlLCBhbmQgbGF0ZXIgcmVtb3Zl IHRoaXMgY29kZSAoLmNwcCwgLmgsCi0gKiAuTElDRU5TRSkgYWZ0ZXIgYWxsIExMVk0gdmVyc2lv bnMgdGhhdCB3ZSB0YXJnZXQgYWxsb3cgaXQuCisgKiBXZSBjYW4gcmVtb3ZlIHRoaXMgY29kZSAo LmNwcCwgLmgsIC5MSUNFTlNFKSBvbmNlIExMVk0gMjIgaXMgb3VyIG1pbmltdW0KKyAqIHN1cHBv cnRlZCB2ZXJzaW9uIG9yIHdlJ3ZlIHN3aXRjaGVkIHRvIEpJVExpbmsgZm9yIGF0IGxlYXN0IEFh cmNoNjQuCiAgKgogICogVGhpcyBmaWxlIGlzIGEgbW9kaWZpZWQgY29weSBvZiBhIHBhcnQgb2Yg dGhlIExMVk0gc291cmNlIGNvZGUgdGhhdAogICogd2Ugd291bGQgbm9ybWFsbHkgYWNjZXNzIGZy b20gdGhlIExMVk0gbGlicmFyeS4gIEl0IGlzIHRoZXJlZm9yZQogICogY292ZXJlZCBieSB0aGUg bGljZW5zZSBhdCBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0LCByZXByb2R1Y2VkCiAgKiB2 ZXJiYXRpbSBpbiBTZWN0aW9uTWVtb3J5TWFuYWdlci5MSUNFTlNFIGluIGZ1bGZpbGxtZW50IG9m IGNsYXVzZQotICogNGEuICBUaGUgYnVnZml4IGNoYW5nZXMgZnJvbSB0aGUgcHVsbCByZXF1ZXN0 IGFyZSBhbHNvIGNvdmVyZWQsIHBlcgotICogY2xhdXNlIDUuCisgKiA0YS4KICAqLwogCiAvLz09 PS0gU2VjdGlvbk1lbW9yeU1hbmFnZXIuY3BwIC0gTWVtb3J5IG1hbmFnZXIgZm9yIE1DSklUL1J0 RHlsZCAqLSBDKysgLSotPT0vLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvaml0L1NlY3Rpb25N ZW1vcnlNYW5hZ2VyLmggYi9zcmMvaW5jbHVkZS9qaXQvU2VjdGlvbk1lbW9yeU1hbmFnZXIuaApp bmRleCA5MjRhOTliMGQzMy4uNGM5YmQxYzdmMDEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2pp dC9TZWN0aW9uTWVtb3J5TWFuYWdlci5oCisrKyBiL3NyYy9pbmNsdWRlL2ppdC9TZWN0aW9uTWVt b3J5TWFuYWdlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIFRoaXMgaXMgYSBjb3B5IExMVk0g c291cmNlIGNvZGUgbW9kaWZpZWQgYnkgdGhlIFBvc3RncmVTUUwgcHJvamVjdC4KKyAqIFRoaXMg aXMgYSBjb3B5IG9mIExMVk0gc291cmNlIGNvZGUgbW9kaWZpZWQgYnkgdGhlIFBvc3RncmVTUUwg cHJvamVjdC4KICAqIFNlZSBTZWN0aW9uTWVtb3J5TWFuYWdlci5jcHAgZm9yIG5vdGVzIG9uIHBy b3ZlbmFuY2UgYW5kIGxpY2Vuc2UuCiAgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvaml0 L2xsdm1qaXRfYmFja3BvcnQuaCBiL3NyYy9pbmNsdWRlL2ppdC9sbHZtaml0X2JhY2twb3J0LmgK aW5kZXggY2JhOGVhZmM0ZjMuLjcxY2ZkZmM4MzJmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9q aXQvbGx2bWppdF9iYWNrcG9ydC5oCisrKyBiL3NyYy9pbmNsdWRlL2ppdC9sbHZtaml0X2JhY2tw b3J0LmgKQEAgLTgsMTQgKzgsMTQgQEAKICNpbmNsdWRlIDxsbHZtL0NvbmZpZy9sbHZtLWNvbmZp Zy5oPgogCiAvKgotICogTExWTSdzIFJ1bnRpbWVEeWxkIGNhbiBwcm9kdWNlIGNvZGUgdGhhdCBj cmFzaGVzIG9uIGxhcmdlciBtZW1vcnkgQVJNCisgKiBQcmUtTExWTSAyMiBSdW50aW1lRHlsZCBj YW4gcHJvZHVjZSBjb2RlIHRoYXQgY3Jhc2hlcyBvbiBsYXJnZSBtZW1vcnkgQVJNCiAgKiBzeXN0 ZW1zLCBiZWNhdXNlIGxsdm06OlNlY3Rpb25NZW1vcnlNYW5hZ2VyIGFsbG9jYXRlcyBtdWx0aXBs ZSBwaWVjZXMgb2YKICAqIG1lbW9yeSB0aGF0IGNhbiBiZSBwbGFjZWQgdG9vIGZhciBhcGFydCBm b3IgdGhlIGdlbmVyYXRlZCBjb2RlLiAgU2VlCiAgKiBzcmMvYmFja2VuZC9qaXQvbGx2bS9TZWN0 aW9uTWVtb3J5TWFuYWdlci5jcHAgZm9yIHRoZSBwYXRjaGVkIHJlcGxhY2VtZW50CiAgKiBjbGFz cyBsbHZtOjpiYWNrcG9ydDo6U2VjdGlvbk1lbW9yeU1hbmFnZXIgdGhhdCB3ZSB1c2UgYXMgYSB3 b3JrYXJvdW5kLgogICogVGhpcyBoZWFkZXIgY29udHJvbHMgd2hldGhlciB3ZSB1c2UgaXQuCiAg Ki8KLSNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQorI2lmIGRlZmluZWQoX19hYXJjaDY0X18pICYm IExMVk1fVkVSU0lPTl9NQUpPUiA8IDIyCiAjZGVmaW5lIFVTRV9MTFZNX0JBQ0tQT1JUX1NFQ1RJ T05fTUVNT1JZX01BTkFHRVIKICNlbmRpZgogCi0tIAoyLjUyLjAKCg== --0000000000008b98c80647723aab Content-Type: text/x-patch; charset="US-ASCII"; name="0002-jit-API-changes-for-LLVM-22.patch" Content-Disposition: attachment; filename="0002-jit-API-changes-for-LLVM-22.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mjxn7o9h1 RnJvbSA3MmE2ZTNkNDA0MGNkZTU4ZTI2YTI3ZmViYmY0ODY3MWYwMjVlMDU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUaG9tYXMgTXVucm8gPHRob21hcy5tdW5yb0BnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTkgTm92IDIwMjUgMDA6MDA6MTMgKzEzMDAKU3ViamVjdDogW1BBVENIIDIv Ml0gaml0OiBBUEkgY2hhbmdlcyBmb3IgTExWTSAyMi4KClRoZSBsaWZldGltZS5lbmQgaW50cmlu c2ljIGNhbiBub3cgb25seSBiZSB1c2VkIGZvciBzdGFjayBtZW1vcnkKYWxsb2NhdGVkIHdpdGgg YWxsb2NhLiAgV2Ugd2VyZSB1c2luZyBpdCB0byB0ZWxsIHRoZSBvcHRpbWl6ZXIgdGhhdCB3ZQph cmUgbm8gbG9uZ2VyIGludGVyZXN0ZWQgaW4gdGhlIGFyZ3VtZW50cyBhbmQgbnVsbCBmbGFnIGlu IGEKRnVuY3Rpb25DYWxsSW5mbyBzdHJ1Y3QsIHNvIGl0IGNvdWxkIGF2b2lkIGFjdHVhbGx5IHN0 b3JpbmcgdGhlbSBpZiBpdAptYW5hZ2VkIHRvIGlubGluZSB0aGUgZnVuY3Rpb24gYW5kIGtlZXAg ZXZlcnl0aGluZyBpbiByZWdpc3RlcnMuICBJdApjYW4ndCBmaWd1cmUgdGhhdCBvdXQgYnkgaXRz ZWxmIGJlY2F1c2UgaXQncyBwYXJ0IG9mIHRoZSBFeGVjRXZhbFN0ZXAKc3RydWN0IGFuZCB3ZSBz Y3JpYmJsZSBvbiBpdCBkaXJlY3RseSByYXRoZXIgdGhhbiBidWlsZGluZyBhIG5ldyBvbmUgb24K dGhlIHN0YWNrLgoKSW5zdGVhZCwgc3RvcmUgdGhlIHNwZWNpYWwgcG9pc29uIHZhbHVlICh1bmRl ZiB3b3VsZCB3b3JrIHRvbykuICBUaGlzCmdlbmVyYXRlcyBubyBhY3R1YWwgY29kZSwgYnV0IHRl bGxzIHRoZSBvcHRpbWl6ZXIgdGhhdCB3ZSBhcmUgbm90CmludGVyZXN0ZWQgaW4gdGhlIHZhbHVl cy4KCkRlZm9ybSBmdW5jdGlvbnMgdXNlIExMVk1CdWlsZEFsbG9jYSgpIGZvciBhIHN0YWNrIHZh cmlhYmxlLCBidXQgdGhhdAptZW1vcnkgaXMgcmVjbGFpbWVkIGltcGxpY2l0bHkgYnkgdGhlIHJl dCBpbnN0cnVjdGlvbi4gIFRoaXMgY29kZSBzaG91bGQKcHJvYmFibHkgZG8gdGhlIHNhbWUsIGJ1 dCB0aGUgY2hhbmdlIGlzIG5vbi10cml2aWFsIGFuZCBub3Qgc3R1ZGllZCB5ZXQuCgpodHRwczov L2dpdGh1Yi5jb20vbGx2bS9sbHZtLXByb2plY3QvcHVsbC8xNDkzMTAKaHR0cHM6Ly9sbHZtLm9y Zy9kb2NzL0xhbmdSZWYuaHRtbCNsbHZtLWxpZmV0aW1lLWVuZC1pbnRyaW5zaWMKaHR0cHM6Ly9s bHZtLm9yZy9kb2NzL0xhbmdSZWYuaHRtbCNpLWFsbG9jYQotLS0KIHNyYy9iYWNrZW5kL2ppdC9s bHZtL2xsdm1qaXRfZXhwci5jIHwgMTggKysrKysrKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMTMgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYyBiL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1q aXRfZXhwci5jCmluZGV4IGY5YzdmMjllNzI4Li40ZGQyMjIzYmQyZCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvaml0L2xs dm0vbGx2bWppdF9leHByLmMKQEAgLTYyLDcgKzYyLDkgQEAgc3RhdGljIExMVk1WYWx1ZVJlZiBi dWlsZF9FdmFsWEZ1bmNJbnQoTExWTUJ1aWxkZXJSZWYgYiwgTExWTU1vZHVsZVJlZiBtb2QsCiAJ CQkJCQkJCQkgICBMTFZNVmFsdWVSZWYgdl9zdGF0ZSwKIAkJCQkJCQkJCSAgIEV4cHJFdmFsU3Rl cCAqb3AsCiAJCQkJCQkJCQkgICBpbnQgbmF0dHMsIExMVk1WYWx1ZVJlZiAqdl9hcmdzKTsKKyNp ZiBMTFZNX1ZFUlNJT05fTUFKT1IgPCAyMgogc3RhdGljIExMVk1WYWx1ZVJlZiBjcmVhdGVfTGlm ZXRpbWVFbmQoTExWTU1vZHVsZVJlZiBtb2QpOworI2VuZGlmCiAKIC8qIG1hY3JvIG1ha2luZyBp dCBlYXNpZXIgdG8gY2FsbCBFeGVjRXZhbCogZnVuY3Rpb25zICovCiAjZGVmaW5lIGJ1aWxkX0V2 YWxYRnVuYyhiLCBtb2QsIGZ1bmNuYW1lLCB2X3N0YXRlLCBvcCwgLi4uKSBcCkBAIC0zMDA3LDE0 ICszMDA5LDExIEBAIEJ1aWxkVjFDYWxsKExMVk1KaXRDb250ZXh0ICpjb250ZXh0LCBMTFZNQnVp bGRlclJlZiBiLAogCQkJTExWTU1vZHVsZVJlZiBtb2QsIEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZv LAogCQkJTExWTVZhbHVlUmVmICp2X2ZjaW5mb19pc251bGwpCiB7Ci0JTExWTUNvbnRleHRSZWYg bGM7CiAJTExWTVZhbHVlUmVmIHZfZm47CiAJTExWTVZhbHVlUmVmIHZfZmNpbmZvX2lzbnVsbHA7 CiAJTExWTVZhbHVlUmVmIHZfcmV0dmFsOwogCUxMVk1WYWx1ZVJlZiB2X2ZjaW5mbzsKIAotCWxj ID0gTExWTUdldE1vZHVsZUNvbnRleHQobW9kKTsKLQogCXZfZm4gPSBsbHZtX2Z1bmN0aW9uX3Jl ZmVyZW5jZShjb250ZXh0LCBiLCBtb2QsIGZjaW5mbyk7CiAKIAl2X2ZjaW5mbyA9IGxfcHRyX2Nv bnN0KGZjaW5mbywgbF9wdHIoU3RydWN0RnVuY3Rpb25DYWxsSW5mb0RhdGEpKTsKQEAgLTMwMzEs MTAgKzMwMzAsMTYgQEAgQnVpbGRWMUNhbGwoTExWTUppdENvbnRleHQgKmNvbnRleHQsIExMVk1C dWlsZGVyUmVmIGIsCiAJCSp2X2ZjaW5mb19pc251bGwgPSBsX2xvYWQoYiwgVHlwZVN0b3JhZ2VC b29sLCB2X2ZjaW5mb19pc251bGxwLCAiIik7CiAKIAkvKgotCSAqIEFkZCBsaWZldGltZS1lbmQg YW5ub3RhdGlvbiwgc2lnbmFsaW5nIHRoYXQgd3JpdGVzIHRvIG1lbW9yeSBkb24ndCBoYXZlCi0J ICogdG8gYmUgcmV0YWluZWQgKGltcG9ydGFudCBmb3IgaW5saW5pbmcgcG90ZW50aWFsKS4KKwkg KiBTaWduYWwgdGhhdCB3cml0ZXMgdG8gRnVuY3Rpb25DYWxsSW5mb0RhdGEgZG9uJ3QgaGF2ZSB0 byBiZSByZXRhaW5lZAorCSAqIChpbXBvcnRhbnQgZm9yIGlubGluaW5nIHBvdGVudGlhbCkuCiAJ ICovCisjaWYgTExWTV9WRVJTSU9OX01BSk9SID49IDIyCisJZm9yIChpbnQgaSA9IDA7IGkgPCBm Y2luZm8tPm5hcmdzOyArK2kpCisJCUxMVk1CdWlsZFN0b3JlKGIsIExMVk1HZXRQb2lzb24oU3Ry dWN0TnVsbGFibGVEYXR1bSksIGxfZnVuY3ZhbHVlcChiLCB2X2ZjaW5mbywgaSkpOworCUxMVk1C dWlsZFN0b3JlKGIsIExMVk1HZXRQb2lzb24oVHlwZVN0b3JhZ2VCb29sKSwgdl9mY2luZm9faXNu dWxscCk7CisjZWxzZQogCXsKKwkJTExWTUNvbnRleHRSZWYgbGMgPSBMTFZNR2V0TW9kdWxlQ29u dGV4dChtb2QpOwogCQlMTFZNVmFsdWVSZWYgdl9saWZldGltZSA9IGNyZWF0ZV9MaWZldGltZUVu ZChtb2QpOwogCQlMTFZNVmFsdWVSZWYgcGFyYW1zWzJdOwogCkBAIC0zMDQ2LDYgKzMwNTEsNyBA QCBCdWlsZFYxQ2FsbChMTFZNSml0Q29udGV4dCAqY29udGV4dCwgTExWTUJ1aWxkZXJSZWYgYiwK IAkJcGFyYW1zWzFdID0gbF9wdHJfY29uc3QoJmZjaW5mby0+aXNudWxsLCBsX3B0cihMTFZNSW50 OFR5cGVJbkNvbnRleHQobGMpKSk7CiAJCWxfY2FsbChiLCBMTFZNR2V0RnVuY3Rpb25UeXBlKHZf bGlmZXRpbWUpLCB2X2xpZmV0aW1lLCBwYXJhbXMsIGxlbmd0aG9mKHBhcmFtcyksICIiKTsKIAl9 CisjZW5kaWYKIAogCXJldHVybiB2X3JldHZhbDsKIH0KQEAgLTMwODMsNiArMzA4OSw3IEBAIGJ1 aWxkX0V2YWxYRnVuY0ludChMTFZNQnVpbGRlclJlZiBiLCBMTFZNTW9kdWxlUmVmIG1vZCwgY29u c3QgY2hhciAqZnVuY25hbWUsCiAJcmV0dXJuIHZfcmV0OwogfQogCisjaWYgTExWTV9WRVJTSU9O X01BSk9SIDwgMjIKIHN0YXRpYyBMTFZNVmFsdWVSZWYKIGNyZWF0ZV9MaWZldGltZUVuZChMTFZN TW9kdWxlUmVmIG1vZCkKIHsKQEAgLTMxMTIsMyArMzExOSw0IEBAIGNyZWF0ZV9MaWZldGltZUVu ZChMTFZNTW9kdWxlUmVmIG1vZCkKIAogCXJldHVybiBmbjsKIH0KKyNlbmRpZgotLSAKMi41Mi4w Cgo= --0000000000008b98c80647723aab--