This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] target/65286 - Disable multilib for ppc64le


On 2015.03.10 at 08:56 +0100, Jakub Jelinek wrote:
> On Tue, Mar 10, 2015 at 08:32:59AM +0100, Markus Trippelsdorf wrote:
> > On 2015.03.10 at 17:58 +1030, Alan Modra wrote:
> > > On Tue, Mar 10, 2015 at 07:13:48AM +0100, Markus Trippelsdorf wrote:
> > > > This patch breaks the build on ppc64le:
> > > 
> > > Works for me with your configure options.
> > > 
> > > > trippels@gcc2-power8 gcc_build_dir % ../gcc/configure --with-cpu=power8 --disable-libsanitizer --disable-bootstrap --disable-libstdcxx-pch --disable-libvtv --disable-libitm --disable-libcilkrts --disable-libssp --disable-libgomp --disable-werror --disable-multilib --enable-languages=c,c++
> > > 
> > > At a guess, you're trying to build without glibc installed.  If so,
> > > you'll also need --disable-shared.  I'm a bit surprised if you could
> > > do that before my patch.
> > 
> > No, glibc is installed.
> > 
> > > > There is a ppc64le compile farm machine available @gcc2-2-power8.osuosl.org.
> > > 
> > > I would be greedy to load the compile farm when I can use internal IBM
> > > machines.  :)
> > 
> > I mentioned the machine, because it runs Fedora 21 and you have tested
> > only on Ubuntu.
> 
> Yeah, please see
> https://gcc.gnu.org/ml/gcc-patches/2013-03/msg00288.html
> for similar issue on aarch64.
> You really don't want to use MULTIARCH_DIRNAME for the powerpc64le* case,
> as that will work only with the Debian/Ubuntu mess.
> You want to define MULTILIB_OSDIRNAMES instead.
> 
> So perhaps something like completely untested following patch?
> 
> --- gcc/config/rs6000/t-linux.jj	2015-03-10 07:27:43.734454250 +0100
> +++ gcc/config/rs6000/t-linux	2015-03-10 08:52:54.268126702 +0100
> @@ -2,7 +2,7 @@
>  # or soft-float.
>  ifeq (,$(filter $(with_cpu),$(SOFT_FLOAT_CPUS))$(findstring soft,$(with_float)))
>  ifneq (,$(findstring powerpc64,$(target)))
> -MULTIARCH_DIRNAME := powerpc64-linux-gnu
> +MULTILIB_OSDIRNAMES := .=../lib64$(call if_multiarch,:powerpc64-linux-gnu)
>  else
>  ifneq (,$(findstring spe,$(target)))
>  MULTIARCH_DIRNAME := powerpc-linux-gnuspe$(if $(findstring 8548,$(with_cpu)),,v1)
> @@ -10,9 +10,12 @@ else
>  MULTIARCH_DIRNAME := powerpc-linux-gnu
>  endif
>  endif
> -ifneq (,$(findstring powerpcle,$(target))$(findstring powerpc64le,$(target)))
> +ifneq (,$(findstring powerpcle,$(target)))
>  MULTIARCH_DIRNAME := $(subst -linux,le-linux,$(MULTIARCH_DIRNAME))
>  endif
> +ifneq (,$(findstring powerpc64le,$(target)))
> +MULTILIB_OSDIRNAMES := $(subst -linux,le-linux,$(MULTILIB_OSDIRNAMES))
> +endif
>  endif
>  
>  rs6000-linux.o: $(srcdir)/config/rs6000/rs6000-linux.c
> 
> Of course, needs testing on standard multilib distros and Debian/Ubuntu
> multiarch.

The patch fixes the issue for me.
Thanks.

-- 
Markus


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]