Re: [eigen] [Eigen] SSE may cause linker error on VS.net

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


Benoit, the function is explicitly declared with EIGEN_DONT_INLINE and
as it is a full specialization it is not a template and thus being
compiled into every object file. It occurs for 'all' vectorized
functions (currently, ei_plog, ei_pexp, ei_psin, ei_pcos and
ei_psqrt). The only solution I can think of is the introduction of a
spcialized struct.

Your proposal of declaring them static is probably not working as well
because static functions are instantiated per compile-unit. I can give
it a try but have no hopes.

- Hauke

On Wed, Apr 22, 2009 at 4:19 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
> bah, we forgot another 'inline' keyword somewhere?
>
> which symbols exactly does the linker complain about? (yes i'm too
> lazy to try myself :p )
>
> Benoit
>
> 2009/4/22 Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>:
>> Hi,
>>
>> the attached example causes a linker error, when SSE is enabled. The
>> problem is that object code for specializations in MathFunctions.h
>> is generated in UnitA and UnitB from the attached example.
>>
>> Does anybody have any easy solutions to fix this?
>>
>> Btw, to reproduce the problem you have to make sure SSE is actually used.
>>
>> Regards,
>> Hauke
>>
>
>
>



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/