[macstl-dev] Re: gcc-4.0.0 la perfecto!

Glen Low glen.low at pixelglow.com
Sat Jul 2 23:15:34 WST 2005

  • Previous message: [macstl-dev] Re: gcc-4.0.0 la perfecto!
  • Next message: [macstl-dev] Re: gcc-4.0.0 la perfecto!
  • Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]


Ilya:

On 02/07/2005, at 5:33 AM, Ilya Lipovsky wrote:

> On Fri, 1 Jul 2005, Glen Low wrote:
>
>
>> On 01/07/2005, at 7:37 AM, Ilya Lipovsky wrote:
>>
>>
>>> ... were almost :) ... Besides, I don't know if it's in Italian  
>>> or Spanish.
>>> Anyway, gcc-4.0.0 seems to take care of the previous horrors  
>>> while introducing only minimal issues some of which, I must say,  
>>> should be attributed to the programmer's side rather than to the  
>>> capriciousness of the compiler.
>>>
>>
>> Excellent (except for that subtle dig at the "programmer's  
>> side" :-) ). The data_type typedef issue is weird, although I know  
>> gcc usually has issues typedef'ing its type attributes inside of a  
>> template. One last thing before we abandon FSF gcc 3.4.2 -- if you  
>> change from
>>
>> typedef __vector unsigned char data_type
>>
>> to
>>
>> typedef unsigned char data_type __attribute__ ((vector_size (16))
>>
>> Does it now compile OK on gcc 3.4.2?
>>
>>
>
> Hate to disappoint you: it didn't work. I tried several  
> combinations of positioning the attribute and also using it  
> together with __vector -- all just to make sure, but it did not  
> succeed in resolving the same old:
>
> ../emu/macstl/sml_valarray/macstl/impl/vec_altivec.h: In static  
> member function `static macstl::vec<unsigned char, 16u>  
> macstl::vec<unsigned char, 16u>::fill(
> unsigned char)':
> ../emu/macstl/sml_valarray/macstl/impl/vec_altivec.h:364: error: no  
> matching function for call to `vec_splat(unsigned char&, int)'
> /usr/gcc-3.4.2/lib/gcc/powerpc-unknown-linux-gnu/3.4.2/include/ 
> altivec.h:4752: note: candidates are: ........................ blah- 
> blah-blah

One final ask on gcc 3.4.2 before we abandon it:

try typedef'ing the vector type once outside the class, then typedef  
that to data_type e.g.

namespace macstl
{
namespace impl
{
typedef __vector unsigned char vuc;
}

template <> class vec <unsigned char, 16>
{
typedef impl::vuc data_type;
};

}

instead of what's happening now:

namespace macstl
{
template <> class vec <unsigned char, 16>
{
typedef __vector unsigned char data_type;
};
}

If that doesn't work either, we'll call it quits on gcc 3.4.x and  
concentrate on getting 4.0 to work. (If it works, we can make the  
same change for all compilers, since it maintains some degree of  
macro-free-ness.)

(Anyone else interested in seeing macstl work with FSF gcc 3.4.3 or . 
4 on PPC Linux? Both 3.4.3 and 3.4.4 are more recent than 4.0  
according to gcc.gnu.org but I don't see the bug above being  
addressed in their fix list.)

Cheers, Glen Low


---
pixelglow software | simply brilliant stuff
www.pixelglow.com
aim: pixglen

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.pixelglow.com/lists/archive/macstl-dev/attachments/20050702/1a38d404/attachment-0001.html

  • Previous message: [macstl-dev] Re: gcc-4.0.0 la perfecto!
  • Next message: [macstl-dev] Re: gcc-4.0.0 la perfecto!
  • Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

More information about the macstl-dev mailing list