From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 111802 invoked by alias); 7 Aug 2017 20:46:02 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 91656 invoked by uid 89); 7 Aug 2017 20:45:46 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.0 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=SIZES X-HELO: NAM02-CY1-obe.outbound.protection.outlook.com Received: from mail-cys01nam02on0082.outbound.protection.outlook.com (HELO NAM02-CY1-obe.outbound.protection.outlook.com) (104.47.37.82) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 07 Aug 2017 20:45:40 +0000 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Steve.Ellcey@cavium.com; Received: from sellcey-dt.caveonetworks.com (50.233.148.156) by CY4PR07MB3544.namprd07.prod.outlook.com (10.171.252.165) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1320.16; Mon, 7 Aug 2017 20:45:36 +0000 Message-ID: <1502138734.3962.96.camel@cavium.com> Subject: Re: [Patch][aarch64] Use IFUNCs to enable LSE instructions in libatomic on aarch64 From: Steve Ellcey Reply-To: sellcey@cavium.com To: gcc-patches Date: Mon, 07 Aug 2017 20:46:00 -0000 In-Reply-To: <1502138666.3962.95.camel@cavium.com> References: <1502138666.3962.95.camel@cavium.com> Content-Type: multipart/mixed; boundary="=-9Ewt3Qq/8CrFfZEDQo7V" Mime-Version: 1.0 X-ClientProxiedBy: DM5PR12CA0067.namprd12.prod.outlook.com (10.175.83.157) To CY4PR07MB3544.namprd07.prod.outlook.com (10.171.252.165) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 94ad46c3-a03f-477d-157e-08d4ddd541d0 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(49563074)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:CY4PR07MB3544; X-Microsoft-Exchange-Diagnostics: 1;CY4PR07MB3544;3:b8xqCzfgxRwK7rLq6XJJKXFUinv0SSUIy8Osj6QJo4w4u1FgeITweCphVsddN4Zmm5pEymfh8IzzMf+3MU6aH43f7YOWa96m8qCigsEt8RdtZ2tIHsJGl9lOWyULR64/qpknTSAEAmTd4BHQ45fqqbT2G3O7Jk+thsUEraJtJx/dlLlzNl2/x6d3bzx/t8+BeOgPO1IW9wts7LR6tHrnU2as+8knpAdA25LNvehxxFD4HYcH2p0WZaLKPN7JyFe9;25:XGFC8WfUtCukpJOpzKooAaBLd+IGCHVQcEpO833rpO9M+BCitv+jzSdZNePdGLEnQamBGqui/AbLzC2wC4efe0DR3eVXggRSPWNrpkJNZV51BOfpSQgiryBdy08f6dnk1FuGHVMoZhGKPJCw+nitpYOqcXxMZGVDAQJ/DZMM8bq2Z9ZfVy65VQBdCmtCJ3OXFjcP0Y+f9g7P8RShPPdrtrinl4SU7OOsbbtoQkS/4yPRinKQ56etUVm3OIJAmHwPdl9T2JAk4J58QOTXicKzxpxxjv07fWweVZYJ/WevgHFzrcqaJZdfM3gFmlkod10kLOzd26qW1R+/BU+nCP5Qaw==;31:TpP2Ic5QpZjehcNinaqfN63qYe+HNHKw6N+eMeUQhP/xLXVpErudywxilCfY86ae9CwDmCVkN0heXS0nEwA4hfBdxxC2nHUpfg/tvNXwS2A+dgmSN9QXd3OYXYXj43CS4KCWf9sSL/XXFzWAqce8dYy3RHTsi9HD1vWhipZfMXSOcuu1yg5G+anMiKZ8XUtL65/BiUSvfbKvsxHfQrcV4IW4aJaa+Kd5lS7aAHQ/XpQ= X-MS-TrafficTypeDiagnostic: CY4PR07MB3544: X-Microsoft-Exchange-Diagnostics: 1;CY4PR07MB3544;20:Z6Np63OK2tv/QH/opwd5yybpU5niyZOTfbEKwe8p+Gm9dM4su5GnRSuucZkjugbnJfN5ca2Bv6/+NfU6gsD5KWKzWMKU5hzFu8u++A7dpPRl5EzjdzZJRZjHkXfj3nyWuEkAt0w82VF6I9PXxY4AjDsHAPuuiO4ATfM4AaH2eAUDujrl4ZtMkubP3J/25TbrVjoQOMMaj89/G1iJxFDHgcr/DjzTtgf5wapWXp88/J7nkPouR6cxqqesskdLK6LgI/ViE8IMBu+uiaOo+qtY1p9Iv6xo7/HBjjrtjUSTLliFDXQHD/11oS6OrsJ6nr8zVLTJ6ZqqrVLX4OIBImjjwnbRXOF0uAuT7WN6naLBwLm0z7AkmSxaPqqdyDh0bE2duNNR9z9ARGD+lZuHkGW4Qzpl/qRHqYFIBoYGehhmONUKZU7y+rtlV4L+em3AAEeMHa6GgzYBd3vV6LKFHdrMYJPTKGemeDFSIiPIet9fmkCy936X15igFCEeiCjWtFCR;4:5gK05Y4v9sEveQph4AVbFDqJHlXSv73v3wxzXBUq71+vsMBTFJxdiqEybSHyaYXGQIs4ByO40sMdtF0AbMIM1EwP+VzsQYec7BfBljG3cwdxvNyVNR6BRRYKxdXbX+JTNi2HH+wv0jQ+7Ng7UBuK/tLfr8ZRhpI2ydkKMGbI2bdPhv0CRGm+JLbj8Jl2LygnhTdBSK2j0PTamsdqjhhTpPL88YJfAbNMyrSnt8RQzLN3pVa5msniSvIV06s+MU6F X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(102415395)(6040450)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(6041248)(20161123558100)(20161123562025)(20161123560025)(20161123564025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:CY4PR07MB3544;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:CY4PR07MB3544; X-Forefront-PRVS: 0392679D18 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(7370300001)(6009001)(39450400003)(39850400002)(39410400002)(39400400002)(39840400002)(199003)(377424004)(189002)(568964002)(305945005)(97736004)(36756003)(6116002)(3846002)(2476003)(7736002)(189998001)(50986999)(229853002)(5890100001)(43066003)(6506006)(76176999)(7350300001)(84326002)(6486002)(101416001)(6246003)(110136004)(69596002)(38730400002)(72206003)(4610100001)(5000100001)(66066001)(478600001)(68736007)(6512007)(53936002)(6916009)(2950100002)(53416004)(50226002)(42186005)(8676002)(5660300001)(33646002)(512874002)(3450700001)(81166006)(81156014)(2906002)(106356001)(103116003)(105586002)(25786009)(99106002);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR07MB3544;H:sellcey-dt.caveonetworks.com;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY4PR07MB3544;23:OvuE3fcPqIDgrJx5mPJ0VjnCFNWVMF7o/5PhulvvN?= =?us-ascii?Q?GGl0GAyhqxWLV96As4MuVxZlfw/h7jsTrIyHBPNVom14BJiNmPVTla4gC7DC?= =?us-ascii?Q?TsXjSpvFnigGWn4pmFLTL80yS95rssimCaFSz4SujMthfPY7gt2m0N0PWhkb?= =?us-ascii?Q?0XQwErIc/lozjVZ6eqv36kIR2jsPcviTOkLbF1JGsxd5KdP4+pv+N/Lymuc8?= =?us-ascii?Q?pf7gLiNu9H2LimHXgxEKoQTKU5j/euo4d9wR0anmZ3x83ZaYmDCgceK/bke9?= =?us-ascii?Q?HnJIIP8vKSBW2bboutH3aEX/73rZqbJFsZHswjji5xgCimaaLq0F+hyljn+5?= =?us-ascii?Q?mhALD/gSYffgzE1sVx8dSns2XJVUrwFFZQNaOLzWbbfMbnKtB4ePSLl6XPNh?= =?us-ascii?Q?gcXMVdt2VBZ4/Nc7vGHdaTDkDJpEfWMKsO31df0BgGF83sIatcQe7MwPfgCf?= =?us-ascii?Q?Tyf51Fjztg0lEJY9Hnbrz573ZfW0ZKFJLEWpKE+gU4KEnaf63jv4sllb3oAi?= =?us-ascii?Q?nWT+GFr2ypvIgs6fQum63FvJXyhNXeoRKR2Dl9u3Rhxrt5G3o9ECEESxrKEd?= =?us-ascii?Q?Pk2QbL8nSFtr9jpGxFFO/MGjw6CRDrPTAxIK6RYbXFNifTwgvycWfOhBp1L1?= =?us-ascii?Q?efQH8Za08AQiFErONQtuB+IWeYjHu4jkahOlIgy3bPiZfCdxzQGVAq2PymtC?= =?us-ascii?Q?LW/b8PPzCYZm5TrdEBcuEkeDkiC/UJyceExz/Vbn+fgscJm/QUjHsANx5eGv?= =?us-ascii?Q?wuydV0yH0TK2yhWYuzumMlfSiJc7+/UdLdGtGjut4xArlyjsd30iQlhrs6oz?= =?us-ascii?Q?SbI9FkgW5AFqD0kN7khgrRvQ7Nv192fZY3DwnVEtOtTzLWWa7zcs4KAdkyJa?= =?us-ascii?Q?5Zr9Cglqz1xlWZrw2o7qVTuP+XatGDu69MhKb7LMr0DU0E0m7O/XOya7tWTX?= =?us-ascii?Q?RpTHUmAFsGNlx4teWfxaenEb+txSxBoUIhjey4DCqoFWpGCPmgweuj+Xm1Sp?= =?us-ascii?Q?9KV0OqJMuoLo7DCzu6NfS9ntJwvrECvUc+fCux8DbMUCn6CGsabifJhF978t?= =?us-ascii?Q?Me2uye9QWMQTJa7SKRoLURjijK3JQ1Xez9IzGlVmOKkTGVS7QKMFNwoCyj8x?= =?us-ascii?Q?gROC2JLR8dZXjmKnON+t6G05lBnTynTtns+jpE6AJvQZHRTFAhXglZbYDbOl?= =?us-ascii?Q?a2iVN609mWbbajkxfXOiT3Rb6smAa9d9eM96BspTu1p6zQGwA919GyyndjLQ?= =?us-ascii?Q?13poOOF/4dciiypuzfgdTTMbj5wiqMyMsmo1eSygwbof0Rw7Vn1fNaIjUKiD?= =?us-ascii?Q?Atn3SIAHOYUzNiLPGKZnifuCwm02tFsxXLz676dvPSZ/W8IGP3Gpl8F3Kdbk?= =?us-ascii?Q?Rwvpa/DI30JZEuVbHzoZyRir9Cirqw4EeGHT4kN4yU9dS9WG9xapxVZZ/07D?= =?us-ascii?Q?UpTM5sm/s1sEnw2iXlimZ8tFLCId2QJ61blWMjUemyOIJw0HN5W?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR07MB3544;6:uDqHF8k/siav9F5yo6DjnNEaQZZ7LceIekuP9RZgYJXXlr33UiMlBpAvH5I0SIK82PNkmXYy+P9NzIw77FAN8RjhS38aKyQzrSmoPwDU1EDKwP9EC2+88j3hPlfSIXYVvNEE6TGKDkk/W6THQILh6pC7Ih5kiQAY6JOBQig5k9XgHxP9eHyWLhGR3+gGKuJQHwL+FJ198FOD6Ap9K5dxhoR9S9JaAQ1BuHLgT+NUxNOAjY1RVet71XZkUC1li5JVCSsCX+A8Fipd9I+goMdJNef/cmYrWz8W80YL+1bg0q6HPLSBVWaKjmV0cwra9xtYFXdWBmzB4YpaA4w8STc+FA==;5:eDRLVf9+RadiV09BgnbsufNFRwmF/XtD+G18kJZWNmGLPrPZ9hrxwNdihB/NzF9alrUSIcXWjg+i5VbOdVjGecUWTQ1GcmqdoZ4BAZWFDic2Qp73Tm7WiARgxkYrCRNogDDSkyedbLj2qB6cz5xsHw==;24:A3ZIkteMFAVv6Zkf8reuMy08hFT5wWP5Yr43P9gCePJfwEkR7M0LD60Zxrf/EQMTVThh4RZsNuKpirmdcpq+TT19Cevqk2v/ddnQlc3RA9c=;7:VNrBqXO8iV24doTEnHmmt/6qiLteDIFWsHm8Eo9m1VIENL1elklroWTYM2Wpq2OzWybdLpzKMToKQ2AJyxoT9Cem7tWmmu7PMO6csn0EFwLbCnRtD8Fd++kgol4SgW4Wdxskx++SfnsNaeU4moZ/fntN4seZsyDXWgrolZA/RQnigGOVm01662eAgXlhR2zriVGyPdlQ5q8QeUShxTcgB7aYSMkQFW8bF/qP870Aqzg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Aug 2017 20:45:36.5354 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR07MB3544 X-SW-Source: 2017-08/txt/msg00547.txt.bz2 --=-9Ewt3Qq/8CrFfZEDQo7V Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit Content-length: 651 It would probably help if I included the patch. Steve Ellcey sellcey@cavium.com 2017-08-07  Steve Ellcey   * Makefile.am (ARCH_AARCH64_LINUX_LSE): Add IFUNC_OPTIONS and libatomic_la_LIBADD. * config/linux/aarch64/host-config.h: New file. * config/linux/aarch64/init.c: New file. * configure.ac (AC_CHECK_HEADERS): Check for sys/auxv.h. (AC_CHECK_FUNCS): Check for getauxval. (ARCH_AARCH64_LINUX_LSE): New conditional for IFUNC builds. * configure.tgt (aarch64): Set AARCH and try_ifunc. (aarch64*-*-linux*) Update config_path. * Makefile.in: Regenerate. * auto-config.h.in: Regenerate. * configure: Regenerate. --=-9Ewt3Qq/8CrFfZEDQo7V Content-Disposition: attachment; filename="libatomic.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="libatomic.patch"; charset="UTF-8" Content-length: 7438 ZGlmZiAtLWdpdCBhL2xpYmF0b21pYy9NYWtlZmlsZS5hbSBiL2xpYmF0b21p Yy9NYWtlZmlsZS5hbQppbmRleCBkNzMxNDA2Li5hMzVkZjFlIDEwMDY0NAot LS0gYS9saWJhdG9taWMvTWFrZWZpbGUuYW0KKysrIGIvbGliYXRvbWljL01h a2VmaWxlLmFtCkBAIC0xMjIsNiArMTIyLDEwIEBAIGxpYmF0b21pY19sYV9M SUJBREQgPSAkKGZvcmVhY2ggcywkKFNJWkVTKSwkKGFkZHN1ZmZpeCBfJChz KV8ubG8sJChTSVpFT0JKUykpKQogCiAjIyBPbiBhIHRhcmdldC1zcGVjaWZp YyBiYXNpcywgaW5jbHVkZSBhbHRlcm5hdGVzIHRvIGJlIHNlbGVjdGVkIGJ5 IElGVU5DLgogaWYgSEFWRV9JRlVOQworaWYgQVJDSF9BQVJDSDY0X0xJTlVY X0xTRQorSUZVTkNfT1BUSU9OUwkgICAgID0gLW1jcHU9dGh1bmRlcngydDk5 CitsaWJhdG9taWNfbGFfTElCQUREICs9ICQoZm9yZWFjaCBzLCQoU0laRVMp LCQoYWRkc3VmZml4IF8kKHMpXzFfLmxvLCQoU0laRU9CSlMpKSkKK2VuZGlm CiBpZiBBUkNIX0FSTV9MSU5VWAogSUZVTkNfT1BUSU9OUwkgICAgID0gLW1h cmNoPWFybXY3LWEgLURIQVZFX0tFUk5FTDY0CiBsaWJhdG9taWNfbGFfTElC QUREICs9ICQoZm9yZWFjaCBzLCQoU0laRVMpLCQoYWRkc3VmZml4IF8kKHMp XzFfLmxvLCQoU0laRU9CSlMpKSkKZGlmZiAtLWdpdCBhL2xpYmF0b21pYy9j b25maWcvbGludXgvYWFyY2g2NC9ob3N0LWNvbmZpZy5oIGIvbGliYXRvbWlj L2NvbmZpZy9saW51eC9hYXJjaDY0L2hvc3QtY29uZmlnLmgKaW5kZXggZTY5 ZGUyOS4uNGQwYWI5NiAxMDA2NDQKLS0tIGEvbGliYXRvbWljL2NvbmZpZy9s aW51eC9hYXJjaDY0L2hvc3QtY29uZmlnLmgKKysrIGIvbGliYXRvbWljL2Nv bmZpZy9saW51eC9hYXJjaDY0L2hvc3QtY29uZmlnLmgKQEAgLTAsMCArMSwz MyBAQAorLyogQ29weXJpZ2h0IChDKSAyMDE3IEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgorCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUg R05VIEF0b21pYyBMaWJyYXJ5IChsaWJhdG9taWMpLgorCisgICBMaWJhdG9t aWMgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeSBpdAorICAgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAg IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDMgb2YgdGhlIExpY2Vuc2UsIG9yCisgICAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorCisgICBMaWJhdG9taWMgaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJ VEhPVVQgQU5ZCisgICBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCisg ICBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvcgorICAgbW9yZSBkZXRhaWxzLgorCisg ICBVbmRlciBTZWN0aW9uIDcgb2YgR1BMIHZlcnNpb24gMywgeW91IGFyZSBn cmFudGVkIGFkZGl0aW9uYWwKKyAgIHBlcm1pc3Npb25zIGRlc2NyaWJlZCBp biB0aGUgR0NDIFJ1bnRpbWUgTGlicmFyeSBFeGNlcHRpb24sIHZlcnNpb24K KyAgIDMuMSwgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24uCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFuZAorICAg YSBjb3B5IG9mIHRoZSBHQ0MgUnVudGltZSBMaWJyYXJ5IEV4Y2VwdGlvbiBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsKKyAgIHNlZSB0aGUgZmlsZXMgQ09Q WUlORzMgYW5kIENPUFlJTkcuUlVOVElNRSByZXNwZWN0aXZlbHkuICBJZiBu b3QsIHNlZQorICAgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAg Ki8KKworI2lmIEhBVkVfSUZVTkMKKworZXh0ZXJuIGJvb2wgbGliYXRfaGF2 ZV9sc2UgSElEREVOOworCisjIGRlZmluZSBJRlVOQ19DT05EXzEJbGliYXRf aGF2ZV9sc2UKKyMgZGVmaW5lIElGVU5DX05DT05EKE4pCSgxKQorCisjZW5k aWYgLyogSEFWRV9JRlVOQyAqLworCisjaW5jbHVkZV9uZXh0IDxob3N0LWNv bmZpZy5oPgpkaWZmIC0tZ2l0IGEvbGliYXRvbWljL2NvbmZpZy9saW51eC9h YXJjaDY0L2luaXQuYyBiL2xpYmF0b21pYy9jb25maWcvbGludXgvYWFyY2g2 NC9pbml0LmMKaW5kZXggZTY5ZGUyOS4uMWIxMzVjMiAxMDA2NDQKLS0tIGEv bGliYXRvbWljL2NvbmZpZy9saW51eC9hYXJjaDY0L2luaXQuYworKysgYi9s aWJhdG9taWMvY29uZmlnL2xpbnV4L2FhcmNoNjQvaW5pdC5jCkBAIC0wLDAg KzEsNTEgQEAKKy8qIENvcHlyaWdodCAoQykgMjAxNyBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KKworICAgVGhpcyBmaWxlIGlzIHBhcnQgb2Yg dGhlIEdOVSBBdG9taWMgTGlicmFyeSAobGliYXRvbWljKS4KKworICAgTGli YXRvbWljIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkgaXQKKyAgIHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorICAgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgTGliYXRvbWljIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1 dCBXSVRIT1VUIEFOWQorICAgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UworICAgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IKKyAgIG1vcmUgZGV0YWlscy4K KworICAgVW5kZXIgU2VjdGlvbiA3IG9mIEdQTCB2ZXJzaW9uIDMsIHlvdSBh cmUgZ3JhbnRlZCBhZGRpdGlvbmFsCisgICBwZXJtaXNzaW9ucyBkZXNjcmli ZWQgaW4gdGhlIEdDQyBSdW50aW1lIExpYnJhcnkgRXhjZXB0aW9uLCB2ZXJz aW9uCisgICAzLjEsIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbmQK KyAgIGEgY29weSBvZiB0aGUgR0NDIFJ1bnRpbWUgTGlicmFyeSBFeGNlcHRp b24gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07CisgICBzZWUgdGhlIGZpbGVz IENPUFlJTkczIGFuZCBDT1BZSU5HLlJVTlRJTUUgcmVzcGVjdGl2ZWx5LiAg SWYgbm90LCBzZWUKKyAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4gICovCisKKyNpbmNsdWRlICJsaWJhdG9taWNfaS5oIgorCisjaWYgSEFW RV9JRlVOQworCisjaW5jbHVkZSA8c3RkbGliLmg+CisjaWZkZWYgSEFWRV9T WVNfQVVYVl9ICisjIGluY2x1ZGUgPHN5cy9hdXh2Lmg+CisjZW5kaWYKKwor Ym9vbCBsaWJhdF9oYXZlX2xzZSA9IGZhbHNlOworCitzdGF0aWMgdm9pZCBf X2F0dHJpYnV0ZV9fKChjb25zdHJ1Y3RvcikpCitpbml0X2NwdV9yZXZpc2lv biAodm9pZCkKK3sKKyNpZiBkZWZpbmVkIChIQVZFX0dFVEFVWFZBTCkgJiYg ZGVmaW5lZCAoSFdDQVBfQVRPTUlDUykKKyAgdW5zaWduZWQgbG9uZyBpOwor ICBjaGFyICpzOworCisgIGkgPSBnZXRhdXh2YWwgKEFUX0hXQ0FQKTsKKyAg cyA9IGdldGVudiAoIkxEX0hXQ0FQX01BU0siKTsKKyAgaWYgKHMpCisgICAg aSA9IGkgJiBzdHJ0b3VsIChzLCBOVUxMLCAxMCk7CisgIGlmIChpICYgSFdD QVBfQVRPTUlDUykKKyAgICBsaWJhdF9oYXZlX2xzZSA9IHRydWU7CisjZW5k aWYKK30KKworI2VuZGlmIC8qIEhBVkVfSUZVTkMgKi8KZGlmZiAtLWdpdCBh L2xpYmF0b21pYy9jb25maWd1cmUuYWMgYi9saWJhdG9taWMvY29uZmlndXJl LmFjCmluZGV4IDAyM2YxNzIuLjJiZGMyMzQgMTAwNjQ0Ci0tLSBhL2xpYmF0 b21pYy9jb25maWd1cmUuYWMKKysrIGIvbGliYXRvbWljL2NvbmZpZ3VyZS5h YwpAQCAtMTcxLDcgKzE3MSw4IEBAIENGTEFHUz0iJHNhdmVfQ0ZMQUdTIC1m bm8tc3luYy1saWJjYWxscyAkWENGTEFHUyIKIEFDX1NURENfSEVBREVSUwog QUNYX0hFQURFUl9TVFJJTkcKIEdDQ19IRUFERVJfU1RESU5UKGdzdGRpbnQu aCkKLUFDX0NIRUNLX0hFQURFUlMoW2ZlbnYuaF0pCitBQ19DSEVDS19IRUFE RVJTKFtmZW52Lmggc3lzL2F1eHYuaF0pCitBQ19DSEVDS19GVU5DUyhnZXRh dXh2YWwpCiAKICMgQ2hlY2sgZm9yIGNvbW1vbiB0eXBlIHNpemVzCiBMSUJB VF9GT1JBTExfTU9ERVMoW0xJQkFUX0hBVkVfSU5UX01PREVdKQpAQCAtMjQ3 LDYgKzI0OCw4IEBAIEFDX1NVQlNUKExJQlMpCiBBQ19TVUJTVChTSVpFUykK IAogQU1fQ09ORElUSU9OQUwoSEFWRV9JRlVOQywgdGVzdCB4JGxpYmF0X2N2 X2hhdmVfaWZ1bmMgPSB4eWVzKQorQU1fQ09ORElUSU9OQUwoQVJDSF9BQVJD SDY0X0xJTlVYX0xTRSwKKwkgICAgICAgW2V4cHIgIiRjb25maWdfcGF0aCIg OiAiLiogbGludXgvYWFyY2g2NCAuKiIgPiAvZGV2L251bGxdKQogQU1fQ09O RElUSU9OQUwoQVJDSF9BUk1fTElOVVgsCiAJICAgICAgIFtleHByICIkY29u ZmlnX3BhdGgiIDogIi4qIGxpbnV4L2FybSAuKiIgPiAvZGV2L251bGxdKQog QU1fQ09ORElUSU9OQUwoQVJDSF9JMzg2LApkaWZmIC0tZ2l0IGEvbGliYXRv bWljL2NvbmZpZ3VyZS50Z3QgYi9saWJhdG9taWMvY29uZmlndXJlLnRndApp bmRleCBiOGFmM2FiLi5mNzBiYWQ1IDEwMDY0NAotLS0gYS9saWJhdG9taWMv Y29uZmlndXJlLnRndAorKysgYi9saWJhdG9taWMvY29uZmlndXJlLnRndApA QCAtNDAsNiArNDAsMTQgQEAgY2FzZSAiJHt0YXJnZXRfY3B1fSIgaW4KICAg cmlzY3YqKQkJQVJDSD1yaXNjdiA7OwogICBzaCopCQkJQVJDSD1zaCA7Owog CisgIGFhcmNoNjQqKQorCUFSQ0g9YWFyY2g2NAorCWNhc2UgIiR7dGFyZ2V0 fSIgaW4KKwkgICAgYWFyY2g2NCotKi1saW51eCopCisJCXRyeV9pZnVuYz15 ZXMKKwkJOzsKKwllc2FjCisJOzsKICAgYXJtKikKIAlBUkNIPWFybQogCWNh c2UgIiR7dGFyZ2V0fSIgaW4KQEAgLTEwOSw2ICsxMTcsMTEgQEAgZmkKIAog IyBPdGhlciBzeXN0ZW0gY29uZmlndXJ5CiBjYXNlICIke3RhcmdldH0iIGlu CisgIGFhcmNoNjQqLSotbGludXgqKQorCSMgT1Mgc3VwcG9ydCBmb3IgYXRv bWljIHByaW1pdGl2ZXMuCisJY29uZmlnX3BhdGg9IiR7Y29uZmlnX3BhdGh9 IGxpbnV4L2FhcmNoNjQgcG9zaXgiCisJOzsKKwogICBhcm0qLSotbGludXgq KQogCSMgT1Mgc3VwcG9ydCBmb3IgYXRvbWljIHByaW1pdGl2ZXMuCiAJY29u ZmlnX3BhdGg9IiR7Y29uZmlnX3BhdGh9IGxpbnV4L2FybSBwb3NpeCIK --=-9Ewt3Qq/8CrFfZEDQo7V--