From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25921 invoked by alias); 5 Sep 2013 12:56:10 -0000 Mailing-List: contact libc-ports-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: libc-ports-owner@sourceware.org Received: (qmail 25909 invoked by uid 89); 5 Sep 2013 12:56:10 -0000 Received: from mail-pd0-f180.google.com (HELO mail-pd0-f180.google.com) (209.85.192.180) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Thu, 05 Sep 2013 12:56:10 +0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,KHOP_THREADED,NO_RELAYS autolearn=ham version=3.3.2 X-HELO: mail-pd0-f180.google.com Received: by mail-pd0-f180.google.com with SMTP id y10so1745670pdj.39 for ; Thu, 05 Sep 2013 05:56:07 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.68.197.36 with SMTP id ir4mr9030606pbc.96.1378385767455; Thu, 05 Sep 2013 05:56:07 -0700 (PDT) Received: by 10.70.19.3 with HTTP; Thu, 5 Sep 2013 05:56:07 -0700 (PDT) In-Reply-To: References: Date: Thu, 05 Sep 2013 12:56:00 -0000 Message-ID: Subject: Re: [Patch] ARM define atomic_exchange_acq/atomic_exchange_rel to __atomic_exchange_n From: Dinar Temirbulatov To: "Joseph S. Myers" Cc: libc-ports@sourceware.org, adeb@nvidia.com, Maxim Kuvyrkov Content-Type: multipart/mixed; boundary=e89a8ff1c8400861ae04e5a272f5 X-SW-Source: 2013-09/txt/msg00044.txt.bz2 --e89a8ff1c8400861ae04e5a272f5 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 2450 Hi, Here is updated version of change. Ok to commit? thanks, Dinar. On Mon, Sep 2, 2013 at 7:08 PM, Joseph S. Myers wrote: > On Mon, 2 Sep 2013, Dinar Temirbulatov wrote: > >> Hi, >> Another version of change, I added >> atomic_compare_and_exchange_val_acq/atomic_compare_and_exchange_val_rel >> and atomic_compare_and_exchange_bool_acq/atomic_compare_and_exchange_boot_rel >> defenitions and also for gcc-4.7 and higher in the case of unsupported >> atomic compare and swap operation, it uses the kernel helper inlines. >> Tested on arm a9 with no new regressions. Ok to commit? >> Oh, sorry. I missed to attach the change. Here it is. > > For subsequent patch revisions, please note there should be an extra space > after "#" for preprocessor directives inside #if conditionals, one per > level of #if nesting (other than toplevel multiple-inclusion guards) - > which means that if conditioning existing code, you need to adjust > directives inside that code. > > This patch appears to have too much duplication. For example, you > duplicate the definition of __arm_assisted_compare_and_exchange_val_32_acq > - but that should not need any extra conditionals at all (beyond the > existing #ifndef __arm_assisted_compare_and_exchange_val_32_acq), there's > no reason ever not to define it. Similarly, you duplicate > __arch_compare_and_exchange_val_64_acq, but with proper #if structure > there should only need to be one copy of the version that uses > __arm_link_error. > > What I think you should aim for is that each definition, or small group of > definitions, uses conditionals in the form > > #if __GNUC_PREREQ (4, 7) && defined __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 > /* Version using __atomic_*. */ > #elif defined __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 > /* Version using __sync_*. */ > #else > /* Version using __arm_assisted_*. */ > #endif > > with cases omitted if not useful for that particular macro (this may > include some macros not being defined at all in some cases). So don't > insert any global conditionals affecting all the existing definitions at > all - look at each block of conditionals and add a third case as needed, > along with any new macros (again with conditionals in that form) that are > appropriate. > > Where you use abort () in some definitions, use __arm_link_error () > instead, like for the existing definitions. > > -- > Joseph S. Myers > joseph@codesourcery.com --e89a8ff1c8400861ae04e5a272f5 Content-Type: application/octet-stream; name="arm_atomic7.patch" Content-Disposition: attachment; filename="arm_atomic7.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hl7z9rgz0 Content-length: 7536 LS0tIGdsaWJjLW9yaWcvcG9ydHMvc3lzZGVwcy9hcm0vYml0cy9hdG9taWMu aAkyMDEzLTA4LTE5IDIxOjQ2OjQ0LjU5MjczMTIxMCArMDQwMAorKysgZ2xp YmMvcG9ydHMvc3lzZGVwcy9hcm0vYml0cy9hdG9taWMuaAkyMDEzLTA5LTA1 IDE1OjUzOjUyLjc1MjgwMTUxNCArMDQwMApAQCAtMzUsOSArMzUsNiBAQCB0 eXBlZGVmIHVpbnRtYXhfdCB1YXRvbWljX21heF90OwogCiB2b2lkIF9fYXJt X2xpbmtfZXJyb3IgKHZvaWQpOwogCi0vKiBVc2UgdGhlIGF0b21pYyBidWls dGlucyBwcm92aWRlZCBieSBHQ0MgaW4gY2FzZSB0aGUgYmFja2VuZCBwcm92 aWRlcwotICAgYSBwYXR0ZXJuIHRvIGRvIHRoaXMgZWZmaWNpZW50bHkuICAq LwotCiAjaWZkZWYgX19HQ0NfSEFWRV9TWU5DX0NPTVBBUkVfQU5EX1NXQVBf NAogIyBkZWZpbmUgYXRvbWljX2Z1bGxfYmFycmllcigpIF9fc3luY19zeW5j aHJvbml6ZSAoKQogI2Vsc2UKQEAgLTUxLDI2ICs0OCwxMDcgQEAgdm9pZCBf X2FybV9saW5rX2Vycm9yICh2b2lkKTsKICMgZGVmaW5lIF9fYXJtX2Fzc2lz dGVkX2Z1bGxfYmFycmllcigpICBfX2FybV9saW5rX2Vycm9yKCkKICNlbmRp ZgogCi0vKiBBdG9taWMgY29tcGFyZSBhbmQgZXhjaGFuZ2UuICAqLworLyog VXNlIHRoZSBhdG9taWMgYnVpbHRpbnMgcHJvdmlkZWQgYnkgR0NDIGluIGNh c2UgdGhlIGJhY2tlbmQgcHJvdmlkZXMKKyAgIGEgcGF0dGVybiB0byBkbyB0 aGlzIGVmZmljaWVudGx5LiAgKi8KKyNpZiBfX0dOVUNfUFJFUkVRICg0LCA3 KSAmJiBkZWZpbmVkIF9fR0NDX0hBVkVfU1lOQ19DT01QQVJFX0FORF9TV0FQ XzQKIAotI2lmZGVmIF9fR0NDX0hBVkVfU1lOQ19DT01QQVJFX0FORF9TV0FQ XzQKLSMgZGVmaW5lIF9fYXJjaF9jb21wYXJlX2FuZF9leGNoYW5nZV92YWxf MzJfYWNxKG1lbSwgbmV3dmFsLCBvbGR2YWwpIFwKKyMgZGVmaW5lIGF0b21p Y19leGNoYW5nZV9hY3EobWVtLCB2YWx1ZSkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKKyAgX19hdG9taWNfdmFsX2J5c2l6ZSAoX19hcmNo X2V4Y2hhbmdlLCBpbnQsIG1lbSwgdmFsdWUsIF9fQVRPTUlDX0FDUVVJUkUp CisKKyMgZGVmaW5lIGF0b21pY19leGNoYW5nZV9yZWwobWVtLCB2YWx1ZSkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgX19hdG9taWNf dmFsX2J5c2l6ZSAoX19hcmNoX2V4Y2hhbmdlLCBpbnQsIG1lbSwgdmFsdWUs IF9fQVRPTUlDX1JFTEVBU0UpCisKKy8qIEF0b21pYyBleGNoYW5nZSAod2l0 aG91dCBjb21wYXJlKS4gICovCisKKyMgZGVmaW5lIF9fYXJjaF9leGNoYW5n ZV84X2ludChtZW0sIG5ld3ZhbCwgbW9kZWwpICAgICAgXAorICAoX19hcm1f bGlua19lcnJvciAoKSwgKHR5cGVvZigqbWVtKSkgMCkKKworIyBkZWZpbmUg X19hcmNoX2V4Y2hhbmdlXzE2X2ludChtZW0sIG5ld3ZhbCwgbW9kZWwpICAg ICBcCisgIChfX2FybV9saW5rX2Vycm9yICgpLCAodHlwZW9mKCptZW0pKSAw KQorCisjIGRlZmluZSBfX2FyY2hfZXhjaGFuZ2VfMzJfaW50KG1lbSwgbmV3 dmFsLCBtb2RlbCkgICAgIFwKKyAgX19hdG9taWNfZXhjaGFuZ2VfbiAobWVt LCBuZXd2YWwsIG1vZGVsKQorCisjIGRlZmluZSBfX2FyY2hfZXhjaGFuZ2Vf NjRfaW50KG1lbSwgbmV3dmFsLCBtb2RlbCkgICAgIFwKKyAgKF9fYXJtX2xp bmtfZXJyb3IgKCksICh0eXBlb2YoKm1lbSkpIDApCisKKy8qIENvbXBhcmUg YW5kIGV4Y2hhbmdlIHdpdGggImFjcXVpcmUiIHNlbWFudGljcywgaWUgYmFy cmllciBhZnRlci4gICovCisKKyMgZGVmaW5lIGF0b21pY19jb21wYXJlX2Fu ZF9leGNoYW5nZV9ib29sX2FjcShtZW0sIG5ldywgb2xkKSAgICBcCisgIF9f YXRvbWljX2Jvb2xfYnlzaXplIChfX2FyY2hfY29tcGFyZV9hbmRfZXhjaGFu Z2VfYm9vbCwgaW50LCAgXAorICAgICAgICAgICAgICAgICAgICAgICAgbWVt LCBuZXcsIG9sZCwgX19BVE9NSUNfQUNRVUlSRSkKKworIyBkZWZpbmUgYXRv bWljX2NvbXBhcmVfYW5kX2V4Y2hhbmdlX3ZhbF9hY3EobWVtLCBuZXcsIG9s ZCkgICAgIFwKKyAgX19hdG9taWNfdmFsX2J5c2l6ZSAoX19hcmNoX2NvbXBh cmVfYW5kX2V4Y2hhbmdlX3ZhbCwgaW50LCAgICBcCisgICAgICAgICAgICAg ICAgICAgICAgIG1lbSwgbmV3LCBvbGQsIF9fQVRPTUlDX0FDUVVJUkUpCisK Ky8qIENvbXBhcmUgYW5kIGV4Y2hhbmdlIHdpdGggInJlbGVhc2UiIHNlbWFu dGljcywgaWUgYmFycmllciBiZWZvcmUuICAqLworCisjIGRlZmluZSBhdG9t aWNfY29tcGFyZV9hbmRfZXhjaGFuZ2VfYm9vbF9yZWwobWVtLCBuZXcsIG9s ZCkgICAgXAorICBfX2F0b21pY19ib29sX2J5c2l6ZSAoX19hcmNoX2NvbXBh cmVfYW5kX2V4Y2hhbmdlX2Jvb2wsIGludCwgIFwKKyAgICAgICAgICAgICAg ICAgICAgICAgIG1lbSwgbmV3LCBvbGQsIF9fQVRPTUlDX1JFTEVBU0UpCisK KyMgZGVmaW5lIGF0b21pY19jb21wYXJlX2FuZF9leGNoYW5nZV92YWxfcmVs KG1lbSwgbmV3LCBvbGQpICAgICAgXAorICBfX2F0b21pY192YWxfYnlzaXpl IChfX2FyY2hfY29tcGFyZV9hbmRfZXhjaGFuZ2VfdmFsLCBpbnQsICAgIFwK KyAgICAgICAgICAgICAgICAgICAgICAgbWVtLCBuZXcsIG9sZCwgX19BVE9N SUNfUkVMRUFTRSkKKworLyogQ29tcGFyZSBhbmQgZXhjaGFuZ2UuCisgICBG b3IgYWxsICJib29sIiByb3V0aW5lcywgd2UgcmV0dXJuIEZBTFNFIGlmIGV4 Y2hhbmdlIHN1Y2Nlc2Z1bC4gICovCisKKyMgZGVmaW5lIF9fYXJjaF9jb21w YXJlX2FuZF9leGNoYW5nZV9ib29sXzhfaW50KG1lbSwgbmV3dmFsLCBvbGR2 YWwsIG1vZGVsKSBcCisgICh7X19hcm1fbGlua19lcnJvciAoKTsgb2xkdmFs OyB9KQorCisjIGRlZmluZSBfX2FyY2hfY29tcGFyZV9hbmRfZXhjaGFuZ2Vf Ym9vbF8xNl9pbnQobWVtLCBuZXd2YWwsIG9sZHZhbCwgbW9kZWwpIFwKKyAg KHtfX2FybV9saW5rX2Vycm9yICgpOyBvbGR2YWw7IH0pCisKKyMgZGVmaW5l IF9fYXJjaF9jb21wYXJlX2FuZF9leGNoYW5nZV9ib29sXzMyX2ludChtZW0s IG5ld3ZhbCwgb2xkdmFsLCBtb2RlbCkgXAorICAoeyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorICAgIHR5cGVvZiAoKm1lbSkgX19vbGR2YWwgPSAob2xk dmFsKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg ICFfX2F0b21pY19jb21wYXJlX2V4Y2hhbmdlX24gKG1lbSwgKHZvaWQgKikg Jl9fb2xkdmFsLCBuZXd2YWwsIDAsICAgXAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG1vZGVsLCBfX0FUT01JQ19SRUxBWEVEKTsgICAg ICAgICAgICAgXAorICB9KQorCisjIGRlZmluZSBfX2FyY2hfY29tcGFyZV9h bmRfZXhjaGFuZ2VfYm9vbF82NF9pbnQobWVtLCBuZXd2YWwsIG9sZHZhbCwg bW9kZWwpIFwKKyAgKHtfX2FybV9saW5rX2Vycm9yICgpOyBvbGR2YWw7IH0p CisKKyMgZGVmaW5lIF9fYXJjaF9jb21wYXJlX2FuZF9leGNoYW5nZV92YWxf OF9pbnQobWVtLCBuZXd2YWwsIG9sZHZhbCwgbW9kZWwpIFwKKyAgKHtfX2Fy bV9saW5rX2Vycm9yICgpOyBvbGR2YWw7IH0pCisKKyMgZGVmaW5lIF9fYXJj aF9jb21wYXJlX2FuZF9leGNoYW5nZV92YWxfMTZfaW50KG1lbSwgbmV3dmFs LCBvbGR2YWwsIG1vZGVsKSBcCisgICh7X19hcm1fbGlua19lcnJvciAoKTsg b2xkdmFsOyB9KQorCisjIGRlZmluZSBfX2FyY2hfY29tcGFyZV9hbmRfZXhj aGFuZ2VfdmFsXzMyX2ludChtZW0sIG5ld3ZhbCwgb2xkdmFsLCBtb2RlbCkg XAorICAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHR5cGVvZiAo Km1lbSkgX19vbGR2YWwgPSAob2xkdmFsKTsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorICAgIF9fYXRvbWljX2NvbXBhcmVfZXhjaGFu Z2VfbiAobWVtLCAodm9pZCAqKSAmX19vbGR2YWwsIG5ld3ZhbCwgMCwgICAg XAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZWwsIF9f QVRPTUlDX1JFTEFYRUQpOyAgICAgICAgICAgICAgXAorICAgIF9fb2xkdmFs OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorICB9KQorCisjIGRlZmluZSBfX2FyY2hfY29t cGFyZV9hbmRfZXhjaGFuZ2VfdmFsXzY0X2ludChtZW0sIG5ld3ZhbCwgb2xk dmFsLCBtb2RlbCkgXAorICAoe19fYXJtX2xpbmtfZXJyb3IgKCk7IG9sZHZh bDsgfSkKKworI2VsaWYgZGVmaW5lZCBfX0dDQ19IQVZFX1NZTkNfQ09NUEFS RV9BTkRfU1dBUF80CisvKiBBdG9taWMgY29tcGFyZSBhbmQgZXhjaGFuZ2Uu ICAqLworIyBkZWZpbmUgX19hcmNoX2NvbXBhcmVfYW5kX2V4Y2hhbmdlX3Zh bF8zMl9hY3EobWVtLCBuZXd2YWwsIG9sZHZhbCkgXCQgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAogICBfX3N5bmNfdmFsX2NvbXBhcmVf YW5kX3N3YXAgKChtZW0pLCAob2xkdmFsKSwgKG5ld3ZhbCkpCiAjZWxzZQog IyBkZWZpbmUgX19hcmNoX2NvbXBhcmVfYW5kX2V4Y2hhbmdlX3ZhbF8zMl9h Y3EobWVtLCBuZXd2YWwsIG9sZHZhbCkgXAogICBfX2FybV9hc3Npc3RlZF9j b21wYXJlX2FuZF9leGNoYW5nZV92YWxfMzJfYWNxICgobWVtKSwgKG5ld3Zh bCksIChvbGR2YWwpKQogI2VuZGlmCiAKKyNpZiAhX19HTlVDX1BSRVJFUSAo NCwgNykgfHwgIWRlZmluZWQgKF9fR0NDX0hBVkVfU1lOQ19DT01QQVJFX0FO RF9TV0FQXzQpCiAvKiBXZSBkb24ndCBzdXBwb3J0IGF0b21pYyBvcGVyYXRp b25zIG9uIGFueSBub24td29yZCB0eXBlcy4KICAgIFNvIG1ha2UgdGhlbSBs aW5rIGVycm9ycy4gICovCi0jZGVmaW5lIF9fYXJjaF9jb21wYXJlX2FuZF9l eGNoYW5nZV92YWxfOF9hY3EobWVtLCBuZXd2YWwsIG9sZHZhbCkgXAorIyBk ZWZpbmUgX19hcmNoX2NvbXBhcmVfYW5kX2V4Y2hhbmdlX3ZhbF84X2FjcSht ZW0sIG5ld3ZhbCwgb2xkdmFsKSBcCiAgICh7IF9fYXJtX2xpbmtfZXJyb3Ig KCk7IG9sZHZhbDsgfSkKIAotI2RlZmluZSBfX2FyY2hfY29tcGFyZV9hbmRf ZXhjaGFuZ2VfdmFsXzE2X2FjcShtZW0sIG5ld3ZhbCwgb2xkdmFsKSBcCisj IGRlZmluZSBfX2FyY2hfY29tcGFyZV9hbmRfZXhjaGFuZ2VfdmFsXzE2X2Fj cShtZW0sIG5ld3ZhbCwgb2xkdmFsKSBcCiAgICh7IF9fYXJtX2xpbmtfZXJy b3IgKCk7IG9sZHZhbDsgfSkKIAotI2RlZmluZSBfX2FyY2hfY29tcGFyZV9h bmRfZXhjaGFuZ2VfdmFsXzY0X2FjcShtZW0sIG5ld3ZhbCwgb2xkdmFsKSBc CisjIGRlZmluZSBfX2FyY2hfY29tcGFyZV9hbmRfZXhjaGFuZ2VfdmFsXzY0 X2FjcShtZW0sIG5ld3ZhbCwgb2xkdmFsKSBcCiAgICh7IF9fYXJtX2xpbmtf ZXJyb3IgKCk7IG9sZHZhbDsgfSkKKyNlbmRpZgogCiAvKiBBbiBPUy1zcGVj aWZpYyBiaXRzL2F0b21pYy5oIGZpbGUgd2lsbCBkZWZpbmUgdGhpcyBtYWNy byBpZgogICAgdGhlIE9TIGNhbiBwcm92aWRlIHNvbWV0aGluZy4gIElmIG5v dCwgd2UnbGwgZmFpbCB0byBidWlsZAo= --e89a8ff1c8400861ae04e5a272f5--