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 <[email protected]> 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