Re: [patch] set MULTIARCH_DIRNAME for multilib architectures
On Wed, Nov 27, 2013 at 12:55:54PM +0100, Bernhard Reutner-Fischer wrote: > On 27 November 2013 11:10, Aurelien Jarno wrote: > > On Thu, Jun 20, 2013 at 02:26:12PM +0200, Matthias Klose wrote: > >> Am 13.06.2013 11:42, schrieb Richard Sandiford: > >> > "Bernhard Reutner-Fischer" writes: > >> >> On 12 June 2013 20:20:50 Richard Sandiford > >> >> wrote: > >> >>> Matthias Klose writes: > >> Index: config/mips/t-linux64 > >> === > >> --- config/mips/t-linux64(revision 200012) > >> +++ config/mips/t-linux64(working copy) > >> @@ -24,3 +24,13 @@ > >> ../lib32$(call > >> >>> if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ > >> ../lib$(call > >> if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ > >> ../lib64$(call > >> if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) > >> + > >> +ifneq (,$(findstring abin32,$(target))) > >> +MULTIARCH_DIRNAME = $(call > >> >>> if_multiarch,mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) > >> +else > >> +ifneq (,$(findstring abi64,$(target))) > >> +MULTIARCH_DIRNAME = $(call > >> >>> if_multiarch,mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) > >> +else > >> +MULTIARCH_DIRNAME = $(call > >> >>> if_multiarch,mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) > >> +endif > >> +endif > >> >>> > >> >>> findstring seems a bit fragile for a full triple. I think it would > >> >>> be better to have something similar to the current MIPS_SOFT > >> >>> definition: > >> >>> > >> >>> MIPS_SOFT = $(if $(strip $(filter MASK_SOFT_FLOAT_ABI, > >> >>> $(target_cpu_default)) $(filter soft, $(with_float))),soft) > >> >>> > >> >>> but for ABIs. It could then also take with_abi into account. > >> >>> Maybe something like: > >> >>> > >> >>> MIPS_ABI = $(or $(with_abi), \ > >> >>> $(if $(filter MIPS_ABI_DEFAULT=ABI_N32, \ > >> >>> $(target_cpu_default)), n32), \ > >> >>> o32) > >> >>> > >> >>> (completely untested). > >> >> > >> >> Bikeshedding: > >> >> Doko would know, but ISTR that $(or) did not exist in make-3.80 which is > >> >> currently the minimum prerequisite, fwiw. > >> > > >> > Gah, that's a pity. Thanks for the catch though. Maybe firstword > >> > would be OK instead. > >> > > >> > I see I also fell into the usual ABI trap. It wouldn't have affected > >> > the use in this patch, but the default ought to be "32" rather than > >> > "o32". > >> > >> the define is in tm_defines, not target_cpu_default. > >> > >> MIPS_ABI = $(or $(with_abi), \ > >> $(if $(filter MIPS_ABI_DEFAULT=ABI_N32, \ > >> $(tm_defines)), n32), \ > >> 32) > >> > >> However I can't see yet how this should be used. Maybe Aurelian could come > >> up > >> with a tested version of this patch? > >> > > > > How about the patch below? > > > > It first determines the ABI without using $(or), by looking (in this > > order) for $(with_abi), $(tm_defines) and $(target), defaulting to 32 > > if none of the previous matches. > > > > Then the multiarch path is constructed from the ABI. > > > > Index: gcc/config/mips/t-linux64 > > === > > --- gcc/config/mips/t-linux64 (révision 205437) > > +++ gcc/config/mips/t-linux64 (copie de travail) > > @@ -24,3 +24,22 @@ > > ../lib32$(call > > if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ > > ../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ > > ../lib64$(call > > if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) > > + > > +ifneq ($(with_abi),) > > +MIPS_ABI = $(with_abi) > > +endif > > +ifeq ($(MIPS_ABI),) > > +MIPS_ABI=$(if $(strip $(filter MIPS_ABI_DEFAULT=ABI_N32, > > $(tm_defines))),n32) > > +endif > > +ifeq ($(MIPS_ABI),) > > +MIPS_ABI = $(subst abi,,$(subst gnu,,$(lastword $(subst -, ,$(target) > > +endif > > +ifeq ($(MIPS_ABI),) > > +MIPS_ABI=32 > > +endif > > + > > +ifeq ($(MIPS_ABI),32) > > +MULTIARCH_DIRNAME = $(call > > if_multiarch,mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) > > +else > > +MULTIARCH_DIRNAME = $(call > > if_multiarch,mips64$(MIPS_EL)-linux-gnuabi$(MIPS_ABI)$(MIPS_SOFT)) > > hm, shouldn't this be gnueabi with an 'e' or is that implied for n64 anyway? > just curious.. > thanks, This is correct, the abis are n32 and 64. MIPS EABI is another ABI which hasn't really existed in practice. -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurel...@aurel32.net http://www.aurel32.net
Re: [patch] set MULTIARCH_DIRNAME for multilib architectures
On 27 November 2013 11:10, Aurelien Jarno wrote: > On Thu, Jun 20, 2013 at 02:26:12PM +0200, Matthias Klose wrote: >> Am 13.06.2013 11:42, schrieb Richard Sandiford: >> > "Bernhard Reutner-Fischer" writes: >> >> On 12 June 2013 20:20:50 Richard Sandiford >> >> wrote: >> >>> Matthias Klose writes: >> Index: config/mips/t-linux64 >> === >> --- config/mips/t-linux64(revision 200012) >> +++ config/mips/t-linux64(working copy) >> @@ -24,3 +24,13 @@ >> ../lib32$(call >> >>> if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ >> ../lib$(call >> if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ >> ../lib64$(call >> if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) >> + >> +ifneq (,$(findstring abin32,$(target))) >> +MULTIARCH_DIRNAME = $(call >> >>> if_multiarch,mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) >> +else >> +ifneq (,$(findstring abi64,$(target))) >> +MULTIARCH_DIRNAME = $(call >> >>> if_multiarch,mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) >> +else >> +MULTIARCH_DIRNAME = $(call >> >>> if_multiarch,mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) >> +endif >> +endif >> >>> >> >>> findstring seems a bit fragile for a full triple. I think it would >> >>> be better to have something similar to the current MIPS_SOFT definition: >> >>> >> >>> MIPS_SOFT = $(if $(strip $(filter MASK_SOFT_FLOAT_ABI, >> >>> $(target_cpu_default)) $(filter soft, $(with_float))),soft) >> >>> >> >>> but for ABIs. It could then also take with_abi into account. >> >>> Maybe something like: >> >>> >> >>> MIPS_ABI = $(or $(with_abi), \ >> >>> $(if $(filter MIPS_ABI_DEFAULT=ABI_N32, \ >> >>> $(target_cpu_default)), n32), \ >> >>> o32) >> >>> >> >>> (completely untested). >> >> >> >> Bikeshedding: >> >> Doko would know, but ISTR that $(or) did not exist in make-3.80 which is >> >> currently the minimum prerequisite, fwiw. >> > >> > Gah, that's a pity. Thanks for the catch though. Maybe firstword >> > would be OK instead. >> > >> > I see I also fell into the usual ABI trap. It wouldn't have affected >> > the use in this patch, but the default ought to be "32" rather than "o32". >> >> the define is in tm_defines, not target_cpu_default. >> >> MIPS_ABI = $(or $(with_abi), \ >> $(if $(filter MIPS_ABI_DEFAULT=ABI_N32, \ >> $(tm_defines)), n32), \ >> 32) >> >> However I can't see yet how this should be used. Maybe Aurelian could come up >> with a tested version of this patch? >> > > How about the patch below? > > It first determines the ABI without using $(or), by looking (in this > order) for $(with_abi), $(tm_defines) and $(target), defaulting to 32 > if none of the previous matches. > > Then the multiarch path is constructed from the ABI. > > Index: gcc/config/mips/t-linux64 > === > --- gcc/config/mips/t-linux64 (révision 205437) > +++ gcc/config/mips/t-linux64 (copie de travail) > @@ -24,3 +24,22 @@ > ../lib32$(call > if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ > ../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ > ../lib64$(call > if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) > + > +ifneq ($(with_abi),) > +MIPS_ABI = $(with_abi) > +endif > +ifeq ($(MIPS_ABI),) > +MIPS_ABI=$(if $(strip $(filter MIPS_ABI_DEFAULT=ABI_N32, $(tm_defines))),n32) > +endif > +ifeq ($(MIPS_ABI),) > +MIPS_ABI = $(subst abi,,$(subst gnu,,$(lastword $(subst -, ,$(target) > +endif > +ifeq ($(MIPS_ABI),) > +MIPS_ABI=32 > +endif > + > +ifeq ($(MIPS_ABI),32) > +MULTIARCH_DIRNAME = $(call if_multiarch,mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) > +else > +MULTIARCH_DIRNAME = $(call > if_multiarch,mips64$(MIPS_EL)-linux-gnuabi$(MIPS_ABI)$(MIPS_SOFT)) hm, shouldn't this be gnueabi with an 'e' or is that implied for n64 anyway? just curious.. thanks, > +endif > > -- > Aurelien Jarno GPG: 1024D/F1BCDB73 > aurel...@aurel32.net http://www.aurel32.net
Re: [patch] set MULTIARCH_DIRNAME for multilib architectures
On Thu, Jun 20, 2013 at 02:26:12PM +0200, Matthias Klose wrote: > Am 13.06.2013 11:42, schrieb Richard Sandiford: > > "Bernhard Reutner-Fischer" writes: > >> On 12 June 2013 20:20:50 Richard Sandiford > >> wrote: > >>> Matthias Klose writes: > Index: config/mips/t-linux64 > === > --- config/mips/t-linux64(revision 200012) > +++ config/mips/t-linux64(working copy) > @@ -24,3 +24,13 @@ > ../lib32$(call > >>> if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ > ../lib$(call > if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ > ../lib64$(call > if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) > + > +ifneq (,$(findstring abin32,$(target))) > +MULTIARCH_DIRNAME = $(call > >>> if_multiarch,mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) > +else > +ifneq (,$(findstring abi64,$(target))) > +MULTIARCH_DIRNAME = $(call > >>> if_multiarch,mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) > +else > +MULTIARCH_DIRNAME = $(call > >>> if_multiarch,mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) > +endif > +endif > >>> > >>> findstring seems a bit fragile for a full triple. I think it would > >>> be better to have something similar to the current MIPS_SOFT definition: > >>> > >>> MIPS_SOFT = $(if $(strip $(filter MASK_SOFT_FLOAT_ABI, > >>> $(target_cpu_default)) $(filter soft, $(with_float))),soft) > >>> > >>> but for ABIs. It could then also take with_abi into account. > >>> Maybe something like: > >>> > >>> MIPS_ABI = $(or $(with_abi), \ > >>> $(if $(filter MIPS_ABI_DEFAULT=ABI_N32, \ > >>> $(target_cpu_default)), n32), \ > >>> o32) > >>> > >>> (completely untested). > >> > >> Bikeshedding: > >> Doko would know, but ISTR that $(or) did not exist in make-3.80 which is > >> currently the minimum prerequisite, fwiw. > > > > Gah, that's a pity. Thanks for the catch though. Maybe firstword > > would be OK instead. > > > > I see I also fell into the usual ABI trap. It wouldn't have affected > > the use in this patch, but the default ought to be "32" rather than "o32". > > the define is in tm_defines, not target_cpu_default. > > MIPS_ABI = $(or $(with_abi), \ > $(if $(filter MIPS_ABI_DEFAULT=ABI_N32, \ > $(tm_defines)), n32), \ > 32) > > However I can't see yet how this should be used. Maybe Aurelian could come up > with a tested version of this patch? > How about the patch below? It first determines the ABI without using $(or), by looking (in this order) for $(with_abi), $(tm_defines) and $(target), defaulting to 32 if none of the previous matches. Then the multiarch path is constructed from the ABI. Index: gcc/config/mips/t-linux64 === --- gcc/config/mips/t-linux64 (révision 205437) +++ gcc/config/mips/t-linux64 (copie de travail) @@ -24,3 +24,22 @@ ../lib32$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ ../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ ../lib64$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) + +ifneq ($(with_abi),) +MIPS_ABI = $(with_abi) +endif +ifeq ($(MIPS_ABI),) +MIPS_ABI=$(if $(strip $(filter MIPS_ABI_DEFAULT=ABI_N32, $(tm_defines))),n32) +endif +ifeq ($(MIPS_ABI),) +MIPS_ABI = $(subst abi,,$(subst gnu,,$(lastword $(subst -, ,$(target) +endif +ifeq ($(MIPS_ABI),) +MIPS_ABI=32 +endif + +ifeq ($(MIPS_ABI),32) +MULTIARCH_DIRNAME = $(call if_multiarch,mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) +else +MULTIARCH_DIRNAME = $(call if_multiarch,mips64$(MIPS_EL)-linux-gnuabi$(MIPS_ABI)$(MIPS_SOFT)) +endif -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurel...@aurel32.net http://www.aurel32.net
Re: [patch] set MULTIARCH_DIRNAME for multilib architectures
On Thu, Jun 20, 2013 at 02:26:12PM +0200, Matthias Klose wrote: > Am 13.06.2013 11:42, schrieb Richard Sandiford: > > "Bernhard Reutner-Fischer" writes: > >> On 12 June 2013 20:20:50 Richard Sandiford > >> wrote: > >>> Matthias Klose writes: > Index: config/mips/t-linux64 > === > --- config/mips/t-linux64(revision 200012) > +++ config/mips/t-linux64(working copy) > @@ -24,3 +24,13 @@ > ../lib32$(call > >>> if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ > ../lib$(call > if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ > ../lib64$(call > if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) > + > +ifneq (,$(findstring abin32,$(target))) > +MULTIARCH_DIRNAME = $(call > >>> if_multiarch,mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) > +else > +ifneq (,$(findstring abi64,$(target))) > +MULTIARCH_DIRNAME = $(call > >>> if_multiarch,mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) > +else > +MULTIARCH_DIRNAME = $(call > >>> if_multiarch,mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) > +endif > +endif > >>> > >>> findstring seems a bit fragile for a full triple. I think it would > >>> be better to have something similar to the current MIPS_SOFT definition: > >>> > >>> MIPS_SOFT = $(if $(strip $(filter MASK_SOFT_FLOAT_ABI, > >>> $(target_cpu_default)) $(filter soft, $(with_float))),soft) > >>> > >>> but for ABIs. It could then also take with_abi into account. > >>> Maybe something like: > >>> > >>> MIPS_ABI = $(or $(with_abi), \ > >>> $(if $(filter MIPS_ABI_DEFAULT=ABI_N32, \ > >>> $(target_cpu_default)), n32), \ > >>> o32) > >>> > >>> (completely untested). > >> > >> Bikeshedding: > >> Doko would know, but ISTR that $(or) did not exist in make-3.80 which is > >> currently the minimum prerequisite, fwiw. > > > > Gah, that's a pity. Thanks for the catch though. Maybe firstword > > would be OK instead. > > > > I see I also fell into the usual ABI trap. It wouldn't have affected > > the use in this patch, but the default ought to be "32" rather than "o32". > > the define is in tm_defines, not target_cpu_default. > > MIPS_ABI = $(or $(with_abi), \ > $(if $(filter MIPS_ABI_DEFAULT=ABI_N32, \ > $(tm_defines)), n32), \ > 32) > > However I can't see yet how this should be used. Maybe Aurelian could come up > with a tested version of this patch? > I don't have a lot of time right now, will look at that in details next week. -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurel...@aurel32.net http://www.aurel32.net
Re: [patch] set MULTIARCH_DIRNAME for multilib architectures
Am 13.06.2013 11:42, schrieb Richard Sandiford: > "Bernhard Reutner-Fischer" writes: >> On 12 June 2013 20:20:50 Richard Sandiford >> wrote: >>> Matthias Klose writes: Index: config/mips/t-linux64 === --- config/mips/t-linux64 (revision 200012) +++ config/mips/t-linux64 (working copy) @@ -24,3 +24,13 @@ ../lib32$(call >>> if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ ../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ ../lib64$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) + +ifneq (,$(findstring abin32,$(target))) +MULTIARCH_DIRNAME = $(call >>> if_multiarch,mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) +else +ifneq (,$(findstring abi64,$(target))) +MULTIARCH_DIRNAME = $(call >>> if_multiarch,mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) +else +MULTIARCH_DIRNAME = $(call >>> if_multiarch,mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) +endif +endif >>> >>> findstring seems a bit fragile for a full triple. I think it would >>> be better to have something similar to the current MIPS_SOFT definition: >>> >>> MIPS_SOFT = $(if $(strip $(filter MASK_SOFT_FLOAT_ABI, >>> $(target_cpu_default)) $(filter soft, $(with_float))),soft) >>> >>> but for ABIs. It could then also take with_abi into account. >>> Maybe something like: >>> >>> MIPS_ABI = $(or $(with_abi), \ >>> $(if $(filter MIPS_ABI_DEFAULT=ABI_N32, \ >>> $(target_cpu_default)), n32), \ >>> o32) >>> >>> (completely untested). >> >> Bikeshedding: >> Doko would know, but ISTR that $(or) did not exist in make-3.80 which is >> currently the minimum prerequisite, fwiw. > > Gah, that's a pity. Thanks for the catch though. Maybe firstword > would be OK instead. > > I see I also fell into the usual ABI trap. It wouldn't have affected > the use in this patch, but the default ought to be "32" rather than "o32". the define is in tm_defines, not target_cpu_default. MIPS_ABI = $(or $(with_abi), \ $(if $(filter MIPS_ABI_DEFAULT=ABI_N32, \ $(tm_defines)), n32), \ 32) However I can't see yet how this should be used. Maybe Aurelian could come up with a tested version of this patch? Matthias
Re: [patch] set MULTIARCH_DIRNAME for multilib architectures
"Bernhard Reutner-Fischer" writes: > On 12 June 2013 20:20:50 Richard Sandiford wrote: >> Matthias Klose writes: >> > Index: config/mips/t-linux64 >> > === >> > --- config/mips/t-linux64 (revision 200012) >> > +++ config/mips/t-linux64 (working copy) >> > @@ -24,3 +24,13 @@ >> >../lib32$(call >> if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ >> >../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ >> >../lib64$(call >> > if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) >> > + >> > +ifneq (,$(findstring abin32,$(target))) >> > +MULTIARCH_DIRNAME = $(call >> if_multiarch,mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) >> > +else >> > +ifneq (,$(findstring abi64,$(target))) >> > +MULTIARCH_DIRNAME = $(call >> if_multiarch,mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) >> > +else >> > +MULTIARCH_DIRNAME = $(call >> if_multiarch,mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) >> > +endif >> > +endif >> >> findstring seems a bit fragile for a full triple. I think it would >> be better to have something similar to the current MIPS_SOFT definition: >> >> MIPS_SOFT = $(if $(strip $(filter MASK_SOFT_FLOAT_ABI, >> $(target_cpu_default)) $(filter soft, $(with_float))),soft) >> >> but for ABIs. It could then also take with_abi into account. >> Maybe something like: >> >> MIPS_ABI = $(or $(with_abi), \ >> $(if $(filter MIPS_ABI_DEFAULT=ABI_N32, \ >>$(target_cpu_default)), n32), \ >> o32) >> >> (completely untested). > > Bikeshedding: > Doko would know, but ISTR that $(or) did not exist in make-3.80 which is > currently the minimum prerequisite, fwiw. Gah, that's a pity. Thanks for the catch though. Maybe firstword would be OK instead. I see I also fell into the usual ABI trap. It wouldn't have affected the use in this patch, but the default ought to be "32" rather than "o32". Thanks, Richard
Re: [patch] set MULTIARCH_DIRNAME for multilib architectures
On 12 June 2013 20:20:50 Richard Sandiford wrote: Matthias Klose writes: > Index: config/mips/t-linux64 > === > --- config/mips/t-linux64 (revision 200012) > +++ config/mips/t-linux64 (working copy) > @@ -24,3 +24,13 @@ > ../lib32$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ >../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ >../lib64$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) > + > +ifneq (,$(findstring abin32,$(target))) > +MULTIARCH_DIRNAME = $(call if_multiarch,mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) > +else > +ifneq (,$(findstring abi64,$(target))) > +MULTIARCH_DIRNAME = $(call if_multiarch,mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) > +else > +MULTIARCH_DIRNAME = $(call if_multiarch,mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) > +endif > +endif findstring seems a bit fragile for a full triple. I think it would be better to have something similar to the current MIPS_SOFT definition: MIPS_SOFT = $(if $(strip $(filter MASK_SOFT_FLOAT_ABI, $(target_cpu_default)) $(filter soft, $(with_float))),soft) but for ABIs. It could then also take with_abi into account. Maybe something like: MIPS_ABI = $(or $(with_abi), \ $(if $(filter MIPS_ABI_DEFAULT=ABI_N32, \ $(target_cpu_default)), n32), \ o32) (completely untested). Bikeshedding: Doko would know, but ISTR that $(or) did not exist in make-3.80 which is currently the minimum prerequisite, fwiw. Sent with AquaMail for Android http://www.aqua-mail.com
Re: [patch] set MULTIARCH_DIRNAME for multilib architectures
Matthias Klose writes: > Index: config/mips/t-linux64 > === > --- config/mips/t-linux64 (revision 200012) > +++ config/mips/t-linux64 (working copy) > @@ -24,3 +24,13 @@ > ../lib32$(call > if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ > ../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ > ../lib64$(call > if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) > + > +ifneq (,$(findstring abin32,$(target))) > +MULTIARCH_DIRNAME = $(call > if_multiarch,mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) > +else > +ifneq (,$(findstring abi64,$(target))) > +MULTIARCH_DIRNAME = $(call > if_multiarch,mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) > +else > +MULTIARCH_DIRNAME = $(call if_multiarch,mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) > +endif > +endif findstring seems a bit fragile for a full triple. I think it would be better to have something similar to the current MIPS_SOFT definition: MIPS_SOFT = $(if $(strip $(filter MASK_SOFT_FLOAT_ABI, $(target_cpu_default)) $(filter soft, $(with_float))),soft) but for ABIs. It could then also take with_abi into account. Maybe something like: MIPS_ABI = $(or $(with_abi), \ $(if $(filter MIPS_ABI_DEFAULT=ABI_N32, \ $(target_cpu_default)), n32), \ o32) (completely untested). Thanks, Richard