From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x536.google.com (mail-ed1-x536.google.com [IPv6:2a00:1450:4864:20::536]) by sourceware.org (Postfix) with ESMTPS id EDBF9384AB40 for ; Tue, 28 May 2024 19:23:44 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org EDBF9384AB40 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=baylibre.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org EDBF9384AB40 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::536 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716924228; cv=none; b=nTZYJTgmt+pSBdhWbVjb4mqJ4qcL9dLRk/gISbRBuZ4Uay1J+swHvaUOn42ywnX4pxaE0KH/bDv/+jUtGe1IprJ28m4Dy6+/wiT74WW77msTxVJwn0q0Rbue/2uSADaHbT4xzaOhpKf6DOcdzC7NjGMpkdPIGnIf4VPuGeR212M= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716924228; c=relaxed/simple; bh=LaP8Ez9Itzm8rHzzkdM2WFmyiH95f+UA/U6SooAl4FI=; h=DKIM-Signature:Message-ID:Date:MIME-Version:To:From:Subject; b=XzGWx2zIvSajte1EnZcbcdLHlnsaTLBMtM+WUBayn0tIU3IB7yp5pvL9aC007HIzWk9KSzle1077nMmV3rEud09l+9EEqvh4+fIigVOP8TQghfUXOlZug9ncGNYyev3TZqnugtgLs9TFGkTRqUPXayRO6Ex2CZdAz5FfsauJcgU= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-ed1-x536.google.com with SMTP id 4fb4d7f45d1cf-57857e0f463so675065a12.0 for ; Tue, 28 May 2024 12:23:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1716924223; x=1717529023; darn=gcc.gnu.org; h=subject:from:to:content-language:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=DVohdkPRrhl25ZJFHCAjJJP1kh+5dkTp4UtJXqZfHWI=; b=Bf8O+0D/eie0QQM5KTG1YeBZxkCAF6dOcfUnXSHyZiKGMhr01fLYg/9GYq/8IJhGUQ UNXh5nWA4cUAeBpYjeDIq/AoBgQWH4CPdB1xv8qStPfXZNrwEnpzh6QfqIcerH43Mjnj EEfzq4FK6/DJRibm4s5DtLJJ+p5+2Mrdg9DVN5K4BO0bIpJbwOVhEKFjPaGyhgbCHkWX 8Oxu4lhWH6ABT2ZLKb0Glc0nStqyaBEYQ8pm6QwfCJKFLmnfVWOs1gOecYb/wx8Gpjxl EybQNeMXzOGEvgH85RHhiSujkAM7w0D7PupXHIeW3tdQeCDIdGsN3kRiOMqr8fFkgS5y JiuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716924223; x=1717529023; h=subject:from:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=DVohdkPRrhl25ZJFHCAjJJP1kh+5dkTp4UtJXqZfHWI=; b=qhd3aGoIgBqZq2pwC0DRoKjkl9YkGUk5Uu7qp/HNQ5KAVVOLmHVJHA4Vxts6/flFam DtasJPxhDsX3kPmqUJ86KiqjYtWXnHuCmuJqGH82FYou/wgeomBLFG98SHnJhxPtMYtJ 9lLhb/yCUygfO+1m6YPlmZpYNZowB5sLeFnYFZKP/hMjajxByqobL5BsJsF9rs8/cHfZ 7cBdKIEOte32grDhDyMmgoM17EtLJvn4yrMi+LtXGOYvRRR7fhrDe3cvJ2mZK08rBChG Rt4ceI7YARrEtHSxGqg8cbpTuql1eJUOvMwFPSY4/AxBPNk/PkslkVSuaAxgSdNQcXGN Hwdw== X-Gm-Message-State: AOJu0YylLgz5MLdNpUZlDZpmz4WeFRnIzNu2D0js7OSOcBg/AJIejVIz oxGXlMcRTo7mUu9SNi5e6ApHJov8EYT9gtzCeSuuBjfe5dpwtOHPeBsAkyraqYLwXYpzedrWTYz Y X-Google-Smtp-Source: AGHT+IFXvqPo5xCtg7kaOWhoeP+9hQPrh7DxputWYiaTbZ00b11rC5nkwvTIFryJNk4IDaK4sAFMeQ== X-Received: by 2002:a50:cc0c:0:b0:579:73b7:b4cc with SMTP id 4fb4d7f45d1cf-57973b7b9fcmr7828112a12.2.1716924223120; Tue, 28 May 2024 12:23:43 -0700 (PDT) Received: from ?IPV6:2001:16b8:3fa8:ee00:bc0d:b5a:797b:a391? ([2001:16b8:3fa8:ee00:bc0d:b5a:797b:a391]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-57852339fc4sm7475581a12.15.2024.05.28.12.23.42 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 May 2024 12:23:42 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------e81nH0sftIGjX0e3f5Rmnuex" Message-ID: Date: Tue, 28 May 2024 21:23:41 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: gcc-patches , Jakub Jelinek From: Tobias Burnus Subject: [patch] OpenMP: Add -fopenmp-force-usm mode X-Spam-Status: No, score=-10.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE,URIBL_BLACK autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------e81nH0sftIGjX0e3f5Rmnuex Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit -fopenmp-force-usm can be useful for some badly written code. Explicity using 'omp requires' makes more sense but still. It might also make sense for testing purpose. Unfortunately, I did not see a simple way of testing it. When trying it manually, I looked at the 'a.xamdgcn-amdhsa.c' -save-temps file, where gcn_data has the omp_requires_mask as second argument and testing showed that an explicit pragma and the -f... argument have the same result. Alternative would be to move this code later, e.g. to lto-cgraph.cc's omp_requires_mask, which might be safer (as it avoids changing as many locations). On the other hand, it might require more special cases elsewhere.* Comment, suggestions? Tobias *I am especially thinking about a global variable and "#pragma omp declare target". At least with 'omp requires self_maps' of OpenMP 6, it seems as if 'declare target enter(global_var)' should become 'link(global_var)' where the global_var pointer is updated to point to the host version. At least I don't see how otherwise the "all corresponding list items created by the 'enter' clauses specified by declare target directives in the compilation unit share storage with the original list items." could be fulfilled. This will require generating different code for 'self_maps' (and, potentially / [RFC] 'unified_shared_memory') than normal code, which would be the first compiler code-gen change due to USM (→ GOMP_OFFLOAD_CAP_SHARED_MEM) for non-host devices. --------------e81nH0sftIGjX0e3f5Rmnuex Content-Type: text/x-patch; charset=UTF-8; name="fopenmp-force-usm.diff" Content-Disposition: attachment; filename="fopenmp-force-usm.diff" Content-Transfer-Encoding: base64 T3Blbk1QOiBBZGQgLWZvcGVubXAtZm9yY2UtdXNtIG1vZGUKCkFkZCBhbiBpbXBsaWNpdCAn b21wIHJlcXVpcmVzIHVuaWZpZWRfc2hhcmVkX21lbW9yeScgdG8gYWxsIGZpbGVzIHRoYXQK dXNlIHRhcmdldCBjb25zdHJ1Y3RzICgiT01QX1JFUVVJUkVTX1RBUkdFVF9VU0VEIikuICBB cyBjb25zdHJ1Y3RlZCwgdGhlCmRpYWdub3N0aWMgIid1bmlmaWVkX3NoYXJlZF9tZW1vcnkn IGNsYXVzZSB1c2VkIGxleGljYWxseSBhZnRlciBmaXJzdCB0YXJnZXQKY29uc3RydWN0IG9y IG9mZmxvYWRpbmcgQVBJIiBpcyBub3QgaW5oaWJpdGVkLgoKVGhlIG9wdGlvbiBoYXMgbm8g ZWZmZWN0IHdpdGhvdXQgLWZvcGVubXAgYW5kIGRvZXMgbm90IGFmZmVjdCBPcGVuQUNDIGNv ZGUsCm1hdGNoaW5nIHdoYXQgdGhlIGRpcmVjdGl2ZSB3b3VsZCBkby4gIFRoZSBuYW1lIG9m IHRoZSBjb21tYW5kLWxpbmUgb3B0aW9uCm1hdGNoZXMgQ2xhbmcncywgYWRkZWQgaW4gTExW TSAxOC4KCmdjYy9jLWZhbWlseS9DaGFuZ2VMb2c6CgoJKiBjLm9wdCAoZm9wZW5tcC1mb3Jj ZS11c20pOiBOZXcuCgkqIGMub3B0LnVybHM6IFJlZ2VuZXJhdGVkCgpnY2MvYy9DaGFuZ2VM b2c6CgoJKiBjLXBhcnNlci5jYyAoY19wYXJzZXJfb21wX3RhcmdldF9kYXRhLCBjX3BhcnNl cl9vbXBfdGFyZ2V0X3VwZGF0ZSwKCWNfcGFyc2VyX29tcF90YXJnZXRfZW50ZXJfZGF0YSwg Y19wYXJzZXJfb21wX3RhcmdldF9leGl0X2RhdGEsCgljX3BhcnNlcl9vbXBfdGFyZ2V0KTog V2hlbiBzZXR0aW5nIE9NUF9SRVFVSVJFU19UQVJHRVRfVVNFRCwgYWxzbwoJc2V0IE9NUF9S RVFVSVJFU19VTklGSUVEX1NIQVJFRF9NRU1PUlkgaWYgLWZvcGVubXAtZm9yY2UtdXNtIGlz CglpbiBmb3JjZS4KCmdjYy9jcC9DaGFuZ2VMb2c6CgoJKiBwYXJzZXIuY2MgKGNwX3BhcnNl cl9vbXBfdGFyZ2V0X2RhdGEsCgljcF9wYXJzZXJfb21wX3RhcmdldF9lbnRlcl9kYXRhLCBj cF9wYXJzZXJfb21wX3RhcmdldF9leGl0X2RhdGEsCgljcF9wYXJzZXJfb21wX3RhcmdldF91 cGRhdGUsIGNwX3BhcnNlcl9vbXBfdGFyZ2V0KTogV2hlbiBzZXR0aW5nCglPTVBfUkVRVUlS RVNfVEFSR0VUX1VTRUQsIGFsc28gc2V0IE9NUF9SRVFVSVJFU19VTklGSUVEX1NIQVJFRF9N RU1PUlkKCWlmIC1mb3Blbm1wLWZvcmNlLXVzbSBpcyBpbiBmb3JjZS4KCgpnY2MvQ2hhbmdl TG9nOgoKCSogZG9jL2ludm9rZS50ZXhpICgtZm9wZW5tcC1mb3JjZS11c20pOiBEb2N1bWVu dCBuZXcgb3B0aW9uLgoKZ2NjL2ZvcnRyYW4vQ2hhbmdlTG9nOgoKCSogaW52b2tlLnRleGkg KC1mb3Blbm1wLWZvcmNlLXVzbSk6IERvY3VtZW50IG5ldyBvcHRpb24uCgkqIGxhbmcub3B0 IChmb3Blbm1wLWZvcmNlLXVzbSk6IE5ldy4KCSogbGFuZy5vcHQudXJsczogUmVnZW5lcmF0 ZS4KCSogcGFyc2UuY2MgKGdmY19wYXJzZV9maWxlKTogV2hlbiBzZXR0aW5nCglPTVBfUkVR VUlSRVNfVEFSR0VUX1VTRUQsIGFsc28gc2V0IE9NUF9SRVFVSVJFU19VTklGSUVEX1NIQVJF RF9NRU1PUlkKCWlmIC1mb3Blbm1wLWZvcmNlLXVzbSBpcyBpbiBmb3JjZS4KCiBnY2MvYy1m YW1pbHkvYy5vcHQgICAgICAgIHwgIDQgKysrKwogZ2NjL2MtZmFtaWx5L2Mub3B0LnVybHMg ICB8ICAzICsrKwogZ2NjL2MvYy1wYXJzZXIuY2MgICAgICAgICB8IDUwICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiBnY2MvY3AvcGFyc2VyLmNj ICAgICAgICAgIHwgNTAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0KIGdjYy9kb2MvaW52b2tlLnRleGkgICAgICAgfCAxMSArKysrKysrKystLQog Z2NjL2ZvcnRyYW4vaW52b2tlLnRleGkgICB8ICA3ICsrKysrKysKIGdjYy9mb3J0cmFuL2xh bmcub3B0ICAgICAgfCAgNCArKysrCiBnY2MvZm9ydHJhbi9sYW5nLm9wdC51cmxzIHwgIDMg KysrCiBnY2MvZm9ydHJhbi9wYXJzZS5jYyAgICAgIHwgMTAgKysrKysrKystLQogOSBmaWxl cyBjaGFuZ2VkLCAxMTggaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZ2NjL2MtZmFtaWx5L2Mub3B0IGIvZ2NjL2MtZmFtaWx5L2Mub3B0CmluZGV4IGZi MzRjM2I3MDMxLi40OTg1Y2Q2MWM0OCAxMDA2NDQKLS0tIGEvZ2NjL2MtZmFtaWx5L2Mub3B0 CisrKyBiL2djYy9jLWZhbWlseS9jLm9wdApAQCAtMjEzNiw2ICsyMTM2LDEwIEBAIGZvcGVu bXAKIEMgT2JqQyBDKysgT2JqQysrIExUTyBWYXIoZmxhZ19vcGVubXApCiBFbmFibGUgT3Bl bk1QIChpbXBsaWVzIC1mcmVjdXJzaXZlIGluIEZvcnRyYW4pLgogCitmb3Blbm1wLWZvcmNl LXVzbQorQyBPYmpDIEMrKyBPYmpDKysgVmFyKGZsYWdfb3Blbm1wX2ZvcmNlX3VzbSkKK0Jl aGF2ZSBhcyBpZiB0aGUgc291cmNlIGZpbGUgY29udGFpbmVkIE9wZW5NUCdzICdyZXF1aXJl cyB1bmlmaWVkX3NoYXJlZF9tZW1vcnknLgorCiBmb3Blbm1wLXNpbWQKIEMgT2JqQyBDKysg T2JqQysrIFZhcihmbGFnX29wZW5tcF9zaW1kKQogRW5hYmxlIE9wZW5NUCdzIFNJTUQgZGly ZWN0aXZlcy4KZGlmZiAtLWdpdCBhL2djYy9jLWZhbWlseS9jLm9wdC51cmxzIGIvZ2NjL2Mt ZmFtaWx5L2Mub3B0LnVybHMKaW5kZXggZGQ0NTVkN2MwZGMuLjM0YjNhMzk1ZTg0IDEwMDY0 NAotLS0gYS9nY2MvYy1mYW1pbHkvYy5vcHQudXJscworKysgYi9nY2MvYy1mYW1pbHkvYy5v cHQudXJscwpAQCAtMTIyMiw2ICsxMjIyLDkgQEAgVXJsU3VmZml4KGdjYy9DLURpYWxlY3Qt T3B0aW9ucy5odG1sI2luZGV4LWZvcGVuYWNjLWRpbSkKIGZvcGVubXAKIFVybFN1ZmZpeChn Y2MvQy1EaWFsZWN0LU9wdGlvbnMuaHRtbCNpbmRleC1mb3Blbm1wKSBMYW5nVXJsU3VmZml4 X0ZvcnRyYW4oZ2ZvcnRyYW4vRm9ydHJhbi1EaWFsZWN0LU9wdGlvbnMuaHRtbCNpbmRleC1m b3Blbm1wKQogCitmb3Blbm1wLWZvcmNlLXVzbQorVXJsU3VmZml4KGdjYy9DLURpYWxlY3Qt T3B0aW9ucy5odG1sI2luZGV4LWZvcGVubXAtZm9yY2UtdXNtKSBMYW5nVXJsU3VmZml4X0Zv cnRyYW4oZ2ZvcnRyYW4vRm9ydHJhbi1EaWFsZWN0LU9wdGlvbnMuaHRtbCNpbmRleC1mb3Bl bm1wLWZvcmNlLXVzbSkKKwogZm9wZW5tcC1zaW1kCiBVcmxTdWZmaXgoZ2NjL0MtRGlhbGVj dC1PcHRpb25zLmh0bWwjaW5kZXgtZm9wZW5tcC1zaW1kKSBMYW5nVXJsU3VmZml4X0ZvcnRy YW4oZ2ZvcnRyYW4vRm9ydHJhbi1EaWFsZWN0LU9wdGlvbnMuaHRtbCNpbmRleC1mb3Blbm1w LXNpbWQpCiAKZGlmZiAtLWdpdCBhL2djYy9jL2MtcGFyc2VyLmNjIGIvZ2NjL2MvYy1wYXJz ZXIuY2MKaW5kZXggMDBmOGJmNDM3NmUuLjkzYzljZDFjOWQwIDEwMDY0NAotLS0gYS9nY2Mv Yy9jLXBhcnNlci5jYworKysgYi9nY2MvYy9jLXBhcnNlci5jYwpAQCAtMjM4NDksOCArMjM4 NDksMTQgQEAgc3RhdGljIHRyZWUKIGNfcGFyc2VyX29tcF90YXJnZXRfZGF0YSAobG9jYXRp b25fdCBsb2MsIGNfcGFyc2VyICpwYXJzZXIsIGJvb2wgKmlmX3ApCiB7CiAgIGlmIChmbGFn X29wZW5tcCkKLSAgICBvbXBfcmVxdWlyZXNfbWFzawotICAgICAgPSAoZW51bSBvbXBfcmVx dWlyZXMpIChvbXBfcmVxdWlyZXNfbWFzayB8IE9NUF9SRVFVSVJFU19UQVJHRVRfVVNFRCk7 CisgICAgeworICAgICAgb21wX3JlcXVpcmVzX21hc2sKKwk9IChlbnVtIG9tcF9yZXF1aXJl cykgKG9tcF9yZXF1aXJlc19tYXNrIHwgT01QX1JFUVVJUkVTX1RBUkdFVF9VU0VEKTsKKyAg ICAgIGlmIChmbGFnX29wZW5tcF9mb3JjZV91c20pCisJb21wX3JlcXVpcmVzX21hc2sKKwkg ID0gKGVudW0gb21wX3JlcXVpcmVzKSAob21wX3JlcXVpcmVzX21hc2sKKwkJCQkgfCBPTVBf UkVRVUlSRVNfVU5JRklFRF9TSEFSRURfTUVNT1JZKTsKKyAgICB9CiAKICAgdHJlZSBjbGF1 c2VzCiAgICAgPSBjX3BhcnNlcl9vbXBfYWxsX2NsYXVzZXMgKHBhcnNlciwgT01QX1RBUkdF VF9EQVRBX0NMQVVTRV9NQVNLLApAQCAtMjM5NTYsOCArMjM5NjIsMTQgQEAgY19wYXJzZXJf b21wX3RhcmdldF91cGRhdGUgKGxvY2F0aW9uX3QgbG9jLCBjX3BhcnNlciAqcGFyc2VyLAog ICAgIH0KIAogICBpZiAoZmxhZ19vcGVubXApCi0gICAgb21wX3JlcXVpcmVzX21hc2sKLSAg ICAgID0gKGVudW0gb21wX3JlcXVpcmVzKSAob21wX3JlcXVpcmVzX21hc2sgfCBPTVBfUkVR VUlSRVNfVEFSR0VUX1VTRUQpOworICAgIHsKKyAgICAgIG9tcF9yZXF1aXJlc19tYXNrCisJ PSAoZW51bSBvbXBfcmVxdWlyZXMpIChvbXBfcmVxdWlyZXNfbWFzayB8IE9NUF9SRVFVSVJF U19UQVJHRVRfVVNFRCk7CisgICAgICBpZiAoZmxhZ19vcGVubXBfZm9yY2VfdXNtKQorCW9t cF9yZXF1aXJlc19tYXNrCisJICA9IChlbnVtIG9tcF9yZXF1aXJlcykgKG9tcF9yZXF1aXJl c19tYXNrCisJCQkJIHwgT01QX1JFUVVJUkVTX1VOSUZJRURfU0hBUkVEX01FTU9SWSk7Cisg ICAgfQogCiAgIHRyZWUgc3RtdCA9IG1ha2Vfbm9kZSAoT01QX1RBUkdFVF9VUERBVEUpOwog ICBUUkVFX1RZUEUgKHN0bXQpID0gdm9pZF90eXBlX25vZGU7CkBAIC0yNDAwNyw4ICsyNDAx OSwxNCBAQCBjX3BhcnNlcl9vbXBfdGFyZ2V0X2VudGVyX2RhdGEgKGxvY2F0aW9uX3QgbG9j LCBjX3BhcnNlciAqcGFyc2VyLAogICAgIH0KIAogICBpZiAoZmxhZ19vcGVubXApCi0gICAg b21wX3JlcXVpcmVzX21hc2sKLSAgICAgID0gKGVudW0gb21wX3JlcXVpcmVzKSAob21wX3Jl cXVpcmVzX21hc2sgfCBPTVBfUkVRVUlSRVNfVEFSR0VUX1VTRUQpOworICAgIHsKKyAgICAg IG9tcF9yZXF1aXJlc19tYXNrCisJPSAoZW51bSBvbXBfcmVxdWlyZXMpIChvbXBfcmVxdWly ZXNfbWFzayB8IE9NUF9SRVFVSVJFU19UQVJHRVRfVVNFRCk7CisgICAgICBpZiAoZmxhZ19v cGVubXBfZm9yY2VfdXNtKQorCW9tcF9yZXF1aXJlc19tYXNrCisJICA9IChlbnVtIG9tcF9y ZXF1aXJlcykgKG9tcF9yZXF1aXJlc19tYXNrCisJCQkJIHwgT01QX1JFUVVJUkVTX1VOSUZJ RURfU0hBUkVEX01FTU9SWSk7CisgICAgfQogCiAgIHRyZWUgY2xhdXNlcwogICAgID0gY19w YXJzZXJfb21wX2FsbF9jbGF1c2VzIChwYXJzZXIsIE9NUF9UQVJHRVRfRU5URVJfREFUQV9D TEFVU0VfTUFTSywKQEAgLTI0MTE3LDggKzI0MTM1LDE0IEBAIGNfcGFyc2VyX29tcF90YXJn ZXRfZXhpdF9kYXRhIChsb2NhdGlvbl90IGxvYywgY19wYXJzZXIgKnBhcnNlciwKICAgICB9 CiAKICAgaWYgKGZsYWdfb3Blbm1wKQotICAgIG9tcF9yZXF1aXJlc19tYXNrCi0gICAgICA9 IChlbnVtIG9tcF9yZXF1aXJlcykgKG9tcF9yZXF1aXJlc19tYXNrIHwgT01QX1JFUVVJUkVT X1RBUkdFVF9VU0VEKTsKKyAgICB7CisgICAgICBvbXBfcmVxdWlyZXNfbWFzaworCT0gKGVu dW0gb21wX3JlcXVpcmVzKSAob21wX3JlcXVpcmVzX21hc2sgfCBPTVBfUkVRVUlSRVNfVEFS R0VUX1VTRUQpOworICAgICAgaWYgKGZsYWdfb3Blbm1wX2ZvcmNlX3VzbSkKKwlvbXBfcmVx dWlyZXNfbWFzaworCSAgPSAoZW51bSBvbXBfcmVxdWlyZXMpIChvbXBfcmVxdWlyZXNfbWFz aworCQkJCSB8IE9NUF9SRVFVSVJFU19VTklGSUVEX1NIQVJFRF9NRU1PUlkpOworICAgIH0K IAogICB0cmVlIGNsYXVzZXMKICAgICA9IGNfcGFyc2VyX29tcF9hbGxfY2xhdXNlcyAocGFy c2VyLCBPTVBfVEFSR0VUX0VYSVRfREFUQV9DTEFVU0VfTUFTSywKQEAgLTI0MjIzLDggKzI0 MjQ3LDE0IEBAIGNfcGFyc2VyX29tcF90YXJnZXQgKGNfcGFyc2VyICpwYXJzZXIsIGVudW0g cHJhZ21hX2NvbnRleHQgY29udGV4dCwgYm9vbCAqaWZfcCkKICAgICB9CiAKICAgaWYgKGZs YWdfb3Blbm1wKQotICAgIG9tcF9yZXF1aXJlc19tYXNrCi0gICAgICA9IChlbnVtIG9tcF9y ZXF1aXJlcykgKG9tcF9yZXF1aXJlc19tYXNrIHwgT01QX1JFUVVJUkVTX1RBUkdFVF9VU0VE KTsKKyAgICB7CisgICAgICBvbXBfcmVxdWlyZXNfbWFzaworCT0gKGVudW0gb21wX3JlcXVp cmVzKSAob21wX3JlcXVpcmVzX21hc2sgfCBPTVBfUkVRVUlSRVNfVEFSR0VUX1VTRUQpOwor ICAgICAgaWYgKGZsYWdfb3Blbm1wX2ZvcmNlX3VzbSkKKwlvbXBfcmVxdWlyZXNfbWFzawor CSAgPSAoZW51bSBvbXBfcmVxdWlyZXMpIChvbXBfcmVxdWlyZXNfbWFzaworCQkJCSB8IE9N UF9SRVFVSVJFU19VTklGSUVEX1NIQVJFRF9NRU1PUlkpOworICAgIH0KIAogICBpZiAoY19w YXJzZXJfbmV4dF90b2tlbl9pcyAocGFyc2VyLCBDUFBfTkFNRSkpCiAgICAgewpkaWZmIC0t Z2l0IGEvZ2NjL2NwL3BhcnNlci5jYyBiL2djYy9jcC9wYXJzZXIuY2MKaW5kZXggNzc5NjI1 MTQ0ZGIuLmZjMjAyNmYwYTAxIDEwMDY0NAotLS0gYS9nY2MvY3AvcGFyc2VyLmNjCisrKyBi L2djYy9jcC9wYXJzZXIuY2MKQEAgLTQ2OTE0LDggKzQ2OTE0LDE0IEBAIHN0YXRpYyB0cmVl CiBjcF9wYXJzZXJfb21wX3RhcmdldF9kYXRhIChjcF9wYXJzZXIgKnBhcnNlciwgY3BfdG9r ZW4gKnByYWdtYV90b2ssIGJvb2wgKmlmX3ApCiB7CiAgIGlmIChmbGFnX29wZW5tcCkKLSAg ICBvbXBfcmVxdWlyZXNfbWFzawotICAgICAgPSAoZW51bSBvbXBfcmVxdWlyZXMpIChvbXBf cmVxdWlyZXNfbWFzayB8IE9NUF9SRVFVSVJFU19UQVJHRVRfVVNFRCk7CisgICAgeworICAg ICAgb21wX3JlcXVpcmVzX21hc2sKKwk9IChlbnVtIG9tcF9yZXF1aXJlcykgKG9tcF9yZXF1 aXJlc19tYXNrIHwgT01QX1JFUVVJUkVTX1RBUkdFVF9VU0VEKTsKKyAgICAgIGlmIChmbGFn X29wZW5tcF9mb3JjZV91c20pCisJb21wX3JlcXVpcmVzX21hc2sKKwkgID0gKGVudW0gb21w X3JlcXVpcmVzKSAob21wX3JlcXVpcmVzX21hc2sKKwkJCQkgfCBPTVBfUkVRVUlSRVNfVU5J RklFRF9TSEFSRURfTUVNT1JZKTsKKyAgICB9CiAKICAgdHJlZSBjbGF1c2VzCiAgICAgPSBj cF9wYXJzZXJfb21wX2FsbF9jbGF1c2VzIChwYXJzZXIsIE9NUF9UQVJHRVRfREFUQV9DTEFV U0VfTUFTSywKQEAgLTQ3MDI5LDggKzQ3MDM1LDE0IEBAIGNwX3BhcnNlcl9vbXBfdGFyZ2V0 X2VudGVyX2RhdGEgKGNwX3BhcnNlciAqcGFyc2VyLCBjcF90b2tlbiAqcHJhZ21hX3RvaywK ICAgICB9CiAKICAgaWYgKGZsYWdfb3Blbm1wKQotICAgIG9tcF9yZXF1aXJlc19tYXNrCi0g ICAgICA9IChlbnVtIG9tcF9yZXF1aXJlcykgKG9tcF9yZXF1aXJlc19tYXNrIHwgT01QX1JF UVVJUkVTX1RBUkdFVF9VU0VEKTsKKyAgICB7CisgICAgICBvbXBfcmVxdWlyZXNfbWFzawor CT0gKGVudW0gb21wX3JlcXVpcmVzKSAob21wX3JlcXVpcmVzX21hc2sgfCBPTVBfUkVRVUlS RVNfVEFSR0VUX1VTRUQpOworICAgICAgaWYgKGZsYWdfb3Blbm1wX2ZvcmNlX3VzbSkKKwlv bXBfcmVxdWlyZXNfbWFzaworCSAgPSAoZW51bSBvbXBfcmVxdWlyZXMpIChvbXBfcmVxdWly ZXNfbWFzaworCQkJCSB8IE9NUF9SRVFVSVJFU19VTklGSUVEX1NIQVJFRF9NRU1PUlkpOwor ICAgIH0KIAogICB0cmVlIGNsYXVzZXMKICAgICA9IGNwX3BhcnNlcl9vbXBfYWxsX2NsYXVz ZXMgKHBhcnNlciwgT01QX1RBUkdFVF9FTlRFUl9EQVRBX0NMQVVTRV9NQVNLLApAQCAtNDcx NDQsOCArNDcxNTYsMTQgQEAgY3BfcGFyc2VyX29tcF90YXJnZXRfZXhpdF9kYXRhIChjcF9w YXJzZXIgKnBhcnNlciwgY3BfdG9rZW4gKnByYWdtYV90b2ssCiAgICAgfQogCiAgIGlmIChm bGFnX29wZW5tcCkKLSAgICBvbXBfcmVxdWlyZXNfbWFzawotICAgICAgPSAoZW51bSBvbXBf cmVxdWlyZXMpIChvbXBfcmVxdWlyZXNfbWFzayB8IE9NUF9SRVFVSVJFU19UQVJHRVRfVVNF RCk7CisgICAgeworICAgICAgb21wX3JlcXVpcmVzX21hc2sKKwk9IChlbnVtIG9tcF9yZXF1 aXJlcykgKG9tcF9yZXF1aXJlc19tYXNrIHwgT01QX1JFUVVJUkVTX1RBUkdFVF9VU0VEKTsK KyAgICAgIGlmIChmbGFnX29wZW5tcF9mb3JjZV91c20pCisJb21wX3JlcXVpcmVzX21hc2sK KwkgID0gKGVudW0gb21wX3JlcXVpcmVzKSAob21wX3JlcXVpcmVzX21hc2sKKwkJCQkgfCBP TVBfUkVRVUlSRVNfVU5JRklFRF9TSEFSRURfTUVNT1JZKTsKKyAgICB9CiAKICAgdHJlZSBj bGF1c2VzCiAgICAgPSBjcF9wYXJzZXJfb21wX2FsbF9jbGF1c2VzIChwYXJzZXIsIE9NUF9U QVJHRVRfRVhJVF9EQVRBX0NMQVVTRV9NQVNLLApAQCAtNDcyNTUsOCArNDcyNzMsMTQgQEAg Y3BfcGFyc2VyX29tcF90YXJnZXRfdXBkYXRlIChjcF9wYXJzZXIgKnBhcnNlciwgY3BfdG9r ZW4gKnByYWdtYV90b2ssCiAgICAgfQogCiAgIGlmIChmbGFnX29wZW5tcCkKLSAgICBvbXBf cmVxdWlyZXNfbWFzawotICAgICAgPSAoZW51bSBvbXBfcmVxdWlyZXMpIChvbXBfcmVxdWly ZXNfbWFzayB8IE9NUF9SRVFVSVJFU19UQVJHRVRfVVNFRCk7CisgICAgeworICAgICAgb21w X3JlcXVpcmVzX21hc2sKKwk9IChlbnVtIG9tcF9yZXF1aXJlcykgKG9tcF9yZXF1aXJlc19t YXNrIHwgT01QX1JFUVVJUkVTX1RBUkdFVF9VU0VEKTsKKyAgICAgIGlmIChmbGFnX29wZW5t cF9mb3JjZV91c20pCisJb21wX3JlcXVpcmVzX21hc2sKKwkgID0gKGVudW0gb21wX3JlcXVp cmVzKSAob21wX3JlcXVpcmVzX21hc2sKKwkJCQkgfCBPTVBfUkVRVUlSRVNfVU5JRklFRF9T SEFSRURfTUVNT1JZKTsKKyAgICB9CiAKICAgdHJlZSBzdG10ID0gbWFrZV9ub2RlIChPTVBf VEFSR0VUX1VQREFURSk7CiAgIFRSRUVfVFlQRSAoc3RtdCkgPSB2b2lkX3R5cGVfbm9kZTsK QEAgLTQ3MjkwLDggKzQ3MzE0LDE0IEBAIGNwX3BhcnNlcl9vbXBfdGFyZ2V0IChjcF9wYXJz ZXIgKnBhcnNlciwgY3BfdG9rZW4gKnByYWdtYV90b2ssCiAJCSAgICAgIGVudW0gcHJhZ21h X2NvbnRleHQgY29udGV4dCwgYm9vbCAqaWZfcCkKIHsKICAgaWYgKGZsYWdfb3Blbm1wKQot ICAgIG9tcF9yZXF1aXJlc19tYXNrCi0gICAgICA9IChlbnVtIG9tcF9yZXF1aXJlcykgKG9t cF9yZXF1aXJlc19tYXNrIHwgT01QX1JFUVVJUkVTX1RBUkdFVF9VU0VEKTsKKyAgICB7Cisg ICAgICBvbXBfcmVxdWlyZXNfbWFzaworCT0gKGVudW0gb21wX3JlcXVpcmVzKSAob21wX3Jl cXVpcmVzX21hc2sgfCBPTVBfUkVRVUlSRVNfVEFSR0VUX1VTRUQpOworICAgICAgaWYgKGZs YWdfb3Blbm1wX2ZvcmNlX3VzbSkKKwlvbXBfcmVxdWlyZXNfbWFzaworCSAgPSAoZW51bSBv bXBfcmVxdWlyZXMpIChvbXBfcmVxdWlyZXNfbWFzaworCQkJCSB8IE9NUF9SRVFVSVJFU19V TklGSUVEX1NIQVJFRF9NRU1PUlkpOworICAgIH0KIAogICBpZiAoY3BfbGV4ZXJfbmV4dF90 b2tlbl9pcyAocGFyc2VyLT5sZXhlciwgQ1BQX05BTUUpKQogICAgIHsKZGlmZiAtLWdpdCBh L2djYy9kb2MvaW52b2tlLnRleGkgYi9nY2MvZG9jL2ludm9rZS50ZXhpCmluZGV4IDJjYmEz ODA3MThiLi5kNmExOWM4ZjU2MSAxMDA2NDQKLS0tIGEvZ2NjL2RvYy9pbnZva2UudGV4aQor KysgYi9nY2MvZG9jL2ludm9rZS50ZXhpCkBAIC0yMDMsOCArMjAzLDggQEAgaW4gdGhlIGZv bGxvd2luZyBzZWN0aW9ucy4KIC1mZnJlZXN0YW5kaW5nICAtZmdpbXBsZSAgLWZnbnUtdG0g IC1mZ251ODktaW5saW5lICAtZmhvc3RlZAogLWZsYXgtdmVjdG9yLWNvbnZlcnNpb25zICAt Zm1zLWV4dGVuc2lvbnMKIC1mb2ZmbG9hZD1AdmFye2FyZ30gIC1mb2ZmbG9hZC1vcHRpb25z PUB2YXJ7YXJnfQotLWZvcGVuYWNjICAtZm9wZW5hY2MtZGltPUB2YXJ7Z2VvbX0KLS1mb3Bl bm1wICAtZm9wZW5tcC1zaW1kICAtZm9wZW5tcC10YXJnZXQtc2ltZC1jbG9uZUBye1t9PUB2 YXJ7ZGV2aWNlLXR5cGV9QHJ7XX0KKy1mb3BlbmFjYyAgLWZvcGVuYWNjLWRpbT1AdmFye2dl b219ICAtZm9wZW5tcCAgLWZvcGVubXAtZm9yY2UtdXNtCistZm9wZW5tcC1zaW1kICAtZm9w ZW5tcC10YXJnZXQtc2ltZC1jbG9uZUBye1t9PUB2YXJ7ZGV2aWNlLXR5cGV9QHJ7XX0KIC1m cGVybWl0dGVkLWZsdC1ldmFsLW1ldGhvZHM9QHZhcntzdGFuZGFyZH0KIC1mcGxhbjktZXh0 ZW5zaW9ucyAgLWZzaWduZWQtYml0ZmllbGRzICAtZnVuc2lnbmVkLWJpdGZpZWxkcwogLWZz aWduZWQtY2hhciAgLWZ1bnNpZ25lZC1jaGFyICAtZnN0cmljdC1mbGV4LWFycmF5c1s9QHZh cntufV0KQEAgLTI4MTcsNiArMjgxNywxMyBAQCBpbXBsaWVzIEBvcHRpb257LXB0aHJlYWR9 LCBhbmQgdGh1cyBpcyBvbmx5IHN1cHBvcnRlZCBvbiB0YXJnZXRzIHRoYXQKIGhhdmUgc3Vw cG9ydCBmb3IgQG9wdGlvbnstcHRocmVhZH0uIEBvcHRpb257LWZvcGVubXB9IGltcGxpZXMK IEBvcHRpb257LWZvcGVubXAtc2ltZH0uCiAKK0BvcGluZGV4IGZvcGVubXAtZm9yY2UtdXNt CitAY2luZGV4IE9wZW5NUCBVbmlmaWVkIFNoYXJlZCBNZW1vcnkKK0BpdGVtIC1mb3Blbm1w LWZvcmNlLXVzbQorQmVoYXZlIGFzIGlmIGVhY2ggc291cmNlIGZpbGUgY29udGFpbmVkIHRo ZSBPcGVuTVAgZGlyZWN0aXZlIEBjb2Rle3JlcXVpcmVzfQord2l0aCB0aGUgQGNvZGV7dW5p ZmllZF9zaGFyZWRfbWVtb3J5fSBjbGF1c2UuICBUaGlzIG9wdGlvbiBvbmx5IGhhcyBhbiBl ZmZlY3QKK2lmIEBvcHRpb257LWZvcGVubXB9IGhhcyBiZWVuIHNwZWNpZmllZC4KKwogQG9w aW5kZXggZm9wZW5tcC1zaW1kCiBAY2luZGV4IE9wZW5NUCBTSU1ECiBAY2luZGV4IFNJTUQK ZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL2ludm9rZS50ZXhpIGIvZ2NjL2ZvcnRyYW4vaW52 b2tlLnRleGkKaW5kZXggNmJjNDJhZmUyYzQuLmE4MjU5NDFlMWFlIDEwMDY0NAotLS0gYS9n Y2MvZm9ydHJhbi9pbnZva2UudGV4aQorKysgYi9nY2MvZm9ydHJhbi9pbnZva2UudGV4aQpA QCAtNDQ1LDYgKzQ0NSwxMyBAQCBpbXBsaWVzIEBvcHRpb257LXB0aHJlYWR9LCBhbmQgdGh1 cyBpcyBvbmx5IHN1cHBvcnRlZCBvbiB0YXJnZXRzIHRoYXQKIGhhdmUgc3VwcG9ydCBmb3Ig QG9wdGlvbnstcHRocmVhZH0uIEBvcHRpb257LWZvcGVubXB9IGltcGxpZXMKIEBvcHRpb257 LWZvcGVubXAtc2ltZH0gYW5kIEBvcHRpb257LWZyZWN1cnNpdmV9LgogCitAb3BpbmRleCBm b3Blbm1wLWZvcmNlLXVzbQorQGNpbmRleCBPcGVuTVAgVW5pZmllZCBTaGFyZWQgTWVtb3J5 CitAaXRlbSAtZm9wZW5tcC1mb3JjZS11c20KK0JlaGF2ZSBhcyBpZiBlYWNoIHNvdXJjZSBm aWxlIGNvbnRhaW5lZCB0aGUgT3Blbk1QIGRpcmVjdGl2ZSBAY29kZXtyZXF1aXJlc30KK3dp dGggdGhlIEBjb2Rle3VuaWZpZWRfc2hhcmVkX21lbW9yeX0gY2xhdXNlLiAgVGhpcyBvcHRp b24gb25seSBoYXMgYW4gZWZmZWN0CitpZiBAb3B0aW9uey1mb3Blbm1wfSBoYXMgYmVlbiBz cGVjaWZpZWQuCisKIEBvcGluZGV4IGZvcGVubXAtYWxsb2NhdG9ycwogQGNpbmRleCBPcGVu TVAgQWxsb2NhdG9ycwogQGl0ZW0gLWZvcGVubXAtYWxsb2NhdG9ycwpkaWZmIC0tZ2l0IGEv Z2NjL2ZvcnRyYW4vbGFuZy5vcHQgYi9nY2MvZm9ydHJhbi9sYW5nLm9wdAppbmRleCA1ZWZk NGEwMTI5YS4uYmY3MmIwZTRmZjMgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL2xhbmcub3B0 CisrKyBiL2djYy9mb3J0cmFuL2xhbmcub3B0CkBAIC03MTIsNiArNzEyLDEwIEBAIGZvcGVu bXAKIEZvcnRyYW4gTFRPCiA7IERvY3VtZW50ZWQgaW4gQwogCitmb3Blbm1wLWZvcmNlLXVz bQorRm9ydHJhbgorOyBEb2N1bWVudGVkIGluIEMKKwogZm9wZW5tcC1zaW1kCiBGb3J0cmFu CiA7IERvY3VtZW50ZWQgaW4gQwpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vbGFuZy5vcHQu dXJscyBiL2djYy9mb3J0cmFuL2xhbmcub3B0LnVybHMKaW5kZXggZTMzNWI0MmUzNTcuLmQ0 ZTRlZmNiNDM3IDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9sYW5nLm9wdC51cmxzCisrKyBi L2djYy9mb3J0cmFuL2xhbmcub3B0LnVybHMKQEAgLTExOCw2ICsxMTgsOSBAQCBVcmxTdWZm aXgoZ2NjL0MtRGlhbGVjdC1PcHRpb25zLmh0bWwjaW5kZXgtZm9wZW5hY2MtZGltKQogZm9w ZW5tcAogVXJsU3VmZml4KGdjYy9DLURpYWxlY3QtT3B0aW9ucy5odG1sI2luZGV4LWZvcGVu bXApIExhbmdVcmxTdWZmaXhfRm9ydHJhbihnZm9ydHJhbi9Gb3J0cmFuLURpYWxlY3QtT3B0 aW9ucy5odG1sI2luZGV4LWZvcGVubXApCiAKK2ZvcGVubXAtZm9yY2UtdXNtCitVcmxTdWZm aXgoZ2NjL0MtRGlhbGVjdC1PcHRpb25zLmh0bWwjaW5kZXgtZm9wZW5tcC1mb3JjZS11c20p IExhbmdVcmxTdWZmaXhfRm9ydHJhbihnZm9ydHJhbi9Gb3J0cmFuLURpYWxlY3QtT3B0aW9u cy5odG1sI2luZGV4LWZvcGVubXAtZm9yY2UtdXNtKQorCiBmb3Blbm1wLXNpbWQKIFVybFN1 ZmZpeChnY2MvQy1EaWFsZWN0LU9wdGlvbnMuaHRtbCNpbmRleC1mb3Blbm1wLXNpbWQpIExh bmdVcmxTdWZmaXhfRm9ydHJhbihnZm9ydHJhbi9Gb3J0cmFuLURpYWxlY3QtT3B0aW9ucy5o dG1sI2luZGV4LWZvcGVubXAtc2ltZCkKIApkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vcGFy c2UuY2MgYi9nY2MvZm9ydHJhbi9wYXJzZS5jYwppbmRleCA3OWM4MTBjODZiYS4uNzhhYmFm ZTFmNTMgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL3BhcnNlLmNjCisrKyBiL2djYy9mb3J0 cmFuL3BhcnNlLmNjCkBAIC03MzUwLDggKzczNTAsMTQgQEAgZG9uZToKICAgICB9CiAKICAg aWYgKG9tcF90YXJnZXRfc2VlbikKLSAgICBvbXBfcmVxdWlyZXNfbWFzayA9IChlbnVtIG9t cF9yZXF1aXJlcykgKG9tcF9yZXF1aXJlc19tYXNrCi0JCQkJCSAgICAgfCBPTVBfUkVRVUlS RVNfVEFSR0VUX1VTRUQpOworICAgIHsKKyAgICAgIG9tcF9yZXF1aXJlc19tYXNrID0gKGVu dW0gb21wX3JlcXVpcmVzKSAob21wX3JlcXVpcmVzX21hc2sKKwkJCQkJICAgICAgIHwgT01Q X1JFUVVJUkVTX1RBUkdFVF9VU0VEKTsKKyAgICAgIGlmIChmbGFnX29wZW5tcF9mb3JjZV91 c20pCisJb21wX3JlcXVpcmVzX21hc2sKKwkgID0gKGVudW0gb21wX3JlcXVpcmVzKSAob21w X3JlcXVpcmVzX21hc2sKKwkJCQkgfCBPTVBfUkVRVUlSRVNfVU5JRklFRF9TSEFSRURfTUVN T1JZKTsKKyAgICB9CiAgIGlmIChvbXBfcmVxdWlyZXMgJiBPTVBfUkVRX1JFVkVSU0VfT0ZG TE9BRCkKICAgICBvbXBfcmVxdWlyZXNfbWFzayA9IChlbnVtIG9tcF9yZXF1aXJlcykgKG9t cF9yZXF1aXJlc19tYXNrCiAJCQkJCSAgICAgfCBPTVBfUkVRVUlSRVNfUkVWRVJTRV9PRkZM T0FEKTsK --------------e81nH0sftIGjX0e3f5Rmnuex--