On Wed, Apr 20, 2016 at 12:02 AM, Uros Bizjak <ubiz...@gmail.com> wrote: >> >> That is why I submitted my patches. Since -m32 passes -march=x86-64 >> to cc1 on x86-64, we shouldn't pass -march=i486 to cc1. It is undesirable >> especially when --with-arch= is used. I noticed the issue when 32-bit >> libatomic/libgomp/libitm weren't optimized with -march=haswell when GCC >> was configured with --with-arch=haswell > > OK then. IMO, following comment is more informative: > > # x86_64 compiler passes -march=x86_64 by default when building 32bit > target libraries. > >>>>>>>> + # Since 64-bit arch > i486, we can use the same -march= to >>>>>>>> build >>>>>>>> + # both 32-bit and 64-bit target libraries. > > OK with the above change. >
This is the patch I checked in. I also updated patches for libgomp: https://gcc.gnu.org/ml/gcc-patches/2016-04/msg01079.html and libitm: https://gcc.gnu.org/ml/gcc-patches/2016-04/msg01080.html Thanks. -- H.J.
From bafad333cdf4125bf245e05d82df824ffb62c9d5 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" <hjl.to...@gmail.com> Date: Wed, 30 Mar 2016 05:51:28 -0700 Subject: [PATCH 1/3] Don't build 32-bit libatomic with -march=i486 on x86-64 Gcc uses the same -march= for both -m32 and -m64 on x86-64 unless --with-arch-32= is used. There is no need for -march=i486 to compile 32-bit libatomic on x86-64. PR target/70454 * configure.tgt (XCFLAGS): Don't add -march=i486 to compile 32-bit x86 target library on x86-64. --- libatomic/configure.tgt | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt index c5470d7..49233a4 100644 --- a/libatomic/configure.tgt +++ b/libatomic/configure.tgt @@ -81,14 +81,8 @@ case "${target_cpu}" in try_ifunc=yes ;; x86_64) - case " ${CC} ${CFLAGS} " in - *" -m32 "*) - XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic" - XCFLAGS="${XCFLAGS} -fomit-frame-pointer" - ;; - *) - ;; - esac + # x86_64 compiler passes -march=x86_64 by default when building + # 32bit target libraries. ARCH=x86 # ??? Detect when -mcx16 is already enabled. try_ifunc=yes -- 2.5.5