From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 51606 invoked by alias); 5 Mar 2015 06:14:27 -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 51569 invoked by uid 89); 5 Mar 2015 06:14:27 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.7 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,KAM_FROM_URIBL_PCCC,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=no version=3.3.2 X-HELO: mail-yh0-f45.google.com Received: from mail-yh0-f45.google.com (HELO mail-yh0-f45.google.com) (209.85.213.45) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Thu, 05 Mar 2015 06:14:24 +0000 Received: by yhaf73 with SMTP id f73so240466yha.1 for ; Wed, 04 Mar 2015 22:14:22 -0800 (PST) MIME-Version: 1.0 X-Received: by 10.170.203.198 with SMTP id u189mr6210663yke.107.1425536062665; Wed, 04 Mar 2015 22:14:22 -0800 (PST) Received: by 10.170.175.212 with HTTP; Wed, 4 Mar 2015 22:14:22 -0800 (PST) In-Reply-To: <4FE4F7E6-5093-4E37-A2D6-93272E679C69@linaro.org> References: <000001d0548a$789a1bd0$69ce5370$@arm.com> <0E847550-2947-46C3-991C-2720641BC881@linaro.org> <4FE4F7E6-5093-4E37-A2D6-93272E679C69@linaro.org> Date: Thu, 05 Mar 2015 06:14:00 -0000 Message-ID: Subject: Re: [PATCH][ARM]Automatically add -mthumb for thumb-only target when mode isn't specified From: Terry Guo To: Maxim Kuvyrkov Cc: Terry Guo , GCC Patches , Ramana Radhakrishnan , Richard Earnshaw Content-Type: multipart/mixed; boundary=001a1139e78ea155860510847aab X-IsSubscribed: yes X-SW-Source: 2015-03/txt/msg00261.txt.bz2 --001a1139e78ea155860510847aab Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-length: 2858 > > Thanks Terry (and everyone else) for explaining why we want to do this in= the driver. The substance of the patch looks good to me, and below are so= me comments and nit-picks. (Also, I'm not an ARM maintainer, so this is a = review, not an approval to commit). > > Please make sure to update changelog before committing. > Thanks Maxim, your comments are great. I accepted all of them and commented two of them that I am not clear. <> >> + >> +struct arm_arch_core_flag >> +{ >> + const char *const name; >> + const unsigned long flags; >> +}; >> + >> +static const struct arm_arch_core_flag arm_arch_core_flags[] =3D >> +{ >> +#undef ARM_CORE >> +#define ARM_CORE(NAME, X, IDENT, ARCH, FLAGS, COSTS) \ >> + {NAME, FLAGS | FL_FOR_ARCH##ARCH}, >> +#include "arm-cores.def" >> +#undef ARM_CORE >> +#undef ARM_ARCH >> +#define ARM_ARCH(NAME, CORE, ARCH, FLAGS) \ >> + {NAME, FLAGS}, >> +#include "arm-arches.def" >> +#undef ARM_ARCH >> + {NULL, 0} >> +}; > > Did you consider implications from mixing ARCHes and CPUs in the same arr= ay? It should not be a problem, but would you please double-check that cas= es like "-march=3Dcortex-a15" are properly caught as errors elsewhere in th= e driver? > Not sure I follow you correctly here. This array is just used for my new arm_target_thumb_only function. It isn't used by any another code in gcc. So I don't think mixing them will break gcc option check mechanism. I tried below command and I can get error message: $ ./install-native/bin/arm-none-eabi-gcc -march=3Dcortex-a15 x.c -S -mthumb arm-none-eabi-gcc: error: unrecognized argument in option '-march=3Dcortex-= a15' >> #endif >> diff --git a/gcc/config/arm/arm-protos.h b/gcc/config/arm/arm-protos.h >> index 28ffe52..325a81c 100644 >> --- a/gcc/config/arm/arm-protos.h >> +++ b/gcc/config/arm/arm-protos.h >> @@ -325,75 +325,6 @@ extern const char *arm_rewrite_selected_cpu (const = char *name); >> >> extern bool arm_is_constant_pool_ref (rtx); >> >> -/* Flags used to identify the presence of processor capabilities. */ > > You've lost this comment in the new file. Was it intentional? > The line is used as first line in new file arm-flags.h. BR, Terry Here is updated ChangeLog: gcc/ChangeLog: 2015-03-05 Terry Guo * common/config/arm/arm-common.c (arm_target_thumb_only): New functio= n. * config/arm/arm-protos.h: Move FL_* stuff into below file and then include it. * config/arm/arm-flags.h: New file for FL_* stuff. * config/arm/arm-opts.h (struct arm_arch_core_flag): New struct. (arm_arch_core_flags): New array for arch/core and flag map. * config/arm/arm.h (TARGET_MODE_SPEC_FUNCTIONS): New SPEC function. (EXTRA_SPEC_FUNCTIONS): Include new SPEC function. (TARGET_MODE_SPECS): New SPEC. (DRIVER_SELF_SPECS): Include new SPEC. --001a1139e78ea155860510847aab Content-Type: text/plain; charset=US-ASCII; name="gcc-mthumb-option-v7.txt" Content-Disposition: attachment; filename="gcc-mthumb-option-v7.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i6vqm3uw0 Content-length: 17178 ZGlmZiAtLWdpdCBhL2djYy9jb21tb24vY29uZmlnL2FybS9hcm0tY29tbW9u LmMgYi9nY2MvY29tbW9uL2NvbmZpZy9hcm0vYXJtLWNvbW1vbi5jCmluZGV4 IDg2NjczYjcuLjVlZmI1NWUgMTAwNjQ0Ci0tLSBhL2djYy9jb21tb24vY29u ZmlnL2FybS9hcm0tY29tbW9uLmMKKysrIGIvZ2NjL2NvbW1vbi9jb25maWcv YXJtL2FybS1jb21tb24uYwpAQCAtOTcsNiArOTcsMjggQEAgYXJtX3Jld3Jp dGVfbWNwdSAoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiphcmd2KQogICByZXR1 cm4gYXJtX3Jld3JpdGVfc2VsZWN0ZWRfY3B1IChhcmd2W2FyZ2MgLSAxXSk7 CiB9CiAKKy8qIENhbGxlZCBieSBkcml2ZXIgdG8gY2hlY2sgd2hldGhlciB0 aGUgdGFyZ2V0IGRlbm90ZWQgYnkgY3VycmVudAorICAgY29tbWFuZCBsaW5l IG9wdGlvbnMgaXMgdGh1bWItb25seSB0YXJnZXQuICBJZiAtbWFyY2ggcHJl c2VudCwKKyAgIGNoZWNrIHRoZSBsYXN0IC1tYXJjaCBvcHRpb24uICBJZiBu byAtbWFyY2gsIGNoZWNrIHRoZSBsYXN0IC1tY3B1CisgICBvcHRpb24uICAq LworY29uc3QgY2hhciAqCithcm1fdGFyZ2V0X3RodW1iX29ubHkgKGludCBh cmdjLCBjb25zdCBjaGFyICoqYXJndikKK3sKKyAgdW5zaWduZWQgaW50IG9w dDsKKworICBpZiAoYXJnYykKKyAgICB7CisgICAgICBmb3IgKG9wdCA9IDA7 IG9wdCA8IChBUlJBWV9TSVpFIChhcm1fYXJjaF9jb3JlX2ZsYWdzKSAtIDEp OyBvcHQrKykKKwlpZiAoKHN0cmNtcCAoYXJndlthcmdjIC0gMV0sIGFybV9h cmNoX2NvcmVfZmxhZ3Nbb3B0XS5uYW1lKSA9PSAwKQorCSAgICAmJiAoKGFy bV9hcmNoX2NvcmVfZmxhZ3Nbb3B0XS5mbGFncyAmIEZMX05PVE0pID09IDAp KQorCSAgcmV0dXJuICItbXRodW1iIjsKKworICAgICAgcmV0dXJuIE5VTEw7 CisgICAgfQorICBlbHNlCisgICAgcmV0dXJuIE5VTEw7Cit9CisKICN1bmRl ZiBBUk1fQ1BVX05BTUVfTEVOR1RICiAKIApkaWZmIC0tZ2l0IGEvZ2NjL2Nv bmZpZy9hcm0vYXJtLWZsYWdzLmggYi9nY2MvY29uZmlnL2FybS9hcm0tZmxh Z3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjA2 YWQxCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL2NvbmZpZy9hcm0vYXJtLWZs YWdzLmgKQEAgLTAsMCArMSw5MiBAQAorLyogRmxhZ3MgdXNlZCB0byBpZGVu dGlmeSB0aGUgcHJlc2VuY2Ugb2YgcHJvY2Vzc29yIGNhcGFiaWxpdGllcy4K KworICAgQ29weXJpZ2h0IChDKSAyMDE1IEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorICAgQ29udHJpYnV0ZWQgYnkgQVJNIEx0ZC4KKworICAg VGhpcyBmaWxlIGlzIHBhcnQgb2YgR0NDLgorCisgICBHQ0MgaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlm eSBpdAorICAgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQKKyAgIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMsIG9yIChhdCB5 b3VyCisgICBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBHQ0Mg aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwgYnV0IFdJVEhPVVQKKyAgIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWQor ICAgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcg d2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUK KyAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNp Zm5kZWYgR0NDX0FSTV9GTEFHU19ICisjZGVmaW5lIEdDQ19BUk1fRkxBR1Nf SAorCisvKiBCaXQgdmFsdWVzIHVzZWQgdG8gaWRlbnRpZnkgcHJvY2Vzc29y IGNhcGFiaWxpdGllcy4gICovCisjZGVmaW5lIEZMX0NPX1BST0MgICAgKDEg PDwgMCkgICAgICAgIC8qIEhhcyBleHRlcm5hbCBjby1wcm9jZXNzb3IgYnVz ICovCisjZGVmaW5lIEZMX0FSQ0gzTSAgICAgKDEgPDwgMSkgICAgICAgIC8q IEV4dGVuZGVkIG11bHRpcGx5ICovCisjZGVmaW5lIEZMX01PREUyNiAgICAg KDEgPDwgMikgICAgICAgIC8qIDI2LWJpdCBtb2RlIHN1cHBvcnQgKi8KKyNk ZWZpbmUgRkxfTU9ERTMyICAgICAoMSA8PCAzKSAgICAgICAgLyogMzItYml0 IG1vZGUgc3VwcG9ydCAqLworI2RlZmluZSBGTF9BUkNINCAgICAgICgxIDw8 IDQpICAgICAgICAvKiBBcmNoaXRlY3R1cmUgcmVsIDQgKi8KKyNkZWZpbmUg RkxfQVJDSDUgICAgICAoMSA8PCA1KSAgICAgICAgLyogQXJjaGl0ZWN0dXJl IHJlbCA1ICovCisjZGVmaW5lIEZMX1RIVU1CICAgICAgKDEgPDwgNikgICAg ICAgIC8qIFRodW1iIGF3YXJlICovCisjZGVmaW5lIEZMX0xEU0NIRUQgICAg KDEgPDwgNykJICAgICAgLyogTG9hZCBzY2hlZHVsaW5nIG5lY2Vzc2FyeSAq LworI2RlZmluZSBGTF9TVFJPTkcgICAgICgxIDw8IDgpCSAgICAgIC8qIFN0 cm9uZ0FSTSAqLworI2RlZmluZSBGTF9BUkNINUUgICAgICgxIDw8IDkpICAg ICAgICAvKiBEU1AgZXh0ZW5zaW9ucyB0byB2NSAqLworI2RlZmluZSBGTF9Y U0NBTEUgICAgICgxIDw8IDEwKQkgICAgICAvKiBYU2NhbGUgKi8KKy8qIHNw YXJlCSAgICAgICgxIDw8IDExKQkqLworI2RlZmluZSBGTF9BUkNINiAgICAg ICgxIDw8IDEyKSAgICAgICAvKiBBcmNoaXRlY3R1cmUgcmVsIDYuICBBZGRz CisJCQkJCSBtZWRpYSBpbnN0cnVjdGlvbnMuICAqLworI2RlZmluZSBGTF9W RlBWMiAgICAgICgxIDw8IDEzKSAgICAgICAvKiBWZWN0b3IgRmxvYXRpbmcg UG9pbnQgVjIuICAqLworI2RlZmluZSBGTF9XQlVGCSAgICAgICgxIDw8IDE0 KQkgICAgICAvKiBTY2hlZHVsZSBmb3Igd3JpdGUgYnVmZmVyIG9wcy4KKwkJ CQkJIE5vdGU6IEFSTTYgJiA3IGRlcml2YXRpdmVzIG9ubHkuICAqLworI2Rl ZmluZSBGTF9BUkNINksgICAgICgxIDw8IDE1KSAgICAgICAvKiBBcmNoaXRl Y3R1cmUgcmVsIDYgSyBleHRlbnNpb25zLiAgKi8KKyNkZWZpbmUgRkxfVEhV TUIyICAgICAoMSA8PCAxNikJICAgICAgLyogVGh1bWItMi4gICovCisjZGVm aW5lIEZMX05PVE0JICAgICAgKDEgPDwgMTcpCSAgICAgIC8qIEluc3RydWN0 aW9ucyBub3QgcHJlc2VudCBpbiB0aGUgJ00nCisJCQkJCSBwcm9maWxlLiAg Ki8KKyNkZWZpbmUgRkxfVEhVTUJfRElWICAoMSA8PCAxOCkJICAgICAgLyog SGFyZHdhcmUgZGl2aWRlIChUaHVtYiBtb2RlKS4gICovCisjZGVmaW5lIEZM X1ZGUFYzICAgICAgKDEgPDwgMTkpICAgICAgIC8qIFZlY3RvciBGbG9hdGlu ZyBQb2ludCBWMy4gICovCisjZGVmaW5lIEZMX05FT04gICAgICAgKDEgPDwg MjApICAgICAgIC8qIE5lb24gaW5zdHJ1Y3Rpb25zLiAgKi8KKyNkZWZpbmUg RkxfQVJDSDdFTSAgICAoMSA8PCAyMSkJICAgICAgLyogSW5zdHJ1Y3Rpb25z IHByZXNlbnQgaW4gdGhlIEFSTXY3RS1NCisJCQkJCSBhcmNoaXRlY3R1cmUu ICAqLworI2RlZmluZSBGTF9BUkNINyAgICAgICgxIDw8IDIyKSAgICAgICAv KiBBcmNoaXRlY3R1cmUgNy4gICovCisjZGVmaW5lIEZMX0FSTV9ESVYgICAg KDEgPDwgMjMpCSAgICAgIC8qIEhhcmR3YXJlIGRpdmlkZSAoQVJNIG1vZGUp LiAgKi8KKyNkZWZpbmUgRkxfQVJDSDggICAgICAoMSA8PCAyNCkgICAgICAg LyogQXJjaGl0ZWN0dXJlIDguICAqLworI2RlZmluZSBGTF9DUkMzMiAgICAg ICgxIDw8IDI1KQkgICAgICAvKiBBUk12OCBDUkMzMiBpbnN0cnVjdGlvbnMu ICAqLworCisjZGVmaW5lIEZMX1NNQUxMTVVMICAgKDEgPDwgMjYpICAgICAg IC8qIFNtYWxsIG11bHRpcGx5IHN1cHBvcnRlZC4gICovCisjZGVmaW5lIEZM X05PX1ZPTEFUSUxFX0NFICAgKDEgPDwgMjcpIC8qIE5vIHZvbGF0aWxlIG1l bW9yeSBpbiBJVCBibG9jay4gICovCisKKyNkZWZpbmUgRkxfSVdNTVhUICAg ICAoMSA8PCAyOSkJICAgICAgLyogWFNjYWxlIHYyIG9yICJJbnRlbCBXaXJl bGVzcyBNTVggdGVjaG5vbG9neSIuICAqLworI2RlZmluZSBGTF9JV01NWFQy ICAgICgxIDw8IDMwKSAgICAgICAvKiAiSW50ZWwgV2lyZWxlc3MgTU1YMiB0 ZWNobm9sb2d5Ii4gICovCisKKy8qIEZsYWdzIHRoYXQgb25seSBlZmZlY3Qg dHVuaW5nLCBub3QgYXZhaWxhYmxlIGluc3RydWN0aW9ucy4gICovCisjZGVm aW5lIEZMX1RVTkUJCShGTF9XQlVGIHwgRkxfVkZQVjIgfCBGTF9TVFJPTkcg fCBGTF9MRFNDSEVEIFwKKwkJCSB8IEZMX0NPX1BST0MpCisKKyNkZWZpbmUg RkxfRk9SX0FSQ0gyCUZMX05PVE0KKyNkZWZpbmUgRkxfRk9SX0FSQ0gzCShG TF9GT1JfQVJDSDIgfCBGTF9NT0RFMzIpCisjZGVmaW5lIEZMX0ZPUl9BUkNI M00JKEZMX0ZPUl9BUkNIMyB8IEZMX0FSQ0gzTSkKKyNkZWZpbmUgRkxfRk9S X0FSQ0g0CShGTF9GT1JfQVJDSDNNIHwgRkxfQVJDSDQpCisjZGVmaW5lIEZM X0ZPUl9BUkNINFQJKEZMX0ZPUl9BUkNINCB8IEZMX1RIVU1CKQorI2RlZmlu ZSBGTF9GT1JfQVJDSDUJKEZMX0ZPUl9BUkNINCB8IEZMX0FSQ0g1KQorI2Rl ZmluZSBGTF9GT1JfQVJDSDVUCShGTF9GT1JfQVJDSDUgfCBGTF9USFVNQikK KyNkZWZpbmUgRkxfRk9SX0FSQ0g1RQkoRkxfRk9SX0FSQ0g1IHwgRkxfQVJD SDVFKQorI2RlZmluZSBGTF9GT1JfQVJDSDVURQkoRkxfRk9SX0FSQ0g1RSB8 IEZMX1RIVU1CKQorI2RlZmluZSBGTF9GT1JfQVJDSDVURUoJRkxfRk9SX0FS Q0g1VEUKKyNkZWZpbmUgRkxfRk9SX0FSQ0g2CShGTF9GT1JfQVJDSDVURSB8 IEZMX0FSQ0g2KQorI2RlZmluZSBGTF9GT1JfQVJDSDZKCUZMX0ZPUl9BUkNI NgorI2RlZmluZSBGTF9GT1JfQVJDSDZLCShGTF9GT1JfQVJDSDYgfCBGTF9B UkNINkspCisjZGVmaW5lIEZMX0ZPUl9BUkNINloJRkxfRk9SX0FSQ0g2Cisj ZGVmaW5lIEZMX0ZPUl9BUkNINlpLCUZMX0ZPUl9BUkNINksKKyNkZWZpbmUg RkxfRk9SX0FSQ0g2VDIJKEZMX0ZPUl9BUkNINiB8IEZMX1RIVU1CMikKKyNk ZWZpbmUgRkxfRk9SX0FSQ0g2TQkoRkxfRk9SX0FSQ0g2ICYgfkZMX05PVE0p CisjZGVmaW5lIEZMX0ZPUl9BUkNINwkoKEZMX0ZPUl9BUkNINlQyICYgfkZM X05PVE0pIHwgRkxfQVJDSDcpCisjZGVmaW5lIEZMX0ZPUl9BUkNIN0EJKEZM X0ZPUl9BUkNINyB8IEZMX05PVE0gfCBGTF9BUkNINkspCisjZGVmaW5lIEZM X0ZPUl9BUkNIN1ZFCShGTF9GT1JfQVJDSDdBIHwgRkxfVEhVTUJfRElWIHwg RkxfQVJNX0RJVikKKyNkZWZpbmUgRkxfRk9SX0FSQ0g3UgkoRkxfRk9SX0FS Q0g3QSB8IEZMX1RIVU1CX0RJVikKKyNkZWZpbmUgRkxfRk9SX0FSQ0g3TQko RkxfRk9SX0FSQ0g3IHwgRkxfVEhVTUJfRElWKQorI2RlZmluZSBGTF9GT1Jf QVJDSDdFTSAgKEZMX0ZPUl9BUkNIN00gfCBGTF9BUkNIN0VNKQorI2RlZmlu ZSBGTF9GT1JfQVJDSDhBCShGTF9GT1JfQVJDSDdWRSB8IEZMX0FSQ0g4KQor CisjZW5kaWYgLyogR0NDX0FSTV9GTEFHU19IICovCmRpZmYgLS1naXQgYS9n Y2MvY29uZmlnL2FybS9hcm0tb3B0cy5oIGIvZ2NjL2NvbmZpZy9hcm0vYXJt LW9wdHMuaAppbmRleCAwMzllMzMzLi5kZDcyN2NmIDEwMDY0NAotLS0gYS9n Y2MvY29uZmlnL2FybS9hcm0tb3B0cy5oCisrKyBiL2djYy9jb25maWcvYXJt L2FybS1vcHRzLmgKQEAgLTI1LDYgKzI1LDggQEAKICNpZm5kZWYgQVJNX09Q VFNfSAogI2RlZmluZSBBUk1fT1BUU19ICiAKKyNpbmNsdWRlICJhcm0tZmxh Z3MuaCIKKwogLyogVGhlIHZhcmlvdXMgQVJNIGNvcmVzLiAgKi8KIGVudW0g cHJvY2Vzc29yX3R5cGUKIHsKQEAgLTc3LDQgKzc5LDI1IEBAIGVudW0gYXJt X3Rsc190eXBlIHsKICAgVExTX0dOVSwKICAgVExTX0dOVTIKIH07CisKK3N0 cnVjdCBhcm1fYXJjaF9jb3JlX2ZsYWcKK3sKKyAgY29uc3QgY2hhciAqY29u c3QgbmFtZTsKKyAgY29uc3QgdW5zaWduZWQgbG9uZyBmbGFnczsKK307CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgYXJtX2FyY2hfY29yZV9mbGFnIGFybV9h cmNoX2NvcmVfZmxhZ3NbXSA9Cit7CisjdW5kZWYgQVJNX0NPUkUKKyNkZWZp bmUgQVJNX0NPUkUoTkFNRSwgWCwgSURFTlQsIEFSQ0gsIEZMQUdTLCBDT1NU UykgXAorICB7TkFNRSwgRkxBR1MgfCBGTF9GT1JfQVJDSCMjQVJDSH0sCisj aW5jbHVkZSAiYXJtLWNvcmVzLmRlZiIKKyN1bmRlZiBBUk1fQ09SRQorI3Vu ZGVmIEFSTV9BUkNICisjZGVmaW5lIEFSTV9BUkNIKE5BTUUsIENPUkUsIEFS Q0gsIEZMQUdTKSBcCisgIHtOQU1FLCBGTEFHU30sCisjaW5jbHVkZSAiYXJt LWFyY2hlcy5kZWYiCisjdW5kZWYgQVJNX0FSQ0gKKyAge05VTEwsIDB9Cit9 OwogI2VuZGlmCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2FybS9hcm0tcHJv dG9zLmggYi9nY2MvY29uZmlnL2FybS9hcm0tcHJvdG9zLmgKaW5kZXggMjhm ZmU1Mi4uMGQ1ZjYxZiAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9hcm0vYXJt LXByb3Rvcy5oCisrKyBiL2djYy9jb25maWcvYXJtL2FybS1wcm90b3MuaApA QCAtMjIsNiArMjIsOCBAQAogI2lmbmRlZiBHQ0NfQVJNX1BST1RPU19ICiAj ZGVmaW5lIEdDQ19BUk1fUFJPVE9TX0gKIAorI2luY2x1ZGUgImFybS1mbGFn cy5oIgorCiBleHRlcm4gZW51bSB1bndpbmRfaW5mb190eXBlIGFybV9leGNl cHRfdW53aW5kX2luZm8gKHN0cnVjdCBnY2Nfb3B0aW9ucyAqKTsKIGV4dGVy biBpbnQgdXNlX3JldHVybl9pbnNuIChpbnQsIHJ0eCk7CiBleHRlcm4gYm9v bCB1c2Vfc2ltcGxlX3JldHVybl9wICh2b2lkKTsKQEAgLTMyNSw3NSArMzI3 LDYgQEAgZXh0ZXJuIGNvbnN0IGNoYXIgKmFybV9yZXdyaXRlX3NlbGVjdGVk X2NwdSAoY29uc3QgY2hhciAqbmFtZSk7CiAKIGV4dGVybiBib29sIGFybV9p c19jb25zdGFudF9wb29sX3JlZiAocnR4KTsKIAotLyogRmxhZ3MgdXNlZCB0 byBpZGVudGlmeSB0aGUgcHJlc2VuY2Ugb2YgcHJvY2Vzc29yIGNhcGFiaWxp dGllcy4gICovCi0KLS8qIEJpdCB2YWx1ZXMgdXNlZCB0byBpZGVudGlmeSBw cm9jZXNzb3IgY2FwYWJpbGl0aWVzLiAgKi8KLSNkZWZpbmUgRkxfQ09fUFJP QyAgICAoMSA8PCAwKSAgICAgICAgLyogSGFzIGV4dGVybmFsIGNvLXByb2Nl c3NvciBidXMgKi8KLSNkZWZpbmUgRkxfQVJDSDNNICAgICAoMSA8PCAxKSAg ICAgICAgLyogRXh0ZW5kZWQgbXVsdGlwbHkgKi8KLSNkZWZpbmUgRkxfTU9E RTI2ICAgICAoMSA8PCAyKSAgICAgICAgLyogMjYtYml0IG1vZGUgc3VwcG9y dCAqLwotI2RlZmluZSBGTF9NT0RFMzIgICAgICgxIDw8IDMpICAgICAgICAv KiAzMi1iaXQgbW9kZSBzdXBwb3J0ICovCi0jZGVmaW5lIEZMX0FSQ0g0ICAg ICAgKDEgPDwgNCkgICAgICAgIC8qIEFyY2hpdGVjdHVyZSByZWwgNCAqLwot I2RlZmluZSBGTF9BUkNINSAgICAgICgxIDw8IDUpICAgICAgICAvKiBBcmNo aXRlY3R1cmUgcmVsIDUgKi8KLSNkZWZpbmUgRkxfVEhVTUIgICAgICAoMSA8 PCA2KSAgICAgICAgLyogVGh1bWIgYXdhcmUgKi8KLSNkZWZpbmUgRkxfTERT Q0hFRCAgICAoMSA8PCA3KQkgICAgICAvKiBMb2FkIHNjaGVkdWxpbmcgbmVj ZXNzYXJ5ICovCi0jZGVmaW5lIEZMX1NUUk9ORyAgICAgKDEgPDwgOCkJICAg ICAgLyogU3Ryb25nQVJNICovCi0jZGVmaW5lIEZMX0FSQ0g1RSAgICAgKDEg PDwgOSkgICAgICAgIC8qIERTUCBleHRlbnNpb25zIHRvIHY1ICovCi0jZGVm aW5lIEZMX1hTQ0FMRSAgICAgKDEgPDwgMTApCSAgICAgIC8qIFhTY2FsZSAq LwotLyogc3BhcmUJICAgICAgKDEgPDwgMTEpCSovCi0jZGVmaW5lIEZMX0FS Q0g2ICAgICAgKDEgPDwgMTIpICAgICAgIC8qIEFyY2hpdGVjdHVyZSByZWwg Ni4gIEFkZHMKLQkJCQkJIG1lZGlhIGluc3RydWN0aW9ucy4gICovCi0jZGVm aW5lIEZMX1ZGUFYyICAgICAgKDEgPDwgMTMpICAgICAgIC8qIFZlY3RvciBG bG9hdGluZyBQb2ludCBWMi4gICovCi0jZGVmaW5lIEZMX1dCVUYJICAgICAg KDEgPDwgMTQpCSAgICAgIC8qIFNjaGVkdWxlIGZvciB3cml0ZSBidWZmZXIg b3BzLgotCQkJCQkgTm90ZTogQVJNNiAmIDcgZGVyaXZhdGl2ZXMgb25seS4g ICovCi0jZGVmaW5lIEZMX0FSQ0g2SyAgICAgKDEgPDwgMTUpICAgICAgIC8q IEFyY2hpdGVjdHVyZSByZWwgNiBLIGV4dGVuc2lvbnMuICAqLwotI2RlZmlu ZSBGTF9USFVNQjIgICAgICgxIDw8IDE2KQkgICAgICAvKiBUaHVtYi0yLiAg Ki8KLSNkZWZpbmUgRkxfTk9UTQkgICAgICAoMSA8PCAxNykJICAgICAgLyog SW5zdHJ1Y3Rpb25zIG5vdCBwcmVzZW50IGluIHRoZSAnTScKLQkJCQkJIHBy b2ZpbGUuICAqLwotI2RlZmluZSBGTF9USFVNQl9ESVYgICgxIDw8IDE4KQkg ICAgICAvKiBIYXJkd2FyZSBkaXZpZGUgKFRodW1iIG1vZGUpLiAgKi8KLSNk ZWZpbmUgRkxfVkZQVjMgICAgICAoMSA8PCAxOSkgICAgICAgLyogVmVjdG9y IEZsb2F0aW5nIFBvaW50IFYzLiAgKi8KLSNkZWZpbmUgRkxfTkVPTiAgICAg ICAoMSA8PCAyMCkgICAgICAgLyogTmVvbiBpbnN0cnVjdGlvbnMuICAqLwot I2RlZmluZSBGTF9BUkNIN0VNICAgICgxIDw8IDIxKQkgICAgICAvKiBJbnN0 cnVjdGlvbnMgcHJlc2VudCBpbiB0aGUgQVJNdjdFLU0KLQkJCQkJIGFyY2hp dGVjdHVyZS4gICovCi0jZGVmaW5lIEZMX0FSQ0g3ICAgICAgKDEgPDwgMjIp ICAgICAgIC8qIEFyY2hpdGVjdHVyZSA3LiAgKi8KLSNkZWZpbmUgRkxfQVJN X0RJViAgICAoMSA8PCAyMykJICAgICAgLyogSGFyZHdhcmUgZGl2aWRlIChB Uk0gbW9kZSkuICAqLwotI2RlZmluZSBGTF9BUkNIOCAgICAgICgxIDw8IDI0 KSAgICAgICAvKiBBcmNoaXRlY3R1cmUgOC4gICovCi0jZGVmaW5lIEZMX0NS QzMyICAgICAgKDEgPDwgMjUpCSAgICAgIC8qIEFSTXY4IENSQzMyIGluc3Ry dWN0aW9ucy4gICovCi0KLSNkZWZpbmUgRkxfU01BTExNVUwgICAoMSA8PCAy NikgICAgICAgLyogU21hbGwgbXVsdGlwbHkgc3VwcG9ydGVkLiAgKi8KLSNk ZWZpbmUgRkxfTk9fVk9MQVRJTEVfQ0UgICAoMSA8PCAyNykgLyogTm8gdm9s YXRpbGUgbWVtb3J5IGluIElUIGJsb2NrLiAgKi8KLQotI2RlZmluZSBGTF9J V01NWFQgICAgICgxIDw8IDI5KQkgICAgICAvKiBYU2NhbGUgdjIgb3IgIklu dGVsIFdpcmVsZXNzIE1NWCB0ZWNobm9sb2d5Ii4gICovCi0jZGVmaW5lIEZM X0lXTU1YVDIgICAgKDEgPDwgMzApICAgICAgIC8qICJJbnRlbCBXaXJlbGVz cyBNTVgyIHRlY2hub2xvZ3kiLiAgKi8KLQotLyogRmxhZ3MgdGhhdCBvbmx5 IGVmZmVjdCB0dW5pbmcsIG5vdCBhdmFpbGFibGUgaW5zdHJ1Y3Rpb25zLiAg Ki8KLSNkZWZpbmUgRkxfVFVORQkJKEZMX1dCVUYgfCBGTF9WRlBWMiB8IEZM X1NUUk9ORyB8IEZMX0xEU0NIRUQgXAotCQkJIHwgRkxfQ09fUFJPQykKLQot I2RlZmluZSBGTF9GT1JfQVJDSDIJRkxfTk9UTQotI2RlZmluZSBGTF9GT1Jf QVJDSDMJKEZMX0ZPUl9BUkNIMiB8IEZMX01PREUzMikKLSNkZWZpbmUgRkxf Rk9SX0FSQ0gzTQkoRkxfRk9SX0FSQ0gzIHwgRkxfQVJDSDNNKQotI2RlZmlu ZSBGTF9GT1JfQVJDSDQJKEZMX0ZPUl9BUkNIM00gfCBGTF9BUkNINCkKLSNk ZWZpbmUgRkxfRk9SX0FSQ0g0VAkoRkxfRk9SX0FSQ0g0IHwgRkxfVEhVTUIp Ci0jZGVmaW5lIEZMX0ZPUl9BUkNINQkoRkxfRk9SX0FSQ0g0IHwgRkxfQVJD SDUpCi0jZGVmaW5lIEZMX0ZPUl9BUkNINVQJKEZMX0ZPUl9BUkNINSB8IEZM X1RIVU1CKQotI2RlZmluZSBGTF9GT1JfQVJDSDVFCShGTF9GT1JfQVJDSDUg fCBGTF9BUkNINUUpCi0jZGVmaW5lIEZMX0ZPUl9BUkNINVRFCShGTF9GT1Jf QVJDSDVFIHwgRkxfVEhVTUIpCi0jZGVmaW5lIEZMX0ZPUl9BUkNINVRFSglG TF9GT1JfQVJDSDVURQotI2RlZmluZSBGTF9GT1JfQVJDSDYJKEZMX0ZPUl9B UkNINVRFIHwgRkxfQVJDSDYpCi0jZGVmaW5lIEZMX0ZPUl9BUkNINkoJRkxf Rk9SX0FSQ0g2Ci0jZGVmaW5lIEZMX0ZPUl9BUkNINksJKEZMX0ZPUl9BUkNI NiB8IEZMX0FSQ0g2SykKLSNkZWZpbmUgRkxfRk9SX0FSQ0g2WglGTF9GT1Jf QVJDSDYKLSNkZWZpbmUgRkxfRk9SX0FSQ0g2WksJRkxfRk9SX0FSQ0g2Swot I2RlZmluZSBGTF9GT1JfQVJDSDZUMgkoRkxfRk9SX0FSQ0g2IHwgRkxfVEhV TUIyKQotI2RlZmluZSBGTF9GT1JfQVJDSDZNCShGTF9GT1JfQVJDSDYgJiB+ RkxfTk9UTSkKLSNkZWZpbmUgRkxfRk9SX0FSQ0g3CSgoRkxfRk9SX0FSQ0g2 VDIgJiB+RkxfTk9UTSkgfCBGTF9BUkNINykKLSNkZWZpbmUgRkxfRk9SX0FS Q0g3QQkoRkxfRk9SX0FSQ0g3IHwgRkxfTk9UTSB8IEZMX0FSQ0g2SykKLSNk ZWZpbmUgRkxfRk9SX0FSQ0g3VkUJKEZMX0ZPUl9BUkNIN0EgfCBGTF9USFVN Ql9ESVYgfCBGTF9BUk1fRElWKQotI2RlZmluZSBGTF9GT1JfQVJDSDdSCShG TF9GT1JfQVJDSDdBIHwgRkxfVEhVTUJfRElWKQotI2RlZmluZSBGTF9GT1Jf QVJDSDdNCShGTF9GT1JfQVJDSDcgfCBGTF9USFVNQl9ESVYpCi0jZGVmaW5l IEZMX0ZPUl9BUkNIN0VNICAoRkxfRk9SX0FSQ0g3TSB8IEZMX0FSQ0g3RU0p Ci0jZGVmaW5lIEZMX0ZPUl9BUkNIOEEJKEZMX0ZPUl9BUkNIN1ZFIHwgRkxf QVJDSDgpCi0KIC8qIFRoZSBiaXRzIGluIHRoaXMgbWFzayBzcGVjaWZ5IHdo aWNoCiAgICBpbnN0cnVjdGlvbnMgd2UgYXJlIGFsbG93ZWQgdG8gZ2VuZXJh dGUuICAqLwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW5zbl9mbGFnczsKZGlm ZiAtLWdpdCBhL2djYy9jb25maWcvYXJtL2FybS5oIGIvZ2NjL2NvbmZpZy9h cm0vYXJtLmgKaW5kZXggOGMxMGVhMy4uNmEyZGZhZiAxMDA2NDQKLS0tIGEv Z2NjL2NvbmZpZy9hcm0vYXJtLmgKKysrIGIvZ2NjL2NvbmZpZy9hcm0vYXJt LmgKQEAgLTIzOTQsMTMgKzIzOTQsMTggQEAgZXh0ZXJuIGNvbnN0IGNoYXIg KmFybV9yZXdyaXRlX21jcHUgKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJn dik7CiAgICAiICAgOiV7bWFyY2g9KjotbWFyY2g9JSp9fSIJCQkJCVwKICAg IEJJR19MSVRUTEVfU1BFQwogCitleHRlcm4gY29uc3QgY2hhciAqYXJtX3Rh cmdldF90aHVtYl9vbmx5IChpbnQgYXJnYywgY29uc3QgY2hhciAqKmFyZ3Yp OworI2RlZmluZSBUQVJHRVRfTU9ERV9TUEVDX0ZVTkNUSU9OUwkJCQkJXAor ICB7ICJ0YXJnZXRfbW9kZV9jaGVjayIsIGFybV90YXJnZXRfdGh1bWJfb25s eSB9LAorCiAvKiAtbWNwdT1uYXRpdmUgaGFuZGxpbmcgb25seSBtYWtlcyBz ZW5zZSB3aXRoIGNvbXBpbGVyIHJ1bm5pbmcgb24KICAgIGFuIEFSTSBjaGlw LiAgKi8KICNpZiBkZWZpbmVkKF9fYXJtX18pCiBleHRlcm4gY29uc3QgY2hh ciAqaG9zdF9kZXRlY3RfbG9jYWxfY3B1IChpbnQgYXJnYywgY29uc3QgY2hh ciAqKmFyZ3YpOwogIyBkZWZpbmUgRVhUUkFfU1BFQ19GVU5DVElPTlMJCQkJ CQlcCiAgIHsgImxvY2FsX2NwdV9kZXRlY3QiLCBob3N0X2RldGVjdF9sb2Nh bF9jcHUgfSwJCQlcCi0gIEJJR19MSVRUTEVfQ1BVX1NQRUNfRlVOQ1RJT05T CisgIEJJR19MSVRUTEVfQ1BVX1NQRUNfRlVOQ1RJT05TCQkJCQkJXAorICBU QVJHRVRfTU9ERV9TUEVDX0ZVTkNUSU9OUwogCiAjIGRlZmluZSBNQ1BVX01U VU5FX05BVElWRV9TUEVDUwkJCQkJXAogICAgIiAle21hcmNoPW5hdGl2ZTol PG1hcmNoPW5hdGl2ZSAlOmxvY2FsX2NwdV9kZXRlY3QoYXJjaCl9IgkJXApA QCAtMjQwOCw5ICsyNDEzLDE5IEBAIGV4dGVybiBjb25zdCBjaGFyICpob3N0 X2RldGVjdF9sb2NhbF9jcHUgKGludCBhcmdjLCBjb25zdCBjaGFyICoqYXJn dik7CiAgICAiICV7bXR1bmU9bmF0aXZlOiU8bXR1bmU9bmF0aXZlICU6bG9j YWxfY3B1X2RldGVjdCh0dW5lKX0iCiAjZWxzZQogIyBkZWZpbmUgTUNQVV9N VFVORV9OQVRJVkVfU1BFQ1MgIiIKLSMgZGVmaW5lIEVYVFJBX1NQRUNfRlVO Q1RJT05TIEJJR19MSVRUTEVfQ1BVX1NQRUNfRlVOQ1RJT05TCisjIGRlZmlu ZSBFWFRSQV9TUEVDX0ZVTkNUSU9OUwkJCQkJCVwKKyAgQklHX0xJVFRMRV9D UFVfU1BFQ19GVU5DVElPTlMJCQkJCQlcCisgIFRBUkdFVF9NT0RFX1NQRUNf RlVOQ1RJT05TCiAjZW5kaWYKIAotI2RlZmluZSBEUklWRVJfU0VMRl9TUEVD UyBNQ1BVX01UVU5FX05BVElWRV9TUEVDUworLyogQXV0b21hdGljYWxseSBh ZGQgLW10aHVtYiBmb3IgdGh1bWItb25seSB0YXJnZXQgaWYgbW9kZSBpc24n dCBzcGVjaWZpZWQKKyAgIHZpYSBjb25maWd1cmF0aW9uIG9wdGlvbiAtLXdp dGgtbW9kZSBhbmQgY29tbWFuZCBsaW5lLgorICAgSWYgLW1hcmNoIHByZXNl bnQsIHdlIGNvbGxlY3QganVzdCAtbWFyY2ggb3B0aW9ucy4gIE90aGVyd2lz ZSB3ZQorICAgY29sbGVjdCBqdXN0IC1tY3B1IG9wdGlvbnMuICBUaGUgbGFz dCBvbmUgb2YgdGhlbSB3aWxsIGJlIHVzZWQgdG8KKyAgIGRlY2lkZSB0YXJn ZXQgbW9kZS4gICovCisjZGVmaW5lIFRBUkdFVF9NT0RFX1NQRUNTCQkJCQkJ CVwKKyAgIiAleyFtYXJtOiV7IW10aHVtYjolOnRhcmdldF9tb2RlX2NoZWNr KCV7bWFyY2g9KjolKjttY3B1PSo6JSp9KX19IgorCisjZGVmaW5lIERSSVZF Ul9TRUxGX1NQRUNTIE1DUFVfTVRVTkVfTkFUSVZFX1NQRUNTIFRBUkdFVF9N T0RFX1NQRUNTCiAjZGVmaW5lIFRBUkdFVF9TVVBQT1JUU19XSURFX0lOVCAx CiAjZW5kaWYgLyogISBHQ0NfQVJNX0ggKi8K --001a1139e78ea155860510847aab--