On Wed, Apr 20, 2016 at 07:45:44AM -0700, H.J. Lu wrote: > 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
This is wrong, see my other comment on the libgomp patch. > 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 Jakub