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 rep.dot@gmail.com writes: On 12 June 2013 20:20:50 Richard Sandiford rdsandif...@googlemail.com wrote: Matthias Klose d...@ubuntu.com 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 27 November 2013 11:10, Aurelien Jarno aure...@debian.org 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 rep.dot@gmail.com writes: On 12 June 2013 20:20:50 Richard Sandiford rdsandif...@googlemail.com wrote: Matthias Klose d...@ubuntu.com 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 Wed, Nov 27, 2013 at 12:55:54PM +0100, Bernhard Reutner-Fischer wrote: On 27 November 2013 11:10, Aurelien Jarno aure...@debian.org 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 rep.dot@gmail.com writes: On 12 June 2013 20:20:50 Richard Sandiford rdsandif...@googlemail.com wrote: Matthias Klose d...@ubuntu.com 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
Am 13.06.2013 11:42, schrieb Richard Sandiford: Bernhard Reutner-Fischer rep.dot@gmail.com writes: On 12 June 2013 20:20:50 Richard Sandiford rdsandif...@googlemail.com wrote: Matthias Klose d...@ubuntu.com 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
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 rep.dot@gmail.com writes: On 12 June 2013 20:20:50 Richard Sandiford rdsandif...@googlemail.com wrote: Matthias Klose d...@ubuntu.com 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
On 12 June 2013 20:20:50 Richard Sandiford rdsandif...@googlemail.com wrote: Matthias Klose d...@ubuntu.com 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
Bernhard Reutner-Fischer rep.dot@gmail.com writes: On 12 June 2013 20:20:50 Richard Sandiford rdsandif...@googlemail.com wrote: Matthias Klose d...@ubuntu.com 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
Matthias Klose d...@ubuntu.com 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