From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg1-x531.google.com (mail-pg1-x531.google.com [IPv6:2607:f8b0:4864:20::531]) by sourceware.org (Postfix) with ESMTPS id CBE483951C71 for ; Thu, 14 Jan 2021 21:04:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org CBE483951C71 Received: by mail-pg1-x531.google.com with SMTP id n25so4624805pgb.0 for ; Thu, 14 Jan 2021 13:04:38 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=yJ4jq+o+4q++4PryO8cG/hEYuc/tUwEF1Qpc+i8yoRQ=; b=BkDN0ihwLw0DR6MHOaqVmoJ8FZ2O2fe3Rb2q/9L6GdH/TfQweyQAF0qCi8OjnlRJ9f PKK69GT/vMn2LrGPFVGhQD7OHXIcD8qFw7aXw/JqSpLCOUwCj9Hn0eRZKqZLk8I+okJS lqy5HDeRJtrqC8MAu2FgOcKuG+8WQq9jLs5e/Bv83vve730QfREcso9eAquQWDDay8Zb S9aQZgMV6YeSgIaq/dfHKR6UbU5SaeBpKpisYyzOE1+kt9aloYBpNGurhugDKf1fc9YW 7l6LiaqbZVN4Eb0IVODgNYSwsXK+RDOq/ZRSWgQKXLWvXtpq5J1ZC6RxBCO4KOKsxPB8 JSow== X-Gm-Message-State: AOAM533B3oiQ5yfypORKGFTSYsm8LeYqb03YijlfYmrPznKWK1Y1U0QK VXyzc4qIuybRQnyG9uHcND81MLXyIrQ= X-Google-Smtp-Source: ABdhPJxcLvq0EeWhDieiIe3WcE4EQsqZegD0jL0wq9H696uKm3I9ZzVa3rhpYPnskQIzuGduyRSGRw== X-Received: by 2002:a63:d917:: with SMTP id r23mr9470126pgg.126.1610658277629; Thu, 14 Jan 2021 13:04:37 -0800 (PST) Received: from gnu-cfl-2.localdomain (c-69-181-90-243.hsd1.ca.comcast.net. [69.181.90.243]) by smtp.gmail.com with ESMTPSA id g85sm6008217pfb.4.2021.01.14.13.04.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Jan 2021 13:04:35 -0800 (PST) Received: from gnu-cfl-2.localdomain (localhost [IPv6:::1]) by gnu-cfl-2.localdomain (Postfix) with ESMTP id 302F21A0948; Thu, 14 Jan 2021 13:04:34 -0800 (PST) From: "H.J. Lu" To: gcc-patches@gcc.gnu.org Cc: Uros Bizjak , Jakub Jelinek Subject: [PATCH 3/3] Build x86 libatomic with -march=i486 or better Date: Thu, 14 Jan 2021 13:04:31 -0800 Message-Id: <20210114210431.463242-4-hjl.tools@gmail.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210114210431.463242-1-hjl.tools@gmail.com> References: <20210114210431.463242-1-hjl.tools@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-3039.6 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: Thu, 14 Jan 2021 21:04:40 -0000 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 < /dev/null 2>&1; then + if test "${target_cpu}" = x86_64; then XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic" XCFLAGS="${XCFLAGS} -fomit-frame-pointer" - ;; - *) - ;; - esac + else + XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}" + XCFLAGS="${XCFLAGS} -fomit-frame-pointer" + fi + fi + # Detect if -march=i686/-mcx16 is already enabled. + cat > conftestx.c < /dev/null 2>&1; then + if ${GREP} cmpxchg16b conftestx.s >/dev/null; then + # This is the 64-bit library. + try_ifunc=no + elif ${GREP} i686 conftestx.s >/dev/null; then + # This is the 32-bit library. + try_ifunc=no + else + try_ifunc=yes + fi + fi + rm -f conftestx.c conftestx.o conftestx.s ARCH=x86 - # ??? Detect when -mcx16 is already enabled. - try_ifunc=yes ;; *) ARCH="${target_cpu}" ;; -- 2.29.2