From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28279 invoked by alias); 6 Feb 2014 21:37:22 -0000 Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org Received: (qmail 28268 invoked by uid 89); 6 Feb 2014 21:37:21 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=0.8 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_SOFTFAIL autolearn=no version=3.3.2 X-HELO: mail-lb0-f179.google.com Received: from mail-lb0-f179.google.com (HELO mail-lb0-f179.google.com) (209.85.217.179) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Thu, 06 Feb 2014 21:37:19 +0000 Received: by mail-lb0-f179.google.com with SMTP id l4so1989047lbv.10 for ; Thu, 06 Feb 2014 13:37:15 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to :content-type; bh=1bB2/mo5ywCFHDDeV0Ew0PcK1Td5fPIbYQNO4m0XGoo=; b=KvmbBwJKEvkfgXA+sYF44gOvs3ZKGK9pBuH5khQ+ijUt5OmZRsNSozYShN0Kdfc9WA KiLD5+hkbzrwhW7QA6QUTO/d8g7PodhPVqqIFxRt3iroYaV+3xfi6UMiyoyBHa2uDqXg L151Hf3yklRw+0Rv/p4Aj1RY6xrVxXX5uw+jHGctlH2kJxbBLCKIwCKWvFLmrJCaJYb4 HEVSlpB8Pk1VSuohY8qwytHH8XETXrNyxCNn+8pcpJ3UmUE0WFVKnqEm1nn75T/eUCLA fw9q4DIEkptl1nHQv4E8wNP2r1FHGHI9HEzOiC0RmIjXwq66yLKLQ7On0Mu98j592lbU g0mQ== X-Gm-Message-State: ALoCoQmZqTkUaoq2cy5RWaxI+V/1Zv3H2Pyzieba/UCs4RNof2jxMGTSm9DDqYpVos+hX2hy4E0t MIME-Version: 1.0 X-Received: by 10.152.42.129 with SMTP id o1mr7355377lal.19.1391722635635; Thu, 06 Feb 2014 13:37:15 -0800 (PST) Received: by 10.112.63.100 with HTTP; Thu, 6 Feb 2014 13:37:15 -0800 (PST) Date: Thu, 06 Feb 2014 21:37:00 -0000 Message-ID: Subject: ongoing work on TI CodeComposer Studio assembly support From: Daniel Gutson To: binutils@sourceware.org Content-Type: multipart/mixed; boundary=001a11c3505c52f0a004f1c3ad10 X-IsSubscribed: yes X-SW-Source: 2014-02/txt/msg00048.txt.bz2 --001a11c3505c52f0a004f1c3ad10 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 1741 Hi, I'm adding support for the assembly syntax of the TI CodeComposer Studio (see -mccs flag in the patch). This is an ongoing work, which already assemblies most of our legacy hand-written assembly sources. I'd like to know: in CCS, all symbols are not exported by default, as expla= ined in the manual: The assembler generates an entry in the symbol table for each .ref, .de= f, or .global directive in Section 2.6.2). The assembler also creates spec= ial symbols that point to the beginning of each section. The assembler does not usually create symbol table entries for any symb= ols other than those described above, because the linker does not use them.= For example, labels (Section 4.7.2) are not included in the symbol table un= less they are declared with the .global directive. >From this, I have two options here regarding the behavior of the assembler= in the TI CCS compatibility mode: 1) do nothing, and make the ".def" TI directive equivalent to ".global", a= s I currently do in the attached patch. This is currently working. 2) by default, make all labels private as if they would be .Lxxx (I origin= ally did this, and is in the patch within the #ifdef DFG directives, but made no difference) unless they are marked with the ".def" directive. Please let me know if I'm in the good path by following the option 1 (in wh= ich case all the DFG code will be gone). Sorry for the lack of test cases and CHANGELOG, but I would really appreciate some early feedback of the patch. Thanks! Daniel. --=20 Daniel F. Gutson Chief Engineering Officer, SPD San Lorenzo 47, 3rd Floor, Office 5 C=F3rdoba, Argentina Phone: +54 351 4217888 / +54 351 4218211 Skype: dgutson --001a11c3505c52f0a004f1c3ad10 Content-Type: text/x-patch; charset=US-ASCII; name="ccs.patch" Content-Disposition: attachment; filename="ccs.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hrcjnybw0 Content-length: 16373 ZGlmZiAtTmF1ciBiaW51dGlscy0yLjIzLjUyLW9yaWdpbmFsL2dhcy9hcy5o IGJpbnV0aWxzLTIuMjMuNTIvZ2FzL2FzLmgKLS0tIGJpbnV0aWxzLTIuMjMu NTItb3JpZ2luYWwvZ2FzL2FzLmgJMjAxNC0wMi0wNSAxNjo0MDo1Mi43OTcx NTcwNTMgLTAzMDAKKysrIGJpbnV0aWxzLTIuMjMuNTIvZ2FzL2FzLmgJMjAx NC0wMi0wNSAxODo0NDoyNy4xMDk0NjQ0MzMgLTAzMDAKQEAgLTYxNSw2ICs2 MTUsMTAgQEAKICNkZWZpbmUgTk9fUFNFVURPX0RPVCAwCiAjZW5kaWYKIAor I2lmbmRlZiBPVkVSUklERV9MT0NBTF9MQUJFTF9URVNUCisjZGVmaW5lIE9W RVJSSURFX0xPQ0FMX0xBQkVMX1RFU1Qoc3ltX25hbWUpIEZBTFNFCisjZW5k aWYKKwogI2lmbmRlZiBURVhUX1NFQ1RJT05fTkFNRQogI2RlZmluZSBURVhU X1NFQ1RJT05fTkFNRQkiLnRleHQiCiAjZGVmaW5lIERBVEFfU0VDVElPTl9O QU1FCSIuZGF0YSIKZGlmZiAtTmF1ciBiaW51dGlscy0yLjIzLjUyLW9yaWdp bmFsL2dhcy9jb25maWcvdGMtYXJtLmMgYmludXRpbHMtMi4yMy41Mi9nYXMv Y29uZmlnL3RjLWFybS5jCi0tLSBiaW51dGlscy0yLjIzLjUyLW9yaWdpbmFs L2dhcy9jb25maWcvdGMtYXJtLmMJMjAxNC0wMi0wNSAxNjo0MToxNi4zMDkx NTgwMjggLTAzMDAKKysrIGJpbnV0aWxzLTIuMjMuNTIvZ2FzL2NvbmZpZy90 Yy1hcm0uYwkyMDE0LTAyLTA2IDE3OjM5OjM1Ljg3NzY1OTU2OSAtMDMwMApA QCAtMTM3LDYgKzEzNyw5IEBACiAvKiBXYXJuIG9uIHVzaW5nIGRlcHJlY2F0 ZWQgZmVhdHVyZXMuICAqLwogc3RhdGljIGludCB3YXJuX29uX2RlcHJlY2F0 ZWQgPSBUUlVFOwogCisvKiBVbmRlcnN0YW5kIENvZGVDb21wb3NlciBTdHVk aW8gYXNzZW1ibHkgc3ludGF4LiAgKi8KK2ludCBjb2RlY29tcG9zZXJfc3lu dGF4ID0gRkFMU0U7CisKIAogLyogVmFyaWFibGVzIHRoYXQgd2Ugc2V0IHdo aWxlIHBhcnNpbmcgY29tbWFuZC1saW5lIG9wdGlvbnMuICBPbmNlIGFsbAog ICAgb3B0aW9ucyBoYXZlIGJlZW4gcmVhZCB3ZSByZS1wcm9jZXNzIHRoZXNl IHZhbHVlcyB0byBzZXQgdGhlIHJlYWwKQEAgLTc5NSw2ICs3OTgsMjggQEAK IC8qIFBvaW50ZXIgdG8gYSBsaW5rZWQgbGlzdCBvZiBsaXRlcmFsIHBvb2xz LiAgKi8KIGxpdGVyYWxfcG9vbCAqIGxpc3Rfb2ZfcG9vbHMgPSBOVUxMOwog CisjaWZkZWYgREZHCisvKiAgTGlzdCBvZiBzeW1ib2xzIHRvIGV4cG9ydC4g VGhpcyBpcyBmb3IgQ29kZUNvbXBvc2VyIFN0dWRpbyBjb21wYXRpYmlsaXR5 CisgICAgc2luY2UgYWxsIHN5bWJvbHMgYXJlIGxvY2FscywgdW5sZXNzIGEg LmRlZiBwc2V1ZG8tb3AgaXMgc3BlY2lmaWVkLgorICAgIFRoaXMgbGlzdCBo b2xkcyB0aG9zZSBzeW1ib2xzIHRoYXQgc2hhbGwgYmUgZXhwb3J0ZWQuICAq LwordHlwZWRlZiBzdHJ1Y3Qgc3ltYm9sX3RvX2V4cG9ydAoreworICBjb25z dCBjaGFyICogc3ltYm9sX25hbWU7CisgIHN0cnVjdCBzeW1ib2xfdG9fZXhw b3J0ICogbmV4dDsKK30gc3ltYm9sX3RvX2V4cG9ydDsKKworc3RhdGljIHN5 bWJvbF90b19leHBvcnQgKiBsaXN0X29mX3N5bWJvbHNfdG9fZXhwb3J0ID0g TlVMTDsKKyNlbmRpZgorCit0eXBlZGVmIGVudW0gYXNtZnVuY19zdGF0ZXMK K3sKKyAgT1VUU0lERV9BU01GVU5DLAorICBXQUlUSU5HX0FTTUZVTkNfTkFN RSwKKyAgV0FJVElOR19FTkRBU01GVU5DCit9IGFzbWZ1bmNfc3RhdGVzOwor CitzdGF0aWMgYXNtZnVuY19zdGF0ZXMgYXNtZnVuY19zdGF0ZSA9IE9VVFNJ REVfQVNNRlVOQzsKKwogI2lmZGVmIE9CSl9FTEYKICMgIGRlZmluZSBub3df aXQgc2VnX2luZm8gKG5vd19zZWcpLT50Y19zZWdtZW50X2luZm9fZGF0YS5j dXJyZW50X2l0CiAjZWxzZQpAQCAtODUzLDcgKzg3OCw3IEBACiAKIC8qIFRo aXMgYXJyYXkgaG9sZHMgdGhlIGNoYXJzIHRoYXQgYWx3YXlzIHN0YXJ0IGEg Y29tbWVudC4gIElmIHRoZQogICAgcHJlLXByb2Nlc3NvciBpcyBkaXNhYmxl ZCwgdGhlc2UgYXJlbid0IHZlcnkgdXNlZnVsLgkgKi8KLWNvbnN0IGNoYXIg Y29tbWVudF9jaGFyc1tdID0gIkAiOworY2hhciBjb21tZW50X2NoYXJzW10g PSAiQCI7CiAKIC8qIFRoaXMgYXJyYXkgaG9sZHMgdGhlIGNoYXJzIHRoYXQg b25seSBzdGFydCBhIGNvbW1lbnQgYXQgdGhlIGJlZ2lubmluZyBvZgogICAg YSBsaW5lLiAgSWYgdGhlIGxpbmUgc2VlbXMgdG8gaGF2ZSB0aGUgZm9ybSAn IyAxMjMgZmlsZW5hbWUnCkBAIC04NjIsOSArODg3LDkgQEAKICAgIGZpcnN0 IGxpbmUgb2YgdGhlIGlucHV0IGZpbGUuICBUaGlzIGlzIGJlY2F1c2UgdGhl IGNvbXBpbGVyIG91dHB1dHMKICAgICNOT19BUFAgYXQgdGhlIGJlZ2lubmlu ZyBvZiBpdHMgb3V0cHV0LiAgKi8KIC8qIEFsc28gbm90ZSB0aGF0IGNvbW1l bnRzIGxpa2UgdGhpcyBvbmUgd2lsbCBhbHdheXMgd29yay4gICovCi1jb25z dCBjaGFyIGxpbmVfY29tbWVudF9jaGFyc1tdID0gIiMiOworY2hhciBsaW5l X2NvbW1lbnRfY2hhcnNbXSA9ICIjIjsKIAotY29uc3QgY2hhciBsaW5lX3Nl cGFyYXRvcl9jaGFyc1tdID0gIjsiOworY2hhciBsaW5lX3NlcGFyYXRvcl9j aGFyc1tdID0gIjsiOwogCiAvKiBDaGFycyB0aGF0IGNhbiBiZSB1c2VkIHRv IHNlcGFyYXRlIG1hbnQKICAgIGZyb20gZXhwIGluIGZsb2F0aW5nIHBvaW50 IG51bWJlcnMuCSovCkBAIC0zMDEyLDYgKzMwMzcsMTYwIEBACiAgIGRlbWFu ZF9lbXB0eV9yZXN0X29mX2xpbmUgKCk7CiB9CiAKKy8qICAucmVmICAoZm9y IENvZGVDb21wb3NlciBTdHVkaW8gc3ludGF4IG9ubHkpLiAgKi8KK3N0YXRp YyB2b2lkCitzX2Njc19yZWYgKGludCB1bnVzZWQgQVRUUklCVVRFX1VOVVNF RCkKK3sKKyAgaWYgKGNvZGVjb21wb3Nlcl9zeW50YXgpCisgICAgaWdub3Jl X3Jlc3Rfb2ZfbGluZSAoKTsKKyAgZWxzZQorICAgIGFzX2JhZCAoXygiLnJl ZiBwc2V1ZG8tb3Agb25seSBhdmFpbGFibGUgd2l0aCAtbWNjcyBmbGFnLiIp KTsKK30KKworLyogIElmIG5hbWUgaXMgbm90IE5VTEwsIHRoZW4gaXQgaXMg dXNlZCBmb3IgbWFya2luZyB0aGUgYmVnaW5uaW5nIG9mIGEKKyAgICBmdW5j dGlvbiwgd2hlcmVhc2UgaWYgaXQgaXMgTlVMTCB0aGVuIGl0IG1lYW5zIHRo ZSBmdW5jdGlvbiBlbmQuICAqLworc3RhdGljIHZvaWQKK2FzbWZ1bmNfZGVi dWcgKGNvbnN0IGNoYXIgKiBuYW1lKQoreworICBzdGF0aWMgY29uc3QgY2hh ciAqIGxhc3RfbmFtZSA9IE5VTEw7CisKKyAgaWYgKG5hbWUgIT0gTlVMTCkK KyAgICB7CisgICAgICBnYXNfYXNzZXJ0IChsYXN0X25hbWUgPT0gTlVMTCk7 CisgICAgICBsYXN0X25hbWUgPSBuYW1lOworCisgICAgICBpZiAoZGVidWdf dHlwZSA9PSBERUJVR19TVEFCUykKKwkgICAgICBzdGFic19nZW5lcmF0ZV9h c21fZnVuYyAobmFtZSwgbmFtZSk7CisKKyAgICB9CisgIGVsc2UKKyAgICB7 CisgICAgICBnYXNfYXNzZXJ0IChsYXN0X25hbWUgIT0gTlVMTCk7CisKKyAg ICAgIGlmIChkZWJ1Z190eXBlID09IERFQlVHX1NUQUJTKQorICAgICAgICBz dGFic19nZW5lcmF0ZV9hc21fZW5kZnVuYyAobGFzdF9uYW1lLCBsYXN0X25h bWUpOworCisgICAgICBsYXN0X25hbWUgPSBOVUxMOworICAgIH0KK30KKwor c3RhdGljIHZvaWQKK3NfY2NzX2FzbWZ1bmMgKGludCB1bnVzZWQgQVRUUklC VVRFX1VOVVNFRCkKK3sKKyAgaWYgKGNvZGVjb21wb3Nlcl9zeW50YXgpCisg IHsKKyAgICBzd2l0Y2ggKGFzbWZ1bmNfc3RhdGUpCisgICAgICB7CisgICAg ICBjYXNlIE9VVFNJREVfQVNNRlVOQzoKKyAgICAgICAgYXNtZnVuY19zdGF0 ZSA9IFdBSVRJTkdfQVNNRlVOQ19OQU1FOworICAgICAgICBicmVhazsKKwor ICAgICAgY2FzZSBXQUlUSU5HX0FTTUZVTkNfTkFNRToKKyAgICAgICAgYXNf YmFkIChfKCIuYXNtZnVuYyByZXBlYXRlZC4iKSk7CisgICAgICAgIGJyZWFr OworCisgICAgICBjYXNlIFdBSVRJTkdfRU5EQVNNRlVOQzoKKyAgICAgICAg YXNfYmFkIChfKCIuYXNtZnVuYyB3aXRob3V0IGZ1bmN0aW9uLiIpKTsKKyAg ICAgICAgYnJlYWs7CisgICAgICB9CisgICAgZGVtYW5kX2VtcHR5X3Jlc3Rf b2ZfbGluZSAoKTsKKyAgfQorICBlbHNlCisgICAgYXNfYmFkIChfKCIuYXNt ZnVuYyBwc2V1ZG8tb3Agb25seSBhdmFpbGFibGUgd2l0aCAtbWNjcyBmbGFn LiIpKTsKK30KKworI2lmZGVmIERGRworYmZkX2Jvb2xlYW4gYXJtX2xvY2Fs X2xhYmVsX3AoY29uc3QgY2hhciAqc3ltX25hbWUpCit7CisgIGlmIChjb2Rl Y29tcG9zZXJfc3ludGF4ICYmIEZBTFNFKSAvKiBERkcgKi8KKyAgICB7Cisg ICAgICBiZmRfYm9vbGVhbiBmb3VuZCA9IEZBTFNFOworCisgICAgICAvKiAg RmluZCB0aGUgc3ltX25hbWUgaW4gdGhlIGxpc3Rfb2Zfc3ltYm9sc190b19l eHBvcnQuICAqLworICAgICAgc3ltYm9sX3RvX2V4cG9ydCAqIHN5bWJvbF9u b2RlID0gbGlzdF9vZl9zeW1ib2xzX3RvX2V4cG9ydDsKKworICAgICAgd2hp bGUgKHN5bWJvbF9ub2RlICE9IE5VTEwgJiYgISBmb3VuZCkKKyAgICAgICAg eworICAgICAgICAgIGZvdW5kID0gKHN0cmNtcCAoc3ltYm9sX25vZGUtPnN5 bWJvbF9uYW1lLCBzeW1fbmFtZSkgPT0gMCk7CisgICAgICAgICAgc3ltYm9s X25vZGUgPSBzeW1ib2xfbm9kZS0+bmV4dDsKKyAgICAgICAgfQorCisgICAg ICByZXR1cm4gISBmb3VuZDsKKyAgICB9CisgIGVsc2UKKyAgICByZXR1cm4g RkFMU0U7Cit9CisjZW5kaWYKKworc3RhdGljIHZvaWQKK3NfY2NzX2VuZGFz bWZ1bmMgKGludCB1bnVzZWQgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgaWYg KGNvZGVjb21wb3Nlcl9zeW50YXgpCisgIHsKKyAgICBzd2l0Y2ggKGFzbWZ1 bmNfc3RhdGUpCisgICAgICB7CisgICAgICBjYXNlIE9VVFNJREVfQVNNRlVO QzoKKyAgICAgICAgYXNfYmFkIChfKCIuZW5kYXNtZnVuYyB3aXRob3V0IGEg LmFzbWZ1bmMuIikpOworICAgICAgICBicmVhazsKKworICAgICAgY2FzZSBX QUlUSU5HX0FTTUZVTkNfTkFNRToKKyAgICAgICAgYXNfYmFkIChfKCIuZW5k YXNtZnVuYyB3aXRob3V0IGZ1bmN0aW9uLiIpKTsKKyAgICAgICAgYnJlYWs7 CisKKyAgICAgIGNhc2UgV0FJVElOR19FTkRBU01GVU5DOgorICAgICAgICBh c21mdW5jX3N0YXRlID0gT1VUU0lERV9BU01GVU5DOworICAgICAgICBhc21m dW5jX2RlYnVnIChOVUxMKTsKKyAgICAgICAgYnJlYWs7CisgICAgICB9Cisg ICAgZGVtYW5kX2VtcHR5X3Jlc3Rfb2ZfbGluZSAoKTsKKyAgfQorICBlbHNl CisgICAgYXNfYmFkIChfKCIuZW5kYXNtZnVuYyBwc2V1ZG8tb3Agb25seSBh dmFpbGFibGUgd2l0aCAtbWNjcyBmbGFnLiIpKTsKK30KKworc3RhdGljIHZv aWQKK3NfY2NzX2RlZiAoaW50IHVudXNlZCAvKkFUVFJJQlVURV9VTlVTRUQq LykKK3sKKyAgaWYgKGNvZGVjb21wb3Nlcl9zeW50YXgpCisgICAgeworICAg ICAgc19nbG9ibCAodW51c2VkKTsKKyNpZmRlZiBERkcKKyAgICAgIGNoYXIg Km5hbWU7CisgICAgICAvKiBBZGQgdGhlIHN5bWJvbCBuYW1lIHRvIGxpc3Rf b2Zfc3ltYm9sc190b19leHBvcnQuICAqLworCisgICAgICBTS0lQX1dISVRF U1BBQ0UgKCk7CisgICAgICBuYW1lID0gaW5wdXRfbGluZV9wb2ludGVyOwor ICAgICAgaWYgKG5hbWUgIT0gJ1wwJykKKyAgICAgICAgeworICAgICAgICAg IGNvbnN0IGNoYXIgZGVsaW0gPSBnZXRfc3ltYm9sX2VuZCAoKTsKKyAgICAg ICAgICBuYW1lID0geHN0cmR1cCAobmFtZSk7CisgICAgICAgICAgKmlucHV0 X2xpbmVfcG9pbnRlciA9IGRlbGltOworICAgICAgICAgIGRlbWFuZF9lbXB0 eV9yZXN0X29mX2xpbmUgKCk7CisKKyAgICAgICAgICBzeW1ib2xfdG9fZXhw b3J0ICpuZXdfc3ltYm9sX25vZGUgPSAoc3ltYm9sX3RvX2V4cG9ydCAqKSB4 bWFsbG9jICgKKyAgICAgICAgICAgIHNpemVvZiAoc3ltYm9sX3RvX2V4cG9y dCkpOworCisgICAgICAgICAgbmV3X3N5bWJvbF9ub2RlLT5uZXh0ID0gTlVM TDsKKyAgICAgICAgICBuZXdfc3ltYm9sX25vZGUtPnN5bWJvbF9uYW1lID0g bmFtZTsKKworICAgICAgICAgIGlmIChsaXN0X29mX3N5bWJvbHNfdG9fZXhw b3J0ID09IE5VTEwpCisgICAgICAgICAgICBsaXN0X29mX3N5bWJvbHNfdG9f ZXhwb3J0ID0gbmV3X3N5bWJvbF9ub2RlOworICAgICAgICAgIGVsc2UKKyAg ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgc3ltYm9sX3RvX2V4cG9ydCAq bGFzdCA9IGxpc3Rfb2Zfc3ltYm9sc190b19leHBvcnQ7CisgICAgICAgICAg ICAgIHdoaWxlIChsYXN0LT5uZXh0ICE9IE5VTEwpCisgICAgICAgICAgICAg ICAgbGFzdCA9IGxhc3QtPm5leHQ7CisgICAgICAgICAgICAgIGxhc3QtPm5l eHQgPSBuZXdfc3ltYm9sX25vZGU7CisgICAgICAgICAgICB9CisgICAgICAg IH0KKyAgICAgIGVsc2UKKyAgICAgICAgYXNfYmFkIChfKCJtaXNzaW5nIHN5 bWJvbCBuYW1lIGFmdGVyIC5kZWYgcHNldWRvLW9wLiIpKTsKKyNlbmRpZgor ICAgIH0KKyAgZWxzZQorICAgIGFzX2JhZCAoXygiLmRlZiBwc2V1ZG8tb3Ag b25seSBhdmFpbGFibGUgd2l0aCAtbWNjcyBmbGFnLiIpKTsKK30KKwogLyog RGlyZWN0aXZlczogTGl0ZXJhbCBwb29scy4gICovCiAKIHN0YXRpYyBsaXRl cmFsX3Bvb2wgKgpAQCAtMzEyOCw2ICszMzA3LDQxIEBACiAgIHJldHVybiBT VUNDRVNTOwogfQogCisjaWZkZWYgREZHCit2b2lkCit0Y19hcm1fc3ltYm9s X25ld19ob29rKHN5bWJvbFMgKiBzeW1ib2xQIEFUVFJJQlVURV9VTlVTRUQp Cit7CisvKiAgcHJpbnRmICgiREZHOiBuZXcgc3ltYm9sICVzXG4iLCBTX0dF VF9OQU1FIChzeW1ib2xQKSk7Ki8KK30KKyNlbmRpZgorCitiZmRfYm9vbGVh bgordGNfc3RhcnRfbGFiZWxfd2l0aG91dF9jb2xvbiAoY2hhciB1bnVzZWQx IEFUVFJJQlVURV9VTlVTRUQsIGNvbnN0IGNoYXIgKiByZXN0KQoreworICBi ZmRfYm9vbGVhbiByZXQgPSBUUlVFOworCisgIGlmIChjb2RlY29tcG9zZXJf c3ludGF4ICYmIGFzbWZ1bmNfc3RhdGUgPT0gV0FJVElOR19BU01GVU5DX05B TUUpCisgIHsKKyAgICBjb25zdCBjaGFyICpsYWJlbCA9IHJlc3Q7CisKKyAg ICB3aGlsZSAoIWlzX2VuZF9vZl9saW5lWyhpbnQpIGxhYmVsWy0xXV0pCisJ ICAgIC0tbGFiZWw7CisKKyAgICBpZiAoKmxhYmVsID09ICcuJykKKwkgICAg eworCSAgICAgIGFzX2JhZCAoXygiSW52YWxpZCBsYWJlbCAnJXMnIiksIGxh YmVsKTsKKwkgICAgICByZXQgPSBGQUxTRTsKKwkgICAgfQorCisgICAgYXNt ZnVuY19kZWJ1ZyAobGFiZWwpOworCisgICAgYXNtZnVuY19zdGF0ZSA9IFdB SVRJTkdfRU5EQVNNRlVOQzsKKyAgfQorCisgIHJldHVybiByZXQ7Cit9CisK KwogLyogQ2FuJ3QgdXNlIHN5bWJvbF9uZXcgaGVyZSwgc28gaGF2ZSB0byBj cmVhdGUgYSBzeW1ib2wgYW5kIHRoZW4gYXQKICAgIGEgbGF0ZXIgZGF0ZSBh c3NpZ24gaXQgYSB2YWx1ZS4gVGhhdHMgd2hhdCB0aGVzZSBmdW5jdGlvbnMg ZG8uICAqLwogCkBAIC00NDc3LDYgKzQ2OTEsMTIgQEAKICNpZmRlZiBURV9Q RQogICB7InNlY3JlbDMyIiwgcGVfZGlyZWN0aXZlX3NlY3JlbCwgMH0sCiAj ZW5kaWYKKyAgLyogVGhlc2UgYXJlIGZvciBjb21wYXRpYmlsaXR5IHdpdGgg Q29kZUNvbXBvc2VyIFN0dWRpby4gICovCisgIHsicmVmIiwgc19jY3NfcmVm LCAwfSwKKyAgeyJkZWYiLCBzX2Njc19kZWYsIDB9LAorICB7ImFzbWZ1bmMi LCBzX2Njc19hc21mdW5jLCAwfSwKKyAgeyJlbmRhc21mdW5jIiwgc19jY3Nf ZW5kYXNtZnVuYywgMH0sCisKICAgeyAwLCAwLCAwIH0KIH07CiAMCkBAIC0y Mzc1OSw2ICsyMzk3OSw3IEBACiAgIHsibWJpZy1lbmRpYW4iLCBOXygiYXNz ZW1ibGUgZm9yIGJpZy1lbmRpYW4iKSwgJnRhcmdldF9iaWdfZW5kaWFuLCAx LCBOVUxMfSwKICAgeyJtbGl0dGxlLWVuZGlhbiIsIE5fKCJhc3NlbWJsZSBm b3IgbGl0dGxlLWVuZGlhbiIpLCAmdGFyZ2V0X2JpZ19lbmRpYW4sIDAsCiAg ICBOVUxMfSwKKyAgeyJtYXBjcy1zdGFjay1jaGVjayIsIE5fKCJ1c2Ugc3Rh Y2sgc2l6ZSBjaGVja2luZyIpLCBOVUxMLCAwLCBOVUxMfSwKIAogICAvKiBU aGVzZSBhcmUgcmVjb2duaXplZCBieSB0aGUgYXNzZW1ibGVyLCBidXQgaGF2 ZSBubyBhZmZlY3Qgb24gY29kZS4JICovCiAgIHsibWFwY3MtZnJhbWUiLCBO XygidXNlIGZyYW1lIHBvaW50ZXIiKSwgTlVMTCwgMCwgTlVMTH0sCkBAIC0y NDUwOCw2ICsyNDcyOSwxNSBAQAogICByZXR1cm4gcmV0OwogfQogCitzdGF0 aWMgYmZkX2Jvb2xlYW4KK2FybV9jY3NfbW9kZSAoY2hhciAqIHVudXNlZCBB VFRSSUJVVEVfVU5VU0VEKQoreworICBjb2RlY29tcG9zZXJfc3ludGF4ID0g VFJVRTsKKyAgY29tbWVudF9jaGFyc1swXSA9ICc7JzsKKyAgbGluZV9zZXBh cmF0b3JfY2hhcnNbMF0gPSAwOworCXJldHVybiBUUlVFOworfQorCiBzdHJ1 Y3QgYXJtX2xvbmdfb3B0aW9uX3RhYmxlIGFybV9sb25nX29wdHNbXSA9CiB7 CiAgIHsibWNwdT0iLCBOXygiPGNwdSBuYW1lPlx0ICBhc3NlbWJsZSBmb3Ig Q1BVIDxjcHUgbmFtZT4iKSwKQEAgLTI0NTI0LDYgKzI0NzU0LDggQEAKICNl bmRpZgogICB7Im1pbXBsaWNpdC1pdD0iLCBOXygiPG1vZGU+XHQgIGNvbnRy b2xzIGltcGxpY2l0IGluc2VydGlvbiBvZiBJVCBpbnN0cnVjdGlvbnMiKSwK ICAgIGFybV9wYXJzZV9pdF9tb2RlLCBOVUxMfSwKKyAgeyJtY2NzIiwgTl8o Ilx0XHRcdCAgVEkgQ29kZUNvbXBvc2VyIFN0dWRpbyBzeW50YXggY29tcGF0 aWJpbGl0eSBtb2RlIiksCisgICBhcm1fY2NzX21vZGUsIE5VTEx9LAogICB7 TlVMTCwgTlVMTCwgMCwgTlVMTH0KIH07CiAKZGlmZiAtTmF1ciBiaW51dGls cy0yLjIzLjUyLW9yaWdpbmFsL2dhcy9jb25maWcvdGMtYXJtLmggYmludXRp bHMtMi4yMy41Mi9nYXMvY29uZmlnL3RjLWFybS5oCi0tLSBiaW51dGlscy0y LjIzLjUyLW9yaWdpbmFsL2dhcy9jb25maWcvdGMtYXJtLmgJMjAxNC0wMi0w NSAxNjo0MToxNi4zODkxNTgwMzEgLTAzMDAKKysrIGJpbnV0aWxzLTIuMjMu NTIvZ2FzL2NvbmZpZy90Yy1hcm0uaAkyMDE0LTAyLTA2IDEzOjQwOjM0Ljc4 NTI1MDI4NSAtMDMwMApAQCAtODIsOSArODIsMTggQEAKIC8qIFdlIHN1cHBv cnQgZG91YmxlIHNsYXNoIGxpbmUtY29tbWVudHMgZm9yIGNvbXBhdGliaWxp dHkgd2l0aCB0aGUgQVJNIEFBcmNoNjQgQXNzZW1ibGVyLiAgKi8KICNkZWZp bmUgRE9VQkxFU0xBU0hfTElORV9DT01NRU5UUwogCisvKiBXZSBjb25kaXRp b25hbGx5IHN1cHBvcnQgbGFiZWxzIHdpdGhvdXQgY29sb24uICAqLworI2Rl ZmluZSBMQUJFTFNfV0lUSE9VVF9DT0xPTlMgY29kZWNvbXBvc2VyX3N5bnRh eAorZXh0ZXJuIGludCBjb2RlY29tcG9zZXJfc3ludGF4OworCiAjZGVmaW5l IHRjX3N5bWJvbF9jaGFycyBhcm1fc3ltYm9sX2NoYXJzCiBleHRlcm4gY29u c3QgY2hhciBhcm1fc3ltYm9sX2NoYXJzW107CiAKKyNpZmRlZiBERkcKKyNk ZWZpbmUgT1ZFUlJJREVfTE9DQUxfTEFCRUxfVEVTVChzeW1fbmFtZSkgYXJt X2xvY2FsX2xhYmVsX3Aoc3ltX25hbWUpCitleHRlcm4gYmZkX2Jvb2xlYW4g YXJtX2xvY2FsX2xhYmVsX3AoY29uc3QgY2hhciAqc3ltX25hbWUpOworI2Vu ZGlmCisKICNkZWZpbmUgVENfRk9SQ0VfUkVMT0NBVElPTihGSVgpIGFybV9m b3JjZV9yZWxvY2F0aW9uIChGSVgpCiAKIGV4dGVybiB1bnNpZ25lZCBpbnQg YXJtX2ZyYWdfbWF4X3ZhciAoc3RydWN0IGZyYWcgKik7CkBAIC0xMDEsNiAr MTEwLDE0IEBACiAKICNkZWZpbmUgbWRfc3RhcnRfbGluZV9ob29rKCkgYXJt X3N0YXJ0X2xpbmVfaG9vayAoKQogCisjaWZkZWYgREZHCisjZGVmaW5lIHRj X3N5bWJvbF9uZXdfaG9vayhTKSB0Y19hcm1fc3ltYm9sX25ld19ob29rKFMp CitleHRlcm4gdm9pZCB0Y19hcm1fc3ltYm9sX25ld19ob29rKHN5bWJvbFMg KnN5bWJvbFApOworI2VuZGlmCisKKyNkZWZpbmUgVENfU1RBUlRfTEFCRUxf V0lUSE9VVF9DT0xPTihjLCBsKSAgdGNfc3RhcnRfbGFiZWxfd2l0aG91dF9j b2xvbiAoYywgbCkKK2V4dGVybiBiZmRfYm9vbGVhbiB0Y19zdGFydF9sYWJl bF93aXRob3V0X2NvbG9uIChjaGFyIGMsIGNvbnN0IGNoYXIgKiBsKTsKKwog I2RlZmluZSB0Y19mcm9iX2xhYmVsKFMpIGFybV9mcm9iX2xhYmVsIChTKQog CiAvKiBXZSBhbHNvIG5lZWQgdG8gbWFyayBhc3NlbWJsZXIgY3JlYXRlZCBz eW1ib2xzOiAgKi8KZGlmZiAtTmF1ciBiaW51dGlscy0yLjIzLjUyLW9yaWdp bmFsL2dhcy9jb25maWcvdGMtaDgzMDAuYyBiaW51dGlscy0yLjIzLjUyL2dh cy9jb25maWcvdGMtaDgzMDAuYwotLS0gYmludXRpbHMtMi4yMy41Mi1vcmln aW5hbC9nYXMvY29uZmlnL3RjLWg4MzAwLmMJMjAxNC0wMi0wNSAxNjo0MTox NS43MjkxNTgwMDQgLTAzMDAKKysrIGJpbnV0aWxzLTIuMjMuNTIvZ2FzL2Nv bmZpZy90Yy1oODMwMC5jCTIwMTQtMDItMDYgMDk6MzQ6NDMuNjA4NjIzNDEw IC0wMzAwCkBAIC0zMyw5ICszMyw5IEBACiAjaW5jbHVkZSAiZWxmL2g4Lmgi CiAjZW5kaWYKIAotY29uc3QgY2hhciBjb21tZW50X2NoYXJzW10gPSAiOyI7 Ci1jb25zdCBjaGFyIGxpbmVfY29tbWVudF9jaGFyc1tdID0gIiMiOwotY29u c3QgY2hhciBsaW5lX3NlcGFyYXRvcl9jaGFyc1tdID0gIiI7CitjaGFyIGNv bW1lbnRfY2hhcnNbXSA9ICI7IjsKK2NoYXIgbGluZV9jb21tZW50X2NoYXJz W10gPSAiIyI7CitjaGFyIGxpbmVfc2VwYXJhdG9yX2NoYXJzW10gPSAiIjsK IAogc3RhdGljIHZvaWQgc2JyYW5jaCAoaW50KTsKIHN0YXRpYyB2b2lkIGg4 MzAwaG1vZGUgKGludCk7CmRpZmYgLU5hdXIgYmludXRpbHMtMi4yMy41Mi1v cmlnaW5hbC9nYXMvcmVhZC5oIGJpbnV0aWxzLTIuMjMuNTIvZ2FzL3JlYWQu aAotLS0gYmludXRpbHMtMi4yMy41Mi1vcmlnaW5hbC9nYXMvcmVhZC5oCTIw MTQtMDItMDUgMTY6NDE6MTcuOTgxMTU4MDk3IC0wMzAwCisrKyBiaW51dGls cy0yLjIzLjUyL2dhcy9yZWFkLmgJMjAxNC0wMi0wNiAwOTozMDo0NS43MDg2 MzU0NDAgLTAzMDAKQEAgLTYxLDkgKzYxLDkgQEAKIGV4dGVybiBpbnQgdGFy Z2V0X2JpZ19lbmRpYW47CiAKIC8qIFRoZXNlIGFyZSBpbml0aWFsaXplZCBi eSB0aGUgQ1BVIHNwZWNpZmljIHRhcmdldCBmaWxlcyAodGMtKi5jKS4gICov Ci1leHRlcm4gY29uc3QgY2hhciBjb21tZW50X2NoYXJzW107Ci1leHRlcm4g Y29uc3QgY2hhciBsaW5lX2NvbW1lbnRfY2hhcnNbXTsKLWV4dGVybiBjb25z dCBjaGFyIGxpbmVfc2VwYXJhdG9yX2NoYXJzW107CitleHRlcm4gY2hhciBj b21tZW50X2NoYXJzW107CitleHRlcm4gY2hhciBsaW5lX2NvbW1lbnRfY2hh cnNbXTsKK2V4dGVybiBjaGFyIGxpbmVfc2VwYXJhdG9yX2NoYXJzW107CiAK IC8qIFRhYmxlIG9mIC1JIGRpcmVjdG9yaWVzLiAgKi8KIGV4dGVybiBjaGFy ICoqaW5jbHVkZV9kaXJzOwpkaWZmIC1OYXVyIGJpbnV0aWxzLTIuMjMuNTIt b3JpZ2luYWwvZ2FzL3N5bWJvbHMuYyBiaW51dGlscy0yLjIzLjUyL2dhcy9z eW1ib2xzLmMKLS0tIGJpbnV0aWxzLTIuMjMuNTItb3JpZ2luYWwvZ2FzL3N5 bWJvbHMuYwkyMDE0LTAyLTA1IDE2OjQxOjE4LjA0MTE1ODEwMCAtMDMwMAor KysgYmludXRpbHMtMi4yMy41Mi9nYXMvc3ltYm9scy5jCTIwMTQtMDItMDYg MTM6NDE6MjIuNDkzMjUwNzA1IC0wMzAwCkBAIC00NDEsNyArNDQxLDE0IEBA CiAJfQogCiAgICAgfQotICBlbHNlIGlmICghIGZsYWdfa2VlcF9sb2NhbHMg JiYgYmZkX2lzX2xvY2FsX2xhYmVsX25hbWUgKHN0ZG91dHB1dCwgc3ltX25h bWUpKQorI2lmZGVmIERGRworICBlbHNlIGlmICghIGZsYWdfa2VlcF9sb2Nh bHMKKyAgICAgICAmJiAoYmZkX2lzX2xvY2FsX2xhYmVsX25hbWUgKHN0ZG91 dHB1dCwgc3ltX25hbWUpCisgICAgICAgICAgIHx8IE9WRVJSSURFX0xPQ0FM X0xBQkVMX1RFU1Qoc3ltX25hbWUpKSkKKyNlbHNlCisgIGVsc2UgaWYgKCEg ZmxhZ19rZWVwX2xvY2FscworICAgICAgICYmIChiZmRfaXNfbG9jYWxfbGFi ZWxfbmFtZSAoc3Rkb3V0cHV0LCBzeW1fbmFtZSkpKQorI2VuZGlmCiAgICAg ewogICAgICAgc3ltYm9sUCA9IChzeW1ib2xTICopIGxvY2FsX3N5bWJvbF9t YWtlIChzeW1fbmFtZSwgbm93X3NlZywKIAkJCQkJICAgICAgICh2YWx1ZVQp IGZyYWdfbm93X2ZpeCAoKSwK --001a11c3505c52f0a004f1c3ad10--