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 1vi5Y2-00EYlx-0L for pgsql-hackers@arkaria.postgresql.org; Tue, 20 Jan 2026 06:49:06 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vi5Y0-00GXxp-35 for pgsql-hackers@arkaria.postgresql.org; Tue, 20 Jan 2026 06:49:05 +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 1vi5Y0-00GXxf-1q for pgsql-hackers@lists.postgresql.org; Tue, 20 Jan 2026 06:49:04 +0000 Received: from fhigh-a1-smtp.messagingengine.com ([103.168.172.152]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vi5Xy-001THf-1b for pgsql-hackers@postgresql.org; Tue, 20 Jan 2026 06:49:04 +0000 Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41]) by mailfhigh.phl.internal (Postfix) with ESMTP id 7210D1400259; Tue, 20 Jan 2026 01:49:01 -0500 (EST) Received: from phl-frontend-03 ([10.202.2.162]) by phl-compute-01.internal (MEProxy); Tue, 20 Jan 2026 01:49:01 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eisentraut.org; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:message-id:mime-version:reply-to:subject:subject:to :to; s=fm1; t=1768891741; x=1768978141; bh=ySTNZt7b67kc/1UKJ3+HM zOo1ZyneAd67nPrbzTbE+E=; b=SMllVCi86NCzmA4MMjV1ybonGjhq2a3HS8Wiy KgtKGRLmBSB3XiIcY+Y0StKzuFgX5AHs3czUl9Hs42GNuymBqbSZ5ifDrT/WY7Fk sVZDBQPWPuT5apyJnjyNRpL8nowW2inJo+LajtS0NrEV3fdc09Z0gYBl7iFKYFMK 7VWpz9I96o8V1xOe97BpuezAfci6NObPoFjd8WzXqvwaZ2WTrxjY0a4xp1LaV8FZ ihszZ8hvx3wRMovZeRwlG2CvAYwtQh6ZordMUEjXNX/1aaUQswdlnk2Wx4m6tBuI 3hHLhvxJ8XFmxi++c+WC6kdblS1ZcYDQwdTI6UT0mTjQfjWaQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:message-id :mime-version:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1768891741; x= 1768978141; bh=ySTNZt7b67kc/1UKJ3+HMzOo1ZyneAd67nPrbzTbE+E=; b=H mMpWO0oceClmPNprslx/Y6X3Q1dd/puxf7afdcwcfqMxSvh+tPnh31I5e2qFTJ4W oeyA9ndBcqYpi4z/JH8Y3RsK532Fn3YZdNewiOWnjGR1PkAZx3QUWbcIgBSFbpRA wUwZTNbYeqQ0FXxZzW9TpnNay1PiaR+uIAnpMxuiqJa/q/Lgn9XWq+OnFfrTfx7K xjElrnzW/wjGOyfRD96uHgE00my+9CvDnT4h0pPa6qrbLps4WgAeeTwb1mxGl+Hr cxMwhG8gJZ+Bb35zByYowWZkgqg1RYYhImtztDmppWq6Vjlo9zQpVDFGvYP9nB9a qeMBQk9myND6SYxtGFrqA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddufeeljeegucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurheptgfkffggfgfhuffvveesmhdtreertddvjeenucfhrhhomheprfgvthgvrhcugfhi shgvnhhtrhgruhhtuceophgvthgvrhesvghishgvnhhtrhgruhhtrdhorhhgqeenucggtf frrghtthgvrhhnpefggfejteeludeludeffefhueeluddvhffhkefgfeefieefffdtleet keffheffudenucffohhmrghinhepphhoshhtghhrvghsqhhlrdhorhhgnecuvehluhhsth gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphgvthgvrhesvghishgv nhhtrhgruhhtrdhorhhgpdhnsggprhgtphhtthhopedvpdhmohguvgepshhmthhpohhuth dprhgtphhtthhopehpghhsqhhlqdhhrggtkhgvrhhssehpohhsthhgrhgvshhqlhdrohhr ghdprhgtphhtthhopehthhhomhgrshdrmhhunhhrohesghhmrghilhdrtghomh X-ME-Proxy: Feedback-ID: ie0a040ee:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 20 Jan 2026 01:49:00 -0500 (EST) Content-Type: multipart/mixed; boundary="------------emPbwqkZaXGxI1aTyxhSwzQK" Message-ID: <58cedbc7-5658-468d-868e-a4d06de04ca6@eisentraut.org> Date: Tue, 20 Jan 2026 07:48:59 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US From: Peter Eisentraut Subject: Move MAXIMUM_ALIGNOF definition to c.h To: pgsql-hackers Cc: Thomas Munro List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------emPbwqkZaXGxI1aTyxhSwzQK Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit As suggested at [0], we can move the computation of MAXIMUM_ALIGNOF from configure.ac and meson.build to c.h. This eliminates code duplication. (For example, the AIX patch contemplates some changes, so it would be good to make those in only one place.) Also, it used to be more complicated, but now it's not really a computation anymore, it's just a #define and two static assertions, so it's just much easier and natural this way. (For example, doing a symbol lookup on MAXIMUM_ALIGNOF will take you to a place with useful context, instead of to pg_config.h.) The only trick is that the there are some ordering problems in c.h. MAXIMUM_ALIGNOF is used in the definition of the int128, which comes very early, before the alignment handling. I moved the int128 stuff to later in the file, near other types with alignment dependencies. (If you look closer, you will find other opportunities for a more comprehensive reshuffling in c.h, but maybe that should be a separate project.) [0]: https://www.postgresql.org/message-id/CA%2BhUKGLQUivg-NC7dHdbRAPmG0Hapg1gGnygM5KgDfDM2a_TMg%40mail.gmail.com --------------emPbwqkZaXGxI1aTyxhSwzQK Content-Type: text/plain; charset=UTF-8; name="0001-Move-MAXIMUM_ALIGNOF-definition-to-c.h.patch" Content-Disposition: attachment; filename="0001-Move-MAXIMUM_ALIGNOF-definition-to-c.h.patch" Content-Transfer-Encoding: base64 RnJvbSA2ZjdiY2NhNmZjMjczNmFmNmJhNTgyYWFhNDIzMzU5OWY4MTg1NzU2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAyMCBKYW4gMjAyNiAwNzoyMDozMCArMDEwMApTdWJqZWN0 OiBbUEFUQ0hdIE1vdmUgTUFYSU1VTV9BTElHTk9GIGRlZmluaXRpb24gdG8gYy5oCgpUaGlz IGNvbWJpbmVzIGR1cGxpY2F0ZSBjb2RlIGZyb20gY29uZmlndXJlLmluIGFuZCBtZXNvbi5i dWlsZC4KCkRpc2N1c3Npb246IGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3NhZ2Ut aWQvQ0ElMkJoVUtHTFFVaXZnLU5DN2RIZGJSQVBtRzBIYXBnMWdHbnlnTTVLZ0RmRE0yYV9U TWclNDBtYWlsLmdtYWlsLmNvbQotLS0KIGNvbmZpZ3VyZSAgICAgICAgICAgICAgICAgIHwg MzAgLS0tLS0tLS0tLS0tLS0KIGNvbmZpZ3VyZS5hYyAgICAgICAgICAgICAgIHwgMjYgLS0t LS0tLS0tLS0tCiBtZXNvbi5idWlsZCAgICAgICAgICAgICAgICB8IDI1ICstLS0tLS0tLS0t LQogc3JjL2luY2x1ZGUvYy5oICAgICAgICAgICAgfCA4MSArKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLQogc3JjL2luY2x1ZGUvcGdfY29uZmlnLmguaW4gfCAgMyAt LQogNSBmaWxlcyBjaGFuZ2VkLCA1NiBpbnNlcnRpb25zKCspLCAxMDkgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCmluZGV4IGZiNmE0OTE0YjA2 Li41ZjZmNzljOTUxNiAxMDA3NTUKLS0tIGEvY29uZmlndXJlCisrKyBiL2NvbmZpZ3VyZQpA QCAtMTcxMTAsMzYgKzE3MTEwLDYgQEAgX0FDRU9GCiAKIAogCi0jIENvbXB1dGUgbWF4aW11 bSBhbGlnbm1lbnQgb2YgYW55IGJhc2ljIHR5cGUuCi0jCi0jIFdlIHJlcXVpcmUgJ2RvdWJs ZScgdG8gaGF2ZSB0aGUgc3RyaWN0ZXN0IGFsaWdubWVudCBhbW9uZyB0aGUgYmFzaWMgdHlw ZXMsCi0jIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBDIEFCSSBtaWdodCBpbXBvc2UgOC1ieXRl IGFsaWdubWVudCBvbiBzb21lIG9mIHRoZQotIyBvdGhlciBDIHR5cGVzIHRoYXQgY29ycmVz cG9uZCB0byBUWVBBTElHTl9ET1VCTEUgU1FMIHR5cGVzLiAgVGhhdCBjb3VsZAotIyBjYXVz ZSBhIG1pc21hdGNoIGJldHdlZW4gdGhlIHR1cGxlIGxheW91dCBhbmQgdGhlIEMgc3RydWN0 IGxheW91dCBvZiBhCi0jIGNhdGFsb2cgdHVwbGUuICBXZSB1c2VkIHRvIGNhcmVmdWxseSBv cmRlciBjYXRhbG9nIGNvbHVtbnMgc3VjaCB0aGF0IGFueQotIyBmaXhlZC13aWR0aCwgYXR0 YWxpZ249NCBjb2x1bW5zIHdlcmUgYXQgb2Zmc2V0cyBkaXZpc2libGUgYnkgOCByZWdhcmRs ZXNzCi0jIG9mIE1BWElNVU1fQUxJR05PRiB0byBhdm9pZCB0aGF0LCBidXQgd2Ugbm8gbG9u Z2VyIHN1cHBvcnQgYW55IHBsYXRmb3JtcwotIyB3aGVyZSBUWVBBTElHTl9ET1VCTEUgIT0g TUFYSU1VTV9BTElHTk9GLgotIwotIyBXZSBhc3N1bWUgd2l0aG91dCBjaGVja2luZyB0aGF0 IGxvbmcncyBhbGlnbm1lbnQgaXMgYXQgbGVhc3QgYXMgc3Ryb25nIGFzCi0jIGNoYXIsIHNo b3J0LCBvciBpbnQuICBOb3RlIHRoYXQgd2UgaW50ZW50aW9uYWxseSBkbyBub3QgY29uc2lk ZXIgYW55IHR5cGVzCi0jIHdpZGVyIHRoYW4gNjQgYml0cywgYXMgYWxsb3dpbmcgTUFYSU1V TV9BTElHTk9GIHRvIGV4Y2VlZCA4IHdvdWxkIGJlIHRvbwotIyBtdWNoIG9mIGEgcGVuYWx0 eSBmb3IgZGlzayBhbmQgbWVtb3J5IHNwYWNlLgotCi1NQVhfQUxJR05PRj0kYWNfY3ZfYWxp Z25vZl9kb3VibGUKLQotaWYgdGVzdCAkYWNfY3ZfYWxpZ25vZl9sb25nIC1ndCAkTUFYX0FM SUdOT0YgOyB0aGVuCi0gIGFzX2ZuX2Vycm9yICQ/ICJhbGlnbm1lbnQgb2YgJ2xvbmcnIGlz IGdyZWF0ZXIgdGhhbiB0aGUgYWxpZ25tZW50IG9mICdkb3VibGUnIiAiJExJTkVOTyIgNQot ZmkKLWlmIHRlc3QgJGFjX2N2X2FsaWdub2ZfaW50NjRfdCAtZ3QgJE1BWF9BTElHTk9GIDsg dGhlbgotICBhc19mbl9lcnJvciAkPyAiYWxpZ25tZW50IG9mICdpbnQ2NF90JyBpcyBncmVh dGVyIHRoYW4gdGhlIGFsaWdubWVudCBvZiAnZG91YmxlJyIgIiRMSU5FTk8iIDUKLWZpCi0K LWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSNkZWZpbmUgTUFYSU1VTV9BTElHTk9GICRN QVhfQUxJR05PRgotX0FDRU9GCi0KLQogIyBTb21lIGNvbXBpbGVycyBvZmZlciBhIDEyOC1i aXQgaW50ZWdlciBzY2FsYXIgdHlwZS4KIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogY2hlY2tpbmcgZm9yIF9faW50MTI4IiA+JjUKICRhc19lY2hvX24gImNo ZWNraW5nIGZvciBfX2ludDEyOC4uLiAiID4mNjsgfQpkaWZmIC0tZ2l0IGEvY29uZmlndXJl LmFjIGIvY29uZmlndXJlLmFjCmluZGV4IGQzZmViZmU1OGYxLi5kZGU3ZGNmYTM1ZiAxMDA2 NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtMTk5NSwzMiAr MTk5NSw2IEBAIEFDX0NIRUNLX0FMSUdOT0YobG9uZykKIEFDX0NIRUNLX0FMSUdOT0YoaW50 NjRfdCkKIEFDX0NIRUNLX0FMSUdOT0YoZG91YmxlKQogCi0jIENvbXB1dGUgbWF4aW11bSBh bGlnbm1lbnQgb2YgYW55IGJhc2ljIHR5cGUuCi0jCi0jIFdlIHJlcXVpcmUgJ2RvdWJsZScg dG8gaGF2ZSB0aGUgc3RyaWN0ZXN0IGFsaWdubWVudCBhbW9uZyB0aGUgYmFzaWMgdHlwZXMs Ci0jIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBDIEFCSSBtaWdodCBpbXBvc2UgOC1ieXRlIGFs aWdubWVudCBvbiBzb21lIG9mIHRoZQotIyBvdGhlciBDIHR5cGVzIHRoYXQgY29ycmVzcG9u ZCB0byBUWVBBTElHTl9ET1VCTEUgU1FMIHR5cGVzLiAgVGhhdCBjb3VsZAotIyBjYXVzZSBh IG1pc21hdGNoIGJldHdlZW4gdGhlIHR1cGxlIGxheW91dCBhbmQgdGhlIEMgc3RydWN0IGxh eW91dCBvZiBhCi0jIGNhdGFsb2cgdHVwbGUuICBXZSB1c2VkIHRvIGNhcmVmdWxseSBvcmRl ciBjYXRhbG9nIGNvbHVtbnMgc3VjaCB0aGF0IGFueQotIyBmaXhlZC13aWR0aCwgYXR0YWxp Z249NCBjb2x1bW5zIHdlcmUgYXQgb2Zmc2V0cyBkaXZpc2libGUgYnkgOCByZWdhcmRsZXNz Ci0jIG9mIE1BWElNVU1fQUxJR05PRiB0byBhdm9pZCB0aGF0LCBidXQgd2Ugbm8gbG9uZ2Vy IHN1cHBvcnQgYW55IHBsYXRmb3JtcwotIyB3aGVyZSBUWVBBTElHTl9ET1VCTEUgIT0gTUFY SU1VTV9BTElHTk9GLgotIwotIyBXZSBhc3N1bWUgd2l0aG91dCBjaGVja2luZyB0aGF0IGxv bmcncyBhbGlnbm1lbnQgaXMgYXQgbGVhc3QgYXMgc3Ryb25nIGFzCi0jIGNoYXIsIHNob3J0 LCBvciBpbnQuICBOb3RlIHRoYXQgd2UgaW50ZW50aW9uYWxseSBkbyBub3QgY29uc2lkZXIg YW55IHR5cGVzCi0jIHdpZGVyIHRoYW4gNjQgYml0cywgYXMgYWxsb3dpbmcgTUFYSU1VTV9B TElHTk9GIHRvIGV4Y2VlZCA4IHdvdWxkIGJlIHRvbwotIyBtdWNoIG9mIGEgcGVuYWx0eSBm b3IgZGlzayBhbmQgbWVtb3J5IHNwYWNlLgotCi1NQVhfQUxJR05PRj0kYWNfY3ZfYWxpZ25v Zl9kb3VibGUKLQotaWYgdGVzdCAkYWNfY3ZfYWxpZ25vZl9sb25nIC1ndCAkTUFYX0FMSUdO T0YgOyB0aGVuCi0gIEFDX01TR19FUlJPUihbYWxpZ25tZW50IG9mICdsb25nJyBpcyBncmVh dGVyIHRoYW4gdGhlIGFsaWdubWVudCBvZiAnZG91YmxlJ10pCi1maQotaWYgdGVzdCAkYWNf Y3ZfYWxpZ25vZl9pbnQ2NF90IC1ndCAkTUFYX0FMSUdOT0YgOyB0aGVuCi0gIEFDX01TR19F UlJPUihbYWxpZ25tZW50IG9mICdpbnQ2NF90JyBpcyBncmVhdGVyIHRoYW4gdGhlIGFsaWdu bWVudCBvZiAnZG91YmxlJ10pCi1maQotQUNfREVGSU5FX1VOUVVPVEVEKE1BWElNVU1fQUxJ R05PRiwgJE1BWF9BTElHTk9GLCBbRGVmaW5lIGFzIHRoZSBtYXhpbXVtIGFsaWdubWVudCBy ZXF1aXJlbWVudCBvZiBhbnkgQyBkYXRhIHR5cGUuXSkKLQogIyBTb21lIGNvbXBpbGVycyBv ZmZlciBhIDEyOC1iaXQgaW50ZWdlciBzY2FsYXIgdHlwZS4KIFBHQUNfVFlQRV8xMjhCSVRf SU5UCiAKZGlmZiAtLWdpdCBhL21lc29uLmJ1aWxkIGIvbWVzb24uYnVpbGQKaW5kZXggNmQz MDRmMzJmYjAuLmM1ZmMyOWVkNjgxIDEwMDY0NAotLS0gYS9tZXNvbi5idWlsZAorKysgYi9t ZXNvbi5idWlsZApAQCAtMTc3MSwzMyArMTc3MSwxMiBAQCBlbmRpZgogCiAjIERldGVybWlu ZSBtZW1vcnkgYWxpZ25tZW50IHJlcXVpcmVtZW50cyBmb3IgdGhlIGJhc2ljIEMgZGF0YSB0 eXBlcy4KIAotYWxpZ25vZl90eXBlcyA9IFsnc2hvcnQnLCAnaW50JywgJ2xvbmcnLCAnZG91 YmxlJ10KK2FsaWdub2ZfdHlwZXMgPSBbJ3Nob3J0JywgJ2ludCcsICdsb25nJywgJ2ludDY0 X3QnLCAnZG91YmxlJ10KIGZvcmVhY2ggdCA6IGFsaWdub2ZfdHlwZXMKLSAgYWxpZ24gPSBj Yy5hbGlnbm1lbnQodCwgYXJnczogdGVzdF9jX2FyZ3MpCisgIGFsaWduID0gY2MuYWxpZ25t ZW50KHQsIGFyZ3M6IHRlc3RfY19hcmdzLCBwcmVmaXg6ICcjaW5jbHVkZSA8c3RkaW50Lmg+ JykKICAgY2RhdGEuc2V0KCdBTElHTk9GX0AwQCcuZm9ybWF0KHQudG9fdXBwZXIoKSksIGFs aWduKQogZW5kZm9yZWFjaAogCi0jIENvbXB1dGUgbWF4aW11bSBhbGlnbm1lbnQgb2YgYW55 IGJhc2ljIHR5cGUuCi0jCi0jIFdlIHJlcXVpcmUgJ2RvdWJsZScgdG8gaGF2ZSB0aGUgc3Ry aWN0ZXN0IGFsaWdubWVudCBhbW9uZyB0aGUgYmFzaWMgdHlwZXMsCi0jIGJlY2F1c2Ugb3Ro ZXJ3aXNlIHRoZSBDIEFCSSBtaWdodCBpbXBvc2UgOC1ieXRlIGFsaWdubWVudCBvbiBzb21l IG9mIHRoZQotIyBvdGhlciBDIHR5cGVzIHRoYXQgY29ycmVzcG9uZCB0byBUWVBBTElHTl9E T1VCTEUgU1FMIHR5cGVzLiAgVGhhdCBjb3VsZAotIyBjYXVzZSBhIG1pc21hdGNoIGJldHdl ZW4gdGhlIHR1cGxlIGxheW91dCBhbmQgdGhlIEMgc3RydWN0IGxheW91dCBvZiBhCi0jIGNh dGFsb2cgdHVwbGUuICBXZSB1c2VkIHRvIGNhcmVmdWxseSBvcmRlciBjYXRhbG9nIGNvbHVt bnMgc3VjaCB0aGF0IGFueQotIyBmaXhlZC13aWR0aCwgYXR0YWxpZ249NCBjb2x1bW5zIHdl cmUgYXQgb2Zmc2V0cyBkaXZpc2libGUgYnkgOCByZWdhcmRsZXNzCi0jIG9mIE1BWElNVU1f QUxJR05PRiB0byBhdm9pZCB0aGF0LCBidXQgd2Ugbm8gbG9uZ2VyIHN1cHBvcnQgYW55IHBs YXRmb3JtcwotIyB3aGVyZSBUWVBBTElHTl9ET1VCTEUgIT0gTUFYSU1VTV9BTElHTk9GLgot IwotIyBXZSBhc3N1bWUgd2l0aG91dCBjaGVja2luZyB0aGF0IGludDY0X3QncyBhbGlnbm1l bnQgaXMgYXQgbGVhc3QgYXMgc3Ryb25nCi0jIGFzIGxvbmcsIGNoYXIsIHNob3J0LCBvciBp bnQuICBOb3RlIHRoYXQgd2UgaW50ZW50aW9uYWxseSBkbyBub3QgY29uc2lkZXIKLSMgYW55 IHR5cGVzIHdpZGVyIHRoYW4gNjQgYml0cywgYXMgYWxsb3dpbmcgTUFYSU1VTV9BTElHTk9G IHRvIGV4Y2VlZCA4Ci0jIHdvdWxkIGJlIHRvbyBtdWNoIG9mIGEgcGVuYWx0eSBmb3IgZGlz ayBhbmQgbWVtb3J5IHNwYWNlLgotYWxpZ25vZl9kb3VibGUgPSBjZGF0YS5nZXQoJ0FMSUdO T0ZfRE9VQkxFJykKLWlmIGNjLmFsaWdubWVudCgnaW50NjRfdCcsIGFyZ3M6IHRlc3RfY19h cmdzLCBwcmVmaXg6ICcjaW5jbHVkZSA8c3RkaW50Lmg+JykgPiBhbGlnbm9mX2RvdWJsZQot ICBlcnJvcignYWxpZ25tZW50IG9mIGludDY0X3QgaXMgZ3JlYXRlciB0aGFuIHRoZSBhbGln bm1lbnQgb2YgZG91YmxlJykKLWVuZGlmCi1jZGF0YS5zZXQoJ01BWElNVU1fQUxJR05PRics IGFsaWdub2ZfZG91YmxlKQotCiBjZGF0YS5zZXQoJ1NJWkVPRl9MT05HJywgY2Muc2l6ZW9m KCdsb25nJywgYXJnczogdGVzdF9jX2FyZ3MpKQogY2RhdGEuc2V0KCdTSVpFT0ZfTE9OR19M T05HJywgY2Muc2l6ZW9mKCdsb25nIGxvbmcnLCBhcmdzOiB0ZXN0X2NfYXJncykpCiBjZGF0 YS5zZXQoJ1NJWkVPRl9WT0lEX1AnLCBjYy5zaXplb2YoJ3ZvaWQgKicsIGFyZ3M6IHRlc3Rf Y19hcmdzKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2MuaCBiL3NyYy9pbmNsdWRlL2Mu aAppbmRleCA3MTM2MTAyZTVmZi4uYjZhNzMzMGM4OGYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2MuaAorKysgYi9zcmMvaW5jbHVkZS9jLmgKQEAgLTU2NSwzMyArNTY1LDYgQEAgdHlw ZWRlZiB1aW50MzIgYml0czMyOwkJCS8qID49IDMyIGJpdHMgKi8KICNkZWZpbmUgVUlOVDY0 X0ZPUk1BVCAiJSIgUFJJdTY0CiAjZGVmaW5lIE9JRDhfRk9STUFUICIlIiBQUkl1NjQKIAot LyoKLSAqIDEyOC1iaXQgc2lnbmVkIGFuZCB1bnNpZ25lZCBpbnRlZ2VycwotICoJCVRoZXJl IGN1cnJlbnRseSBpcyBvbmx5IGxpbWl0ZWQgc3VwcG9ydCBmb3Igc3VjaCB0eXBlcy4KLSAq CQlFLmcuIDEyOGJpdCBsaXRlcmFscyBhbmQgc25wcmludGYgYXJlIG5vdCBzdXBwb3J0ZWQ7 IGJ1dCBtYXRoIGlzLgotICoJCUFsc28sIGJlY2F1c2Ugd2UgZXhjbHVkZSBzdWNoIHR5cGVz IHdoZW4gY2hvb3NpbmcgTUFYSU1VTV9BTElHTk9GLAotICoJCWl0IG11c3QgYmUgcG9zc2li bGUgdG8gY29lcmNlIHRoZSBjb21waWxlciB0byBhbGxvY2F0ZSB0aGVtIG9uIG5vCi0gKgkJ bW9yZSB0aGFuIE1BWEFMSUdOIGJvdW5kYXJpZXMuCi0gKi8KLSNpZiBkZWZpbmVkKFBHX0lO VDEyOF9UWVBFKQotI2lmIGRlZmluZWQocGdfYXR0cmlidXRlX2FsaWduZWQpIHx8IEFMSUdO T0ZfUEdfSU5UMTI4X1RZUEUgPD0gTUFYSU1VTV9BTElHTk9GCi0jZGVmaW5lIEhBVkVfSU5U MTI4IDEKLQotdHlwZWRlZiBQR19JTlQxMjhfVFlQRSBpbnQxMjgKLSNpZiBkZWZpbmVkKHBn X2F0dHJpYnV0ZV9hbGlnbmVkKQotCQkJcGdfYXR0cmlidXRlX2FsaWduZWQoTUFYSU1VTV9B TElHTk9GKQotI2VuZGlmCi0JCSAgIDsKLQotdHlwZWRlZiB1bnNpZ25lZCBQR19JTlQxMjhf VFlQRSB1aW50MTI4Ci0jaWYgZGVmaW5lZChwZ19hdHRyaWJ1dGVfYWxpZ25lZCkKLQkJCXBn X2F0dHJpYnV0ZV9hbGlnbmVkKE1BWElNVU1fQUxJR05PRikKLSNlbmRpZgotCQkgICA7Ci0K LSNlbmRpZgotI2VuZGlmCi0KIC8qIEhpc3RvcmljYWwgbmFtZXMgZm9yIGxpbWl0cyBpbiA8 c3RkaW50Lmg+LiAqLwogI2RlZmluZSBQR19JTlQ4X01JTgkJSU5UOF9NSU4KICNkZWZpbmUg UEdfSU5UOF9NQVgJCUlOVDhfTUFYCkBAIC04MDIsNiArNzc1LDMzIEBAIHR5cGVkZWYgTmFt ZURhdGEgKk5hbWU7CiAgKi8KICNkZWZpbmUgbGVuZ3Rob2YoYXJyYXkpIChzaXplb2YgKGFy cmF5KSAvIHNpemVvZiAoKGFycmF5KVswXSkpCiAKKy8qCisgKiBDb21wdXRlIG1heGltdW0g YWxpZ25tZW50IG9mIGFueSBiYXNpYyB0eXBlLgorICoKKyAqIFdlIHJlcXVpcmUgJ2RvdWJs ZScgdG8gaGF2ZSB0aGUgc3RyaWN0ZXN0IGFsaWdubWVudCBhbW9uZyB0aGUgYmFzaWMgdHlw ZXMsCisgKiBiZWNhdXNlIG90aGVyd2lzZSB0aGUgQyBBQkkgbWlnaHQgaW1wb3NlIDgtYnl0 ZSBhbGlnbm1lbnQgb24gc29tZSBvZiB0aGUKKyAqIG90aGVyIEMgdHlwZXMgdGhhdCBjb3Jy ZXNwb25kIHRvIFRZUEFMSUdOX0RPVUJMRSBTUUwgdHlwZXMuICBUaGF0IGNvdWxkCisgKiBj YXVzZSBhIG1pc21hdGNoIGJldHdlZW4gdGhlIHR1cGxlIGxheW91dCBhbmQgdGhlIEMgc3Ry dWN0IGxheW91dCBvZiBhCisgKiBjYXRhbG9nIHR1cGxlLiAgV2UgdXNlZCB0byBjYXJlZnVs bHkgb3JkZXIgY2F0YWxvZyBjb2x1bW5zIHN1Y2ggdGhhdCBhbnkKKyAqIGZpeGVkLXdpZHRo LCBhdHRhbGlnbj00IGNvbHVtbnMgd2VyZSBhdCBvZmZzZXRzIGRpdmlzaWJsZSBieSA4IHJl Z2FyZGxlc3MKKyAqIG9mIE1BWElNVU1fQUxJR05PRiB0byBhdm9pZCB0aGF0LCBidXQgd2Ug bm8gbG9uZ2VyIHN1cHBvcnQgYW55IHBsYXRmb3JtcworICogd2hlcmUgVFlQQUxJR05fRE9V QkxFICE9IE1BWElNVU1fQUxJR05PRi4KKyAqCisgKiBXZSBhc3N1bWUgd2l0aG91dCBjaGVj a2luZyB0aGF0IHRoZSBhbGlnbm1lbnRzIG9mIGludDY0X3QgYW5kIGxvbmcgYXJlIGF0Cisg KiBsZWFzdCBhcyBzdHJvbmcgYXMgY2hhciwgc2hvcnQsIG9yIGludC4gIE5vdGUgdGhhdCB3 ZSBpbnRlbnRpb25hbGx5IGRvIG5vdAorICogY29uc2lkZXIgYW55IHR5cGVzIHdpZGVyIHRo YW4gNjQgYml0cywgYXMgYWxsb3dpbmcgTUFYSU1VTV9BTElHTk9GIHRvCisgKiBleGNlZWQg OCB3b3VsZCBiZSB0b28gbXVjaCBvZiBhIHBlbmFsdHkgZm9yIGRpc2sgYW5kIG1lbW9yeSBz cGFjZS4KKyAqLworCitzdGF0aWNfYXNzZXJ0KEFMSUdOT0ZfTE9ORyA8PSBBTElHTk9GX0RP VUJMRSwKKwkJCSAgImFsaWdubWVudCBvZiAnbG9uZycgaXMgZ3JlYXRlciB0aGFuIHRoZSBh bGlnbm1lbnQgb2YgJ2RvdWJsZSciKTsKKworc3RhdGljX2Fzc2VydChBTElHTk9GX0lOVDY0 X1QgPD0gQUxJR05PRl9ET1VCTEUsCisJCQkgICJhbGlnbm1lbnQgb2YgJ2ludDY0X3QnIGlz IGdyZWF0ZXIgdGhhbiB0aGUgYWxpZ25tZW50IG9mICdkb3VibGUnIik7CisKKy8qIFRoZSBt YXhpbXVtIGFsaWdubWVudCByZXF1aXJlbWVudCBvZiBhbnkgQyBkYXRhIHR5cGUgKi8KKyNk ZWZpbmUgTUFYSU1VTV9BTElHTk9GIEFMSUdOT0ZfRE9VQkxFCisKIC8qIC0tLS0tLS0tLS0t LS0tLS0KICAqIEFsaWdubWVudCBtYWNyb3M6IGFsaWduIGEgbGVuZ3RoIG9yIGFkZHJlc3Mg YXBwcm9wcmlhdGVseSBmb3IgYSBnaXZlbiB0eXBlLgogICogVGhlIGZvb0FMSUdOKCkgbWFj cm9zIHJvdW5kIHVwIHRvIGEgbXVsdGlwbGUgb2YgdGhlIHJlcXVpcmVkIGFsaWdubWVudCwK QEAgLTExMDIsNiArMTEwMiwzMyBAQCBwZ19ub3JldHVybiBleHRlcm4gdm9pZCBFeGNlcHRp b25hbENvbmRpdGlvbihjb25zdCBjaGFyICpjb25kaXRpb25OYW1lLAogI2RlZmluZSBJTlZF UlRfQ09NUEFSRV9SRVNVTFQodmFyKSBcCiAJKCh2YXIpID0gKCh2YXIpIDwgMCkgPyAxIDog LSh2YXIpKQogCisvKgorICogMTI4LWJpdCBzaWduZWQgYW5kIHVuc2lnbmVkIGludGVnZXJz CisgKgkJVGhlcmUgY3VycmVudGx5IGlzIG9ubHkgbGltaXRlZCBzdXBwb3J0IGZvciBzdWNo IHR5cGVzLgorICoJCUUuZy4gMTI4Yml0IGxpdGVyYWxzIGFuZCBzbnByaW50ZiBhcmUgbm90 IHN1cHBvcnRlZDsgYnV0IG1hdGggaXMuCisgKgkJQWxzbywgYmVjYXVzZSB3ZSBleGNsdWRl IHN1Y2ggdHlwZXMgd2hlbiBjaG9vc2luZyBNQVhJTVVNX0FMSUdOT0YsCisgKgkJaXQgbXVz dCBiZSBwb3NzaWJsZSB0byBjb2VyY2UgdGhlIGNvbXBpbGVyIHRvIGFsbG9jYXRlIHRoZW0g b24gbm8KKyAqCQltb3JlIHRoYW4gTUFYQUxJR04gYm91bmRhcmllcy4KKyAqLworI2lmIGRl ZmluZWQoUEdfSU5UMTI4X1RZUEUpCisjaWYgZGVmaW5lZChwZ19hdHRyaWJ1dGVfYWxpZ25l ZCkgfHwgQUxJR05PRl9QR19JTlQxMjhfVFlQRSA8PSBNQVhJTVVNX0FMSUdOT0YKKyNkZWZp bmUgSEFWRV9JTlQxMjggMQorCit0eXBlZGVmIFBHX0lOVDEyOF9UWVBFIGludDEyOAorI2lm IGRlZmluZWQocGdfYXR0cmlidXRlX2FsaWduZWQpCisJCQlwZ19hdHRyaWJ1dGVfYWxpZ25l ZChNQVhJTVVNX0FMSUdOT0YpCisjZW5kaWYKKwkJICAgOworCit0eXBlZGVmIHVuc2lnbmVk IFBHX0lOVDEyOF9UWVBFIHVpbnQxMjgKKyNpZiBkZWZpbmVkKHBnX2F0dHJpYnV0ZV9hbGln bmVkKQorCQkJcGdfYXR0cmlidXRlX2FsaWduZWQoTUFYSU1VTV9BTElHTk9GKQorI2VuZGlm CisJCSAgIDsKKworI2VuZGlmCisjZW5kaWYKKwogLyoKICAqIFVzZSB0aGlzLCBub3QgImNo YXIgYnVmW0JMQ0tTWl0iLCB0byBkZWNsYXJlIGEgZmllbGQgb3IgbG9jYWwgdmFyaWFibGUK ICAqIGhvbGRpbmcgYSBwYWdlIGJ1ZmZlciwgaWYgdGhhdCBwYWdlIG1pZ2h0IGJlIGFjY2Vz c2VkIGFzIGEgcGFnZS4gIE90aGVyd2lzZQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGdf Y29uZmlnLmguaW4gYi9zcmMvaW5jbHVkZS9wZ19jb25maWcuaC5pbgppbmRleCAzMzkyNjhk YzhlZi4uYjQyY2YwZGY1Y2MgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BnX2NvbmZpZy5o LmluCisrKyBiL3NyYy9pbmNsdWRlL3BnX2NvbmZpZy5oLmluCkBAIC01NDcsOSArNTQ3LDYg QEAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIF9fZ2V0X2NwdWlkX2NvdW50LiAqLwog I3VuZGVmIEhBVkVfX0dFVF9DUFVJRF9DT1VOVAogCi0vKiBEZWZpbmUgYXMgdGhlIG1heGlt dW0gYWxpZ25tZW50IHJlcXVpcmVtZW50IG9mIGFueSBDIGRhdGEgdHlwZS4gKi8KLSN1bmRl ZiBNQVhJTVVNX0FMSUdOT0YKLQogLyogRGVmaW5lIGJ5dGVzIHRvIHVzZSBsaWJjIG1lbXNl dCgpLiAqLwogI3VuZGVmIE1FTVNFVF9MT09QX0xJTUlUCiAKCmJhc2UtY29tbWl0OiA3ZWJi NjRjNTU3NTcwNjQ3ZTNmY2Y2ZjVmMTU0OWU4ODJlZDI2NDg5Ci0tIAoyLjUyLjAKCg== --------------emPbwqkZaXGxI1aTyxhSwzQK--