Re: [patch] set MULTIARCH_DIRNAME for multilib architectures

2013-11-27 Thread Aurelien Jarno
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

2013-11-27 Thread Bernhard Reutner-Fischer
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

2013-11-27 Thread Aurelien Jarno
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

2013-06-20 Thread Aurelien Jarno
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

2013-06-20 Thread Matthias Klose
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

2013-06-13 Thread 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".

Thanks,
Richard


Re: [patch] set MULTIARCH_DIRNAME for multilib architectures

2013-06-12 Thread Bernhard Reutner-Fischer

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

2013-06-12 Thread Richard Sandiford
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