From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6003 invoked by alias); 26 Dec 2012 12:15:47 -0000 Received: (qmail 5985 invoked by uid 22791); 26 Dec 2012 12:15:44 -0000 X-SWARE-Spam-Status: No, hits=-3.9 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,KHOP_RCVD_TRUST,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE X-Spam-Check-By: sourceware.org Received: from mail-pa0-f51.google.com (HELO mail-pa0-f51.google.com) (209.85.220.51) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 26 Dec 2012 12:15:39 +0000 Received: by mail-pa0-f51.google.com with SMTP id fb11so4908160pad.10 for ; Wed, 26 Dec 2012 04:15:39 -0800 (PST) MIME-Version: 1.0 Received: by 10.68.235.71 with SMTP id uk7mr85453915pbc.10.1356524138942; Wed, 26 Dec 2012 04:15:38 -0800 (PST) Received: by 10.68.229.137 with HTTP; Wed, 26 Dec 2012 04:15:38 -0800 (PST) Date: Wed, 26 Dec 2012 12:15:00 -0000 Message-ID: Subject: [RFC PATCH] Implementing ifunc target hook From: Alexander Ivchenko To: gcc-patches@gcc.gnu.org, "Joseph S. Myers" , "H.J. Lu" , pavel.v.chupin@gmail.com, Sergey Ostanevich , Maxim Kuvyrkov Content-Type: multipart/mixed; boundary=047d7b33d1a66e4fd504d1c0631e X-IsSubscribed: yes 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 X-SW-Source: 2012-12/txt/msg01406.txt.bz2 --047d7b33d1a66e4fd504d1c0631e Content-Type: text/plain; charset=ISO-8859-1 Content-length: 374 Hi, Currently Android dynamic loader does not support indirect functions (And I don't think that it will someday). But there is no way for us to specify that for gcc, and for example, tests like gcc.dg/attr-ifunc-* are failing on android right now. The attached patch is indended to add the target hook for indicating the support of ifunc on target. Thank you, Alexander --047d7b33d1a66e4fd504d1c0631e Content-Type: application/octet-stream; name="disable_ifunc_for_android2.patch" Content-Disposition: attachment; filename="disable_ifunc_for_android2.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hb6ffb1w0 Content-length: 9065 ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBmYzhm NjBiLi42MWI3MzNkIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hh bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTItMjYgIEFsZXhhbmRl ciBJdmNoZW5rbyAgPGFsZXhhbmRlci5pdmNoZW5rb0BpbnRlbC5jb20+CisK KwkqIGdjYy9kb2MvdG0udGV4aS5pbiAoVEFSR0VUX0hBU19JRlVOQyk6IE5l dyB0YXJnZXQgaG9vay4KKwkqIGdjYy9kb2MvdG0udGV4aTogUmVnZW5lcmF0 ZQorCSogZ2NjL2RlZmF1bHRzLmggKFRBUkdFVF9IQVNfSUZVTkMpOiBEZWZp bmluZyBpdCBieSBkZWZhdWx0CisJYXMgSEFWRV9HTlVfSU5ESVJFQ1RfRlVO Q1RJT04uCisJKiBnY2MvY29uZmlnL2xpbnV4LWFuZHJvaWQuaCAoVEFSR0VU X0hBU19JRlVOQyk6IERpc2FibGUKKwlzdXBwb3J0IG9mIGluZGlyZWN0IGZ1 bmN0aW9ucyBpbiBhbmRyb2lkLgorCSogZ2NjL2NvbmZpZy9pMzg2L2kzODYu YyAoaXg4Nl9nZXRfZnVuY3Rpb25fdmVyc2lvbnNfZGlzcGF0Y2hlcik6CisJ VXNpbmcgVEFSR0VUX0hBU19JRlVOQyBob29rIGluc3RlYWQgb2YgSEFWRV9H TlVfSU5ESVJFQ1RfRlVOQ1RJT04uCisJKiBnY2MvdmFyYXNtLmMgKGRvX2Fz c2VtYmxlX2FsaWFzKTogTGlrZXdpc2UuCisKIDIwMTItMTItMjAgIE1hdHRo aWFzIEtsb3NlICA8ZG9rb0B1YnVudHUuY29tPgogCiAJKiBNYWtlZmlsZS5k ZWYgKGluc3RhbGwtdGFyZ2V0LWxpYmdmb3J0cmFuKTogRGVwZW5kIG9uCmRp ZmYgLS1naXQgYS9nY2MvY29uZmlnL2kzODYvaTM4Ni5jIGIvZ2NjL2NvbmZp Zy9pMzg2L2kzODYuYwppbmRleCBiNDY2YTRmLi4yYWY1MmJmIDEwMDY0NAot LS0gYS9nY2MvY29uZmlnL2kzODYvaTM4Ni5jCisrKyBiL2djYy9jb25maWcv aTM4Ni9pMzg2LmMKQEAgLTI5MTQ2LDcgKzI5MTQ2LDcgQEAgbWFrZV9uYW1l ICh0cmVlIGRlY2wsIGNvbnN0IGNoYXIgKnN1ZmZpeCwgYm9vbCBtYWtlX3Vu aXF1ZSkKICAgcmV0dXJuIGdsb2JhbF92YXJfbmFtZTsKIH0KIAotI2lmIGRl ZmluZWQgKEFTTV9PVVRQVVRfVFlQRV9ESVJFQ1RJVkUpICYmIEhBVkVfR05V X0lORElSRUNUX0ZVTkNUSU9OCisjaWYgZGVmaW5lZCAoQVNNX09VVFBVVF9U WVBFX0RJUkVDVElWRSkKIAogLyogTWFrZSBhIGRpc3BhdGNoZXIgZGVjbGFy YXRpb24gZm9yIHRoZSBtdWx0aS12ZXJzaW9uZWQgZnVuY3Rpb24gREVDTC4K ICAgIENhbGxzIHRvIERFQ0wgZnVuY3Rpb24gd2lsbCBiZSByZXBsYWNlZCB3 aXRoIGNhbGxzIHRvIHRoZSBkaXNwYXRjaGVyCkBAIC0yOTIxMyw3ICsyOTIx Myw3IEBAIGl4ODZfZ2V0X2Z1bmN0aW9uX3ZlcnNpb25zX2Rpc3BhdGNoZXIg KHZvaWQgKmRlY2wpCiAKICAgdHJlZSBkaXNwYXRjaF9kZWNsID0gTlVMTDsK IAotI2lmIGRlZmluZWQgKEFTTV9PVVRQVVRfVFlQRV9ESVJFQ1RJVkUpICYm IEhBVkVfR05VX0lORElSRUNUX0ZVTkNUSU9OCisjaWYgZGVmaW5lZCAoQVNN X09VVFBVVF9UWVBFX0RJUkVDVElWRSkKICAgc3RydWN0IGNncmFwaF9mdW5j dGlvbl92ZXJzaW9uX2luZm8gKml0X3YgPSBOVUxMOwogICBzdHJ1Y3QgY2dy YXBoX25vZGUgKmRpc3BhdGNoZXJfbm9kZSA9IE5VTEw7CiAgIHN0cnVjdCBj Z3JhcGhfZnVuY3Rpb25fdmVyc2lvbl9pbmZvICpkaXNwYXRjaGVyX3ZlcnNp b25faW5mbyA9IE5VTEw7CkBAIC0yOTI2MywyNCArMjkyNjMsMzMgQEAgaXg4 Nl9nZXRfZnVuY3Rpb25fdmVyc2lvbnNfZGlzcGF0Y2hlciAodm9pZCAqZGVj bCkKIAogICBkZWZhdWx0X25vZGUgPSBkZWZhdWx0X3ZlcnNpb25faW5mby0+ dGhpc19ub2RlOwogCi0jaWYgZGVmaW5lZCAoQVNNX09VVFBVVF9UWVBFX0RJ UkVDVElWRSkgJiYgSEFWRV9HTlVfSU5ESVJFQ1RfRlVOQ1RJT04KLSAgLyog UmlnaHQgbm93LCB0aGUgZGlzcGF0Y2hpbmcgaXMgZG9uZSB2aWEgaWZ1bmMu ICAqLwotICBkaXNwYXRjaF9kZWNsID0gbWFrZV9kaXNwYXRjaGVyX2RlY2wg KGRlZmF1bHRfbm9kZS0+c3ltYm9sLmRlY2wpOwotCi0gIGRpc3BhdGNoZXJf bm9kZSA9IGNncmFwaF9nZXRfY3JlYXRlX25vZGUgKGRpc3BhdGNoX2RlY2wp OwotICBnY2NfYXNzZXJ0IChkaXNwYXRjaGVyX25vZGUgIT0gTlVMTCk7Ci0g IGRpc3BhdGNoZXJfbm9kZS0+ZGlzcGF0Y2hlcl9mdW5jdGlvbiA9IDE7Ci0g IGRpc3BhdGNoZXJfdmVyc2lvbl9pbmZvCi0gICAgPSBpbnNlcnRfbmV3X2Nn cmFwaF9ub2RlX3ZlcnNpb24gKGRpc3BhdGNoZXJfbm9kZSk7Ci0gIGRpc3Bh dGNoZXJfdmVyc2lvbl9pbmZvLT5uZXh0ID0gZGVmYXVsdF92ZXJzaW9uX2lu Zm87Ci0gIGRpc3BhdGNoZXJfbm9kZS0+bG9jYWwuZmluYWxpemVkID0gMTsK LQotICAvKiBTZXQgdGhlIGRpc3BhdGNoZXIgZm9yIGFsbCB0aGUgdmVyc2lv bnMuICAqLwotICBpdF92ID0gZGVmYXVsdF92ZXJzaW9uX2luZm87Ci0gIHdo aWxlIChpdF92LT5uZXh0ICE9IE5VTEwpCisjaWYgZGVmaW5lZCAoQVNNX09V VFBVVF9UWVBFX0RJUkVDVElWRSkKKyAgaWYgKFRBUkdFVF9IQVNfSUZVTkMp CisgICAgeworICAgICAgLyogUmlnaHQgbm93LCB0aGUgZGlzcGF0Y2hpbmcg aXMgZG9uZSB2aWEgaWZ1bmMuICAqLworICAgICAgZGlzcGF0Y2hfZGVjbCA9 IG1ha2VfZGlzcGF0Y2hlcl9kZWNsIChkZWZhdWx0X25vZGUtPnN5bWJvbC5k ZWNsKTsKKworICAgICAgZGlzcGF0Y2hlcl9ub2RlID0gY2dyYXBoX2dldF9j cmVhdGVfbm9kZSAoZGlzcGF0Y2hfZGVjbCk7CisgICAgICBnY2NfYXNzZXJ0 IChkaXNwYXRjaGVyX25vZGUgIT0gTlVMTCk7CisgICAgICBkaXNwYXRjaGVy X25vZGUtPmRpc3BhdGNoZXJfZnVuY3Rpb24gPSAxOworICAgICAgZGlzcGF0 Y2hlcl92ZXJzaW9uX2luZm8KKwk9IGluc2VydF9uZXdfY2dyYXBoX25vZGVf dmVyc2lvbiAoZGlzcGF0Y2hlcl9ub2RlKTsKKyAgICAgIGRpc3BhdGNoZXJf dmVyc2lvbl9pbmZvLT5uZXh0ID0gZGVmYXVsdF92ZXJzaW9uX2luZm87Cisg ICAgICBkaXNwYXRjaGVyX25vZGUtPmxvY2FsLmZpbmFsaXplZCA9IDE7CisK KyAgICAgIC8qIFNldCB0aGUgZGlzcGF0Y2hlciBmb3IgYWxsIHRoZSB2ZXJz aW9ucy4gICovCisgICAgICBpdF92ID0gZGVmYXVsdF92ZXJzaW9uX2luZm87 CisgICAgICB3aGlsZSAoaXRfdi0+bmV4dCAhPSBOVUxMKQorCXsKKwkgIGl0 X3YtPmRpc3BhdGNoZXJfcmVzb2x2ZXIgPSBkaXNwYXRjaF9kZWNsOworCSAg aXRfdiA9IGl0X3YtPm5leHQ7CisJfQorICAgIH0KKyAgZWxzZQogICAgIHsK LSAgICAgIGl0X3YtPmRpc3BhdGNoZXJfcmVzb2x2ZXIgPSBkaXNwYXRjaF9k ZWNsOwotICAgICAgaXRfdiA9IGl0X3YtPm5leHQ7CisgICAgICBlcnJvcl9h dCAoREVDTF9TT1VSQ0VfTE9DQVRJT04gKGRlZmF1bHRfbm9kZS0+c3ltYm9s LmRlY2wpLAorCQkibXVsdGl2ZXJzaW9uaW5nIG5lZWRzIGlmdW5jIHdoaWNo IGlzIG5vdCBzdXBwb3J0ZWQgIgorCQkib24gdGhpcyB0YXJnZXQiKTsKICAg ICB9CiAjZWxzZQogICBlcnJvcl9hdCAoREVDTF9TT1VSQ0VfTE9DQVRJT04g KGRlZmF1bHRfbm9kZS0+c3ltYm9sLmRlY2wpLApkaWZmIC0tZ2l0IGEvZ2Nj L2NvbmZpZy9saW51eC1hbmRyb2lkLmggYi9nY2MvY29uZmlnL2xpbnV4LWFu ZHJvaWQuaAppbmRleCBlNzRlMjYxLi5mNmY0NGYxIDEwMDY0NAotLS0gYS9n Y2MvY29uZmlnL2xpbnV4LWFuZHJvaWQuaAorKysgYi9nY2MvY29uZmlnL2xp bnV4LWFuZHJvaWQuaApAQCAtNTgsMyArNTgsNiBAQAogCiAjZGVmaW5lIEFO RFJPSURfRU5ERklMRV9TUEVDIFwKICAgIiV7c2hhcmVkOiBjcnRlbmRfc28l TyVzOzogY3J0ZW5kX2FuZHJvaWQlTyVzfSIKKworI3VuZGVmIFRBUkdFVF9I QVNfSUZVTkMKKyNkZWZpbmUgVEFSR0VUX0hBU19JRlVOQyAoIVRBUkdFVF9B TkRST0lEKQpkaWZmIC0tZ2l0IGEvZ2NjL2RlZmF1bHRzLmggYi9nY2MvZGVm YXVsdHMuaAppbmRleCA3NjkwOWFiLi4yMTgwYTQ3IDEwMDY0NAotLS0gYS9n Y2MvZGVmYXVsdHMuaAorKysgYi9nY2MvZGVmYXVsdHMuaApAQCAtMTExLDYg KzExMSwxMCBAQCBzZWUgdGhlIGZpbGVzIENPUFlJTkczIGFuZCBDT1BZSU5H LlJVTlRJTUUgcmVzcGVjdGl2ZWx5LiAgSWYgbm90LCBzZWUKICNlbmRpZgog I2VuZGlmCiAKKyNpZm5kZWYgVEFSR0VUX0hBU19JRlVOQworI2RlZmluZSBU QVJHRVRfSEFTX0lGVU5DIEhBVkVfR05VX0lORElSRUNUX0ZVTkNUSU9OCisj ZW5kaWYKKwogI2lmbmRlZiBJRlVOQ19BU01fVFlQRQogI2RlZmluZSBJRlVO Q19BU01fVFlQRSAiZ251X2luZGlyZWN0X2Z1bmN0aW9uIgogI2VuZGlmCmRp ZmYgLS1naXQgYS9nY2MvZG9jL3RtLnRleGkgYi9nY2MvZG9jL3RtLnRleGkK aW5kZXggNzVhYTg2Ny4uMWM4YmM1MSAxMDA2NDQKLS0tIGEvZ2NjL2RvYy90 bS50ZXhpCisrKyBiL2djYy9kb2MvdG0udGV4aQpAQCAtNTg0Nyw2ICs1ODQ3 LDEyIEBAIElmIEBjb2Rle0FTTV9PVVRQVVRfREVGfSBpcyBub3QgYXZhaWxh YmxlLCB0aGUgaG9vaydzIGRlZmF1bHQgZGVmaW5pdGlvbgogaXMgQGNvZGV7 TlVMTH0sIHdoaWNoIGRpc2FibGVzIHRoZSB1c2Ugb2Ygc2VjdGlvbiBhbmNo b3JzIGFsdG9nZXRoZXIuCiBAZW5kIGRlZnR5cGVmbgogCitAZGVmbWFjIFRB UkdFVF9IQVNfSUZVTkMKK1doZW4gdGhpcyBtYWNybyBpcyBub256ZXJvLCBH Q0Mgd2lsbCBhc3N1bWUgdGhhdCB0YXJnZXQgc3VwcG9ydHMgR05VIGluZGly ZWN0CitmdW5jdGlvbnMuICBUaGUgc3VwcG9ydCBpbmNsdWRlcyB0aGUgYXNz ZW1ibGVyLCBsaW5rZXIgYW5kIGR5bmFtaWMgbGlua2VyLiBUaGUKK2RlZmF1 bHQgdmFsdWUgb2YgdGhpcyBob29rIGlzIGRlZmluZWQgYXMgZm9yIHRoZSBo b3N0IG1hY2hpbmUuCitAZW5kIGRlZm1hYworCiBAZGVmdHlwZWZuIHtUYXJn ZXQgSG9va30gYm9vbCBUQVJHRVRfVVNFX0FOQ0hPUlNfRk9SX1NZTUJPTF9Q IChjb25zdF9ydHggQHZhcnt4fSkKIFJldHVybiB0cnVlIGlmIEdDQyBzaG91 bGQgYXR0ZW1wdCB0byB1c2UgYW5jaG9ycyB0byBhY2Nlc3MgQGNvZGV7U1lN Qk9MX1JFRn0KIEB2YXJ7eH0uICBZb3UgY2FuIGFzc3VtZSBAc2FtcHtTWU1C T0xfUkVGX0hBU19CTE9DS19JTkZPX1AgKEB2YXJ7eH0pfSBhbmQKZGlmZiAt LWdpdCBhL2djYy9kb2MvdG0udGV4aS5pbiBiL2djYy9kb2MvdG0udGV4aS5p bgppbmRleCA5NWZhYjE4Li5lMTY0NmI4IDEwMDY0NAotLS0gYS9nY2MvZG9j L3RtLnRleGkuaW4KKysrIGIvZ2NjL2RvYy90bS50ZXhpLmluCkBAIC01NzUx LDYgKzU3NTEsMTIgQEAgSWYgQGNvZGV7QVNNX09VVFBVVF9ERUZ9IGlzIG5v dCBhdmFpbGFibGUsIHRoZSBob29rJ3MgZGVmYXVsdCBkZWZpbml0aW9uCiBp cyBAY29kZXtOVUxMfSwgd2hpY2ggZGlzYWJsZXMgdGhlIHVzZSBvZiBzZWN0 aW9uIGFuY2hvcnMgYWx0b2dldGhlci4KIEBlbmQgZGVmdHlwZWZuCiAKK0Bk ZWZtYWMgVEFSR0VUX0hBU19JRlVOQworV2hlbiB0aGlzIG1hY3JvIGlzIG5v bnplcm8sIEdDQyB3aWxsIGFzc3VtZSB0aGF0IHRhcmdldCBzdXBwb3J0cyBH TlUgaW5kaXJlY3QKK2Z1bmN0aW9ucy4gIFRoZSBzdXBwb3J0IGluY2x1ZGVz IHRoZSBhc3NlbWJsZXIsIGxpbmtlciBhbmQgZHluYW1pYyBsaW5rZXIuIFRo ZQorZGVmYXVsdCB2YWx1ZSBvZiB0aGlzIGhvb2sgaXMgZGVmaW5lZCBhcyBm b3IgdGhlIGhvc3QgbWFjaGluZS4KK0BlbmQgZGVmbWFjCisKIEBob29rIFRB UkdFVF9VU0VfQU5DSE9SU19GT1JfU1lNQk9MX1AKIFJldHVybiB0cnVlIGlm IEdDQyBzaG91bGQgYXR0ZW1wdCB0byB1c2UgYW5jaG9ycyB0byBhY2Nlc3Mg QGNvZGV7U1lNQk9MX1JFRn0KIEB2YXJ7eH0uICBZb3UgY2FuIGFzc3VtZSBA c2FtcHtTWU1CT0xfUkVGX0hBU19CTE9DS19JTkZPX1AgKEB2YXJ7eH0pfSBh bmQKZGlmZiAtLWdpdCBhL2djYy92YXJhc20uYyBiL2djYy92YXJhc20uYwpp bmRleCA3ZDA4M2ZkLi4xNGJlOGZiIDEwMDY0NAotLS0gYS9nY2MvdmFyYXNt LmMKKysrIGIvZ2NjL3ZhcmFzbS5jCkBAIC01NDg5LDEwICs1NDg5LDE0IEBA IGRvX2Fzc2VtYmxlX2FsaWFzICh0cmVlIGRlY2wsIHRyZWUgdGFyZ2V0KQog ICAgIH0KICAgaWYgKGxvb2t1cF9hdHRyaWJ1dGUgKCJpZnVuYyIsIERFQ0xf QVRUUklCVVRFUyAoZGVjbCkpKQogICAgIHsKLSNpZiBkZWZpbmVkIChBU01f T1VUUFVUX1RZUEVfRElSRUNUSVZFKSAmJiBIQVZFX0dOVV9JTkRJUkVDVF9G VU5DVElPTgotICAgICAgQVNNX09VVFBVVF9UWVBFX0RJUkVDVElWRQotCShh c21fb3V0X2ZpbGUsIElERU5USUZJRVJfUE9JTlRFUiAoREVDTF9BU1NFTUJM RVJfTkFNRSAoZGVjbCkpLAotCSBJRlVOQ19BU01fVFlQRSk7CisjaWYgZGVm aW5lZCAoQVNNX09VVFBVVF9UWVBFX0RJUkVDVElWRSkKKyAgICAgIGlmIChU QVJHRVRfSEFTX0lGVU5DKQorCUFTTV9PVVRQVVRfVFlQRV9ESVJFQ1RJVkUK KwkgIChhc21fb3V0X2ZpbGUsIElERU5USUZJRVJfUE9JTlRFUiAoREVDTF9B U1NFTUJMRVJfTkFNRSAoZGVjbCkpLAorCSAgIElGVU5DX0FTTV9UWVBFKTsK KyAgICAgIGVsc2UKKwllcnJvcl9hdCAoREVDTF9TT1VSQ0VfTE9DQVRJT04g KGRlY2wpLAorCQkgICJpZnVuYyBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMg dGFyZ2V0Iik7CiAjZWxzZQogICAgICAgZXJyb3JfYXQgKERFQ0xfU09VUkNF X0xPQ0FUSU9OIChkZWNsKSwKIAkJImlmdW5jIGlzIG5vdCBzdXBwb3J0ZWQg aW4gdGhpcyBjb25maWd1cmF0aW9uIik7Cg== --047d7b33d1a66e4fd504d1c0631e--