From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot1-x335.google.com (mail-ot1-x335.google.com [IPv6:2607:f8b0:4864:20::335]) by sourceware.org (Postfix) with ESMTPS id 6406A387090F for ; Fri, 15 Jan 2021 00:08:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 6406A387090F Received: by mail-ot1-x335.google.com with SMTP id x13so6944929oto.8 for ; Thu, 14 Jan 2021 16:08:57 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=rJqJ1J7EJwpJMsHmSDSnsmzwxpqd1X3gcEpvT4C4c10=; b=bn1mcDzvEIV+ps2fmwLBPwh0KCrtGRmKnI9eGl5IpmmWqobVs4VzdP+tUwFn8SgR24 zG7Ib/uRWZFANeEjWwGJRgp6KIHWMT6HcLMDxFEriRWTSak9UYFh1FjXSUCUs8rW7C6J vEQtNtTYl5KfI+20wB+m42vBFDW8kKD/K13qZox559Tqu/yatEfddSx6NDHd7vsghZxf nOn8OZe8czlgbQyWSnbs1D5Zv5Txfwu+IAjZA6NLkv8a9tj4wf5QrFtvgrIwysrJRuAx 4hZKqxAUx4JSSIrNQt1EufDz/UB5DTewRIPvnohkmVjmEVfjeVhH/y7dS4eE+rW3oa1Y zbKg== X-Gm-Message-State: AOAM533kGk99imoiUgY/Vu2rL1tdI7mKSjjn3SfzhI5SKMZreBzBaRA1 PmmbcMy/str5c/IJjYdsqzYt45gAMbW4JbeTI3E= X-Google-Smtp-Source: ABdhPJxrw5dvKs3Z1SaDmvI/5vP7lHkIDKvK8qiO4KdwM1no6r7UJ7jjUXStMtZztNAkdwBUmCKLrVj8gi8mHfFpqVc= X-Received: by 2002:a05:6830:1d71:: with SMTP id l17mr6324838oti.269.1610669336758; Thu, 14 Jan 2021 16:08:56 -0800 (PST) MIME-Version: 1.0 References: <20210114210431.463242-1-hjl.tools@gmail.com> <20210114210431.463242-4-hjl.tools@gmail.com> <20210114230117.GD1034503@tucnak> In-Reply-To: <20210114230117.GD1034503@tucnak> From: "H.J. Lu" Date: Thu, 14 Jan 2021 16:08:20 -0800 Message-ID: Subject: V2 [PATCH 3/3] Build x86 libatomic with -march=i486 or better To: Jakub Jelinek Cc: GCC Patches , Uros Bizjak Content-Type: multipart/mixed; boundary="000000000000ab38e905b8e52dab" X-Spam-Status: No, score=-3036.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jan 2021 00:08:59 -0000 --000000000000ab38e905b8e52dab Content-Type: text/plain; charset="UTF-8" On Thu, Jan 14, 2021 at 3:01 PM Jakub Jelinek wrote: > > On Thu, Jan 14, 2021 at 01:04:31PM -0800, H.J. Lu via Gcc-patches wrote: > > If x86 libatomic isn't compiled with -march=i486 or better, append > > -march=i486 XCFLAGS for x86 libatomic build. Set try_ifunc to yes > > if -mcx16 isn't used to compile x86-64 libatomic or -march=i686 or > > better isn't used to compile x86 libatomic. > > > > PR target/70454 > > * configure.tgt (XCFLAGS): Append -march=i486 to compile x86 > > libatomic if needed. > > (try_ifunc): Set to yes only if needed. > > --- > > libatomic/configure.tgt | 73 ++++++++++++++++++++++++++++------------- > > 1 file changed, 50 insertions(+), 23 deletions(-) > > > > diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt > > index 2f24817b454..1f3a3ad6c7c 100644 > > --- a/libatomic/configure.tgt > > +++ b/libatomic/configure.tgt > > @@ -81,32 +81,59 @@ case "${target_cpu}" in > > ARCH=sparc > > ;; > > > > - i[3456]86) > > - case " ${CC} ${CFLAGS} " in > > - *" -m64 "*|*" -mx32 "*) > > - ;; > > - *) > > - if test -z "$with_arch"; then > > - XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}" > > - XCFLAGS="${XCFLAGS} -fomit-frame-pointer" > > - fi > > - esac > > - ARCH=x86 > > - # ??? Detect when -march=i686 is already enabled. > > - try_ifunc=yes > > - ;; > > - x86_64) > > - case " ${CC} ${CFLAGS} " in > > - *" -m32 "*) > > + i[3456]86 | x86_64) > > + # Need i486 or better. > > + cat > conftestx.c < > +#if defined __x86_64__ || defined __i486__ || defined __pentium__ \ > > + || defined __pentiumpro__ || defined __pentium4__ \ > > + || defined __geode__ || defined __SSE__ > > +# error Need i486 or better > > +#endif > > Rather than hoping we got all the defines right, wouldn't it be better to > compile with -S a testcase like: > int > foo (int *p, int x, int y) > { > return __sync_val_compare_and_swap (p, x, y); > } > and if there is __sync_val_compare_and_swap_4 in the assembly assume > -march=i486 needs to be added? > I.e. test for what exactly we need (working atomics). > > Jakub > Here is the updated patch. OK for master? Thanks. -- H.J. --000000000000ab38e905b8e52dab Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Build-x86-libatomic-with-march-i486-or-better.patch" Content-Disposition: attachment; filename="0001-Build-x86-libatomic-with-march-i486-or-better.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kjxiw3jm0 RnJvbSBmODQ3MTg1YzRmYWE5NGI2ZGJiNTIzMjdjMTNkNWQ1YmZlYzliMjU5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6 IE1vbiwgMiBNYXkgMjAxNiAwOTo0NDowNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEJ1aWxkIHg4 NiBsaWJhdG9taWMgd2l0aCAtbWFyY2g9aTQ4NiBvciBiZXR0ZXIKCklmIHg4NiBsaWJhdG9taWMg aXNuJ3QgY29tcGlsZWQgd2l0aCAtbWFyY2g9aTQ4NiBvciBiZXR0ZXIsIGFwcGVuZAotbWFyY2g9 aTQ4NiBYQ0ZMQUdTIGZvciB4ODYgbGliYXRvbWljIGJ1aWxkLiAgU2V0IHRyeV9pZnVuYyB0byB5 ZXMKaWYgLW1jeDE2IGlzbid0IHVzZWQgdG8gY29tcGlsZSB4ODYtNjQgbGliYXRvbWljIG9yIC1t YXJjaD1pNjg2IG9yCmJldHRlciBpc24ndCB1c2VkIHRvIGNvbXBpbGUgeDg2IGxpYmF0b21pYy4K CglQUiB0YXJnZXQvNzA0NTQKCSogY29uZmlndXJlLnRndCAoWENGTEFHUyk6IEFwcGVuZCAtbWFy Y2g9aTQ4NiB0byBjb21waWxlIHg4NgoJbGliYXRvbWljIGlmIG5lZWRlZC4KCSh0cnlfaWZ1bmMp OiBTZXQgdG8geWVzIG9ubHkgaWYgbmVlZGVkLgotLS0KIGxpYmF0b21pYy9jb25maWd1cmUudGd0 IHwgNzQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA1MSBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9s aWJhdG9taWMvY29uZmlndXJlLnRndCBiL2xpYmF0b21pYy9jb25maWd1cmUudGd0CmluZGV4IDJm MjQ4MTdiNDU0Li4zNTMwYzk5MjI2NCAxMDA2NDQKLS0tIGEvbGliYXRvbWljL2NvbmZpZ3VyZS50 Z3QKKysrIGIvbGliYXRvbWljL2NvbmZpZ3VyZS50Z3QKQEAgLTgxLDMyICs4MSw2MCBAQCBjYXNl ICIke3RhcmdldF9jcHV9IiBpbgogCUFSQ0g9c3BhcmMKIAk7OwogCi0gIGlbMzQ1Nl04NikKLQlj YXNlICIgJHtDQ30gJHtDRkxBR1N9ICIgaW4KLQkgICoiIC1tNjQgIip8KiIgLW14MzIgIiopCi0J ICAgIDs7Ci0JICAqKQotCSAgICBpZiB0ZXN0IC16ICIkd2l0aF9hcmNoIjsgdGhlbgotCSAgICAg IFhDRkxBR1M9IiR7WENGTEFHU30gLW1hcmNoPWk0ODYgLW10dW5lPSR7dGFyZ2V0X2NwdX0iCi0J ICAgICAgWENGTEFHUz0iJHtYQ0ZMQUdTfSAtZm9taXQtZnJhbWUtcG9pbnRlciIKLQkgICAgZmkK LQllc2FjCi0JQVJDSD14ODYKLQkjID8/PyBEZXRlY3Qgd2hlbiAtbWFyY2g9aTY4NiBpcyBhbHJl YWR5IGVuYWJsZWQuCi0JdHJ5X2lmdW5jPXllcwotCTs7Ci0gIHg4Nl82NCkKLQljYXNlICIgJHtD Q30gJHtDRkxBR1N9ICIgaW4KLQkgICoiIC1tMzIgIiopCisgIGlbMzQ1Nl04NiB8IHg4Nl82NCkK KwkjIE5lZWQgaTQ4NiBvciBiZXR0ZXIuCisJY2F0ID4gY29uZnRlc3R4LmMgPDxFT0YKK2ludAor Zm9vIChpbnQgKnAsIGludCB4LCBpbnQgeSkKK3sKKyAgcmV0dXJuIF9fc3luY192YWxfY29tcGFy ZV9hbmRfc3dhcCAocCwgeCwgeSk7Cit9CitFT0YKKwlpZiAke0NDfSAke0NGTEFHU30gLVMgY29u ZnRlc3R4LmMgPiAvZGV2L251bGwgMj4mMSBcCisJICAgJiYgZ3JlcCAtcSBfX3N5bmNfdmFsX2Nv bXBhcmVfYW5kX3N3YXAgY29uZnRlc3R4LnMgL2Rldi9udWxsOyB0aGVuCisJICBpZiB0ZXN0ICIk e3RhcmdldF9jcHV9IiA9IHg4Nl82NDsgdGhlbgogCSAgICBYQ0ZMQUdTPSIke1hDRkxBR1N9IC1t YXJjaD1pNDg2IC1tdHVuZT1nZW5lcmljIgogCSAgICBYQ0ZMQUdTPSIke1hDRkxBR1N9IC1mb21p dC1mcmFtZS1wb2ludGVyIgotCSAgICA7OwotCSAgKikKLQkgICAgOzsKLQllc2FjCisJICBlbHNl CisJICAgIFhDRkxBR1M9IiR7WENGTEFHU30gLW1hcmNoPWk0ODYgLW10dW5lPSR7dGFyZ2V0X2Nw dX0iCisJICAgIFhDRkxBR1M9IiR7WENGTEFHU30gLWZvbWl0LWZyYW1lLXBvaW50ZXIiCisJICBm aQorCWZpCisJIyBEZXRlY3QgaWYgLW1hcmNoPWk2ODYvLW1jeDE2IGlzIGFscmVhZHkgZW5hYmxl ZC4KKwljYXQgPiBjb25mdGVzdHguYyA8PEVPRgorI2lmIGRlZmluZWQgX194ODZfNjRfXworX19p bnQxMjhfdCB2ID0gMDsKK19faW50MTI4X3QgZXhwZWN0ZWQgPSAwOworX19pbnQxMjhfdCBtYXgg PSB+MDsKK19faW50MTI4X3QgZGVzaXJlZCA9IH4wOworX19pbnQxMjhfdCB6ZXJvID0gMDsKKwor aW50Citmb28gKHZvaWQpCit7CisgIHJldHVybiAhX19hdG9taWNfY29tcGFyZV9leGNoYW5nZV9u ICgmdiwgJmV4cGVjdGVkLCBtYXgsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBfX0FUT01JQ19SRUxBWEVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgX19BVE9NSUNfUkVMQVhFRCk7Cit9CisjZWxzZQorIyBpZiBkZWZpbmVkIF9fcGVu dGl1bXByb19fIHx8IGRlZmluZWQgX19wZW50aXVtNF9fIHx8IGRlZmluZWQgX19TU0VfXworYXNt ICgiIyBoYXMgaTY4NiIpOworIyBlbmRpZgorI2VuZGlmCitFT0YKKwlpZiAke0NDfSAke0NGTEFH U30gLVMgLW8gY29uZnRlc3R4LnMgY29uZnRlc3R4LmMgPiAvZGV2L251bGwgMj4mMTsgdGhlbgor CSAgaWYgZ3JlcCBjbXB4Y2hnMTZiIGNvbmZ0ZXN0eC5zID4vZGV2L251bGw7IHRoZW4KKwkgICAg IyBUaGlzIGlzIHRoZSA2NC1iaXQgbGlicmFyeS4KKwkgICAgdHJ5X2lmdW5jPW5vCisJICBlbGlm IGdyZXAgaTY4NiBjb25mdGVzdHgucyA+L2Rldi9udWxsOyB0aGVuCisJICAgICMgVGhpcyBpcyB0 aGUgMzItYml0IGxpYnJhcnkuCisJICAgIHRyeV9pZnVuYz1ubworCSAgZWxzZQorCSAgICB0cnlf aWZ1bmM9eWVzCisJICBmaQorCWZpCisJcm0gLWYgY29uZnRlc3R4LmMgY29uZnRlc3R4LnMKIAlB UkNIPXg4NgotCSMgPz8/IERldGVjdCB3aGVuIC1tY3gxNiBpcyBhbHJlYWR5IGVuYWJsZWQuCi0J dHJ5X2lmdW5jPXllcwogCTs7CiAKICAgKikJCQlBUkNIPSIke3RhcmdldF9jcHV9IiA7OwotLSAK Mi4yOS4yCgo= --000000000000ab38e905b8e52dab--