|Re: [eigen] [Eigen] SSE may cause linker error on VS.net|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] [Eigen] SSE may cause linker error on VS.net
- From: Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>
- Date: Wed, 22 Apr 2009 16:26:18 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=ySRctUEe23c1z7XeKafwMbX1U0F3vkWsnlyIPfTp3ao=; b=mCihsf4Ck/h5w/71/lp1bDfMIbkD4VXnne45O2sTUoz9Sa2lLK/bu5BtNHV/R3lp1R 2XBzOTJ0u8JQ7+FDtL52vd1/mD0l/u1KXflO4ZGl9F/ctQ5KgMG2M4ezfSz0wgIr3ry2 dQZE9ReG6kXPb6hPUvqFJOLKQrnth3K6M6qmo=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=C/PnUApGZWGCe0RDBMz7msnpUlyQgKLjHl6fNoBjSVQbg+3IzrtVS26SB/n+rh5MxF c6lq4n2cn7Vclgg32/jpbKYuv1ONCzkckU61JX6kl1jzX64an1TK38iLnNRqIz0zSS7y 0q6Hb7LFZTbzF2rQpu0XK15SA8tdfbKB5Qevg=
Making them static worked though I don't really get it.
On Wed, Apr 22, 2009 at 4:24 PM, Hauke Heibel
> 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 )
>> 2009/4/22 Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>:
>>> 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.