<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic link errors with IPP on cygwin in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/link-errors-with-IPP-on-cygwin/m-p/910051#M14036</link>
    <description>&lt;P&gt;Jason,&lt;/P&gt;
&lt;P&gt;How about other functions work? Maybe you can post the code calling ippsCov_32f function here. so we can test what is the problem.&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Chao&lt;/P&gt;</description>
    <pubDate>Wed, 27 Jan 2010 01:09:59 GMT</pubDate>
    <dc:creator>Chao_Y_Intel</dc:creator>
    <dc:date>2010-01-27T01:09:59Z</dc:date>
    <item>
      <title>link errors with IPP on cygwin</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/link-errors-with-IPP-on-cygwin/m-p/910046#M14031</link>
      <description>&lt;P&gt;I've built a program that uses mkl and ipp that runs on mac and linux. I'm now building that program for Windows using cygwin and gcc, and can't get it to link.&lt;/P&gt;
&lt;P&gt;The errors I'm getting are:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN style="font-family: Verdana, Arial, Helvetica, sans-serif; line-height: normal;"&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;" id="_mcePaste"&gt;Warning: .drectve `-defaultlib:"uuid.lib" ' unrecognized&lt;/DIV&gt;
&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;" id="_mcePaste"&gt;../../../bin/libMath.a(VectorUtility.cxx.o):VectorUtility.cxx:(.text+0x95): undefined reference to `_ippGetLibVersion'&lt;/DIV&gt;
&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;" id="_mcePaste"&gt;../../../bin/libMath.a(VectorUtility.cxx.o):VectorUtility.cxx:(.text+0x157): undefined reference to `_ippsWinHann_32f_I'&lt;/DIV&gt;
&lt;/BLOCKQUOTE&gt;
&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;P&gt;(and many more like that).&lt;/P&gt;
&lt;P&gt;I'm using link path:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;/opt/intel/IPP/6.1.2.041/ia32/include&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;and linking to the following:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;ippiemerged,ippimerged,ippmemerged,ippmmerged,ippsemerged,ippsmerged andippcorel.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Can someone point me to what I'm doing wrong?&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Jason&lt;/P&gt;</description>
      <pubDate>Thu, 21 Jan 2010 18:03:57 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/link-errors-with-IPP-on-cygwin/m-p/910046#M14031</guid>
      <dc:creator>Jason</dc:creator>
      <dc:date>2010-01-21T18:03:57Z</dc:date>
    </item>
    <item>
      <title>link errors with IPP on cygwin</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/link-errors-with-IPP-on-cygwin/m-p/910047#M14032</link>
      <description>&lt;P&gt;Hello Jason,&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Maybe the link path : /opt/intel/ipp/6.1.2.041/ia32/include&lt;/P&gt;
&lt;P&gt;should be /opt/intel/IPP/6.1.2.041/ia32/lib?&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Ying&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 22 Jan 2010 03:55:47 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/link-errors-with-IPP-on-cygwin/m-p/910047#M14032</guid>
      <dc:creator>Ying_H_Intel</dc:creator>
      <dc:date>2010-01-22T03:55:47Z</dc:date>
    </item>
    <item>
      <title>link errors with IPP on cygwin</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/link-errors-with-IPP-on-cygwin/m-p/910048#M14033</link>
      <description>&lt;P&gt;Hi Ying,&lt;/P&gt;
&lt;P&gt;Sorry, that was a typo in my message. I meant &lt;B&gt;lib.&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN style="font-weight: normal;"&gt;Any other ideas?&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 22 Jan 2010 04:17:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/link-errors-with-IPP-on-cygwin/m-p/910048#M14033</guid>
      <dc:creator>Jason</dc:creator>
      <dc:date>2010-01-22T04:17:28Z</dc:date>
    </item>
    <item>
      <title>link errors with IPP on cygwin</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/link-errors-with-IPP-on-cygwin/m-p/910049#M14034</link>
      <description>&lt;P&gt;Hi Jason,&lt;/P&gt;
&lt;P&gt;GCC and Windows lib use different call convention for lib name. If you use 'nm' command line, you can find:&lt;/P&gt;
&lt;P&gt;&amp;gt; nm myobj.o&lt;/P&gt;
&lt;P&gt;U _ippsGetLibVersion&lt;/P&gt;
&lt;P&gt;U _ippsWinHann_16s&lt;/P&gt;
&lt;P&gt;In IPP, the entry poist are:&lt;/P&gt;
&lt;P&gt;_ippsWinHann_16s@12&lt;/P&gt;
&lt;P&gt;_ippsGetLibVersion@0&lt;/P&gt;
&lt;P&gt;that is why the link can not find the symbols.&lt;/P&gt;
&lt;P&gt;There is some discussion at cywin site on how use Windows lib with GCC:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.cygwin.com/faq/"&gt;http://www.cygwin.com/faq/&lt;/A&gt;,&lt;/P&gt;
&lt;P&gt;on "How do I link against a .lib file" section:&lt;/P&gt;
&lt;P&gt;Following some hints there, the followings steps looks to work for me now.&lt;/P&gt;
&lt;P&gt;1) Build a custom DLL with IPP static libraries. You can use IPP sample code (ipp-samples\advanced-usage\linkage\customdll),&lt;/P&gt;
&lt;P&gt;add the functions you used into .def file: into customdll\src\export.def&lt;/P&gt;
&lt;P&gt;build the sample code, it created the DLL file: Bin\win32-xx\usr.dll&lt;/P&gt;
&lt;P&gt;2) In cgwin, use the DLL tool to create a .a lib:&lt;/P&gt;
&lt;P&gt;dlltool --def export.def --dllname usr.dll --output-lib myipplib.a&lt;/P&gt;
&lt;P&gt;3) link 'myipplib.a' with you application.&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Chao&lt;/P&gt;</description>
      <pubDate>Fri, 22 Jan 2010 06:54:25 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/link-errors-with-IPP-on-cygwin/m-p/910049#M14034</guid>
      <dc:creator>Chao_Y_Intel</dc:creator>
      <dc:date>2010-01-22T06:54:25Z</dc:date>
    </item>
    <item>
      <title>link errors with IPP on cygwin</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/link-errors-with-IPP-on-cygwin/m-p/910050#M14035</link>
      <description>&lt;P&gt;Thanks, Chao.&lt;/P&gt;
&lt;P&gt;Those instructions helped. However, now I get runtime errors. It looks like the stack pointer is being modified during a call to, e.g.ippsConv_32f, which causes crashes due to bad memory access. It's possible to hack around this by saving the stack pointer before the call to ippsConv_32f, and restoring it afterwards, but I think there must be something else going on?&lt;/P&gt;
&lt;P&gt;Any help would be much appreciated,&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Jason&lt;/P&gt;</description>
      <pubDate>Tue, 26 Jan 2010 19:32:23 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/link-errors-with-IPP-on-cygwin/m-p/910050#M14035</guid>
      <dc:creator>Jason</dc:creator>
      <dc:date>2010-01-26T19:32:23Z</dc:date>
    </item>
    <item>
      <title>link errors with IPP on cygwin</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/link-errors-with-IPP-on-cygwin/m-p/910051#M14036</link>
      <description>&lt;P&gt;Jason,&lt;/P&gt;
&lt;P&gt;How about other functions work? Maybe you can post the code calling ippsCov_32f function here. so we can test what is the problem.&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Chao&lt;/P&gt;</description>
      <pubDate>Wed, 27 Jan 2010 01:09:59 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/link-errors-with-IPP-on-cygwin/m-p/910051#M14036</guid>
      <dc:creator>Chao_Y_Intel</dc:creator>
      <dc:date>2010-01-27T01:09:59Z</dc:date>
    </item>
    <item>
      <title>link errors with IPP on cygwin</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/link-errors-with-IPP-on-cygwin/m-p/910052#M14037</link>
      <description>&lt;DIV id="_mcePaste"&gt;Hi Chao,&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Here's the code I'm using. I included the diagnostic code to print out the stack pointer, so you can see it getting changed.&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Thanks,&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Jason&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;/*&lt;/DIV&gt;
&lt;DIV&gt;@param[in]    pOutput     Pointer to an allocated float buffer.&lt;/DIV&gt;
&lt;DIV id="_mcePaste"&gt;@param[in]    pInput     Convolution buffer&lt;/DIV&gt;
&lt;DIV id="_mcePaste"&gt;@param[in]    nSize      Size of buffer pointed to by pInput and pOutput.&lt;/DIV&gt;
&lt;DIV id="_mcePaste"&gt;@param[in]    pFilter     Convolution Filter&lt;/DIV&gt;
&lt;DIV id="_mcePaste"&gt;@param[in]    nFilterSize   Size of buffer pointed to by pFilter&lt;/DIV&gt;
&lt;DIV id="_mcePaste"&gt;*/&lt;/DIV&gt;
&lt;DIV id="_mcePaste"&gt;void Process(float* pOutput, const float* pInput, uint nSize, const float* pFilter, uint nFilterSize)&lt;/DIV&gt;
&lt;DIV id="_mcePaste"&gt;{&lt;/DIV&gt;
&lt;DIV style="padding-left: 20pt;" id="_mcePaste"&gt;uint nWorkingSize = nSize + nFilterSize - 1;&lt;/DIV&gt;
&lt;DIV style="padding-left: 20pt;" id="_mcePaste"&gt;float* pWorking = new float[nWorkingSize];&lt;/DIV&gt;
&lt;DIV style="padding-left: 20pt;"&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;// print out stack pointer:&lt;/DIV&gt;
&lt;DIV style="padding-left: 20pt;"&gt;
&lt;DIV&gt;unsigned reg, reg2;&lt;/DIV&gt;
&lt;DIV&gt;asm("movl %%esp, %0" : "=r" (reg) : :);&lt;/DIV&gt;
&lt;DIV&gt;fprintf(stderr, "BEFORE: %%esp is %u\n", reg);&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV style="padding-left: 20pt;" id="_mcePaste"&gt;&lt;/DIV&gt;
&lt;DIV style="padding-left: 20pt;" id="_mcePaste"&gt;ippsConv_32f(pInput, nSize, pFilter, nFilterSize, pWorking);&lt;/DIV&gt;
&lt;DIV style="padding-left: 20pt;"&gt;&lt;/DIV&gt;
&lt;DIV style="padding-left: 20pt;"&gt;// print out stack pointer again.&lt;/DIV&gt;
&lt;DIV style="padding-left: 20pt;"&gt;
&lt;DIV style="padding-left: 20pt;"&gt;asm("movl %%esp, %0" : "=r" (reg2) : :);&lt;/DIV&gt;
&lt;DIV style="padding-left: 20pt;"&gt;fprintf(stderr, "AFTER: %%esp is %u (+%d)\n", reg2, reg2-reg);&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV style="padding-left: 20pt;" id="_mcePaste"&gt;&lt;/DIV&gt;
&lt;DIV style="padding-left: 20pt;" id="_mcePaste"&gt;// Copy the results from pWorking to pOutput.&lt;/DIV&gt;
&lt;DIV style="padding-left: 20pt;" id="_mcePaste"&gt;const float* pResult = pWorking + nFilterSize / 2;&lt;/DIV&gt;
&lt;DIV style="padding-left: 20pt;" id="_mcePaste"&gt;for (uint i = 0; i &amp;lt; nSize; i++)&lt;/DIV&gt;
&lt;DIV style="padding-left: 20pt;" id="_mcePaste"&gt;pOutput&lt;I&gt; = pResult&lt;I&gt;;&lt;/I&gt;&lt;/I&gt;&lt;/DIV&gt;
&lt;DIV style="padding-left: 20pt;" id="_mcePaste"&gt;&lt;/DIV&gt;
&lt;DIV style="padding-left: 20pt;" id="_mcePaste"&gt;delete [] pWorking;&lt;/DIV&gt;
&lt;DIV id="_mcePaste"&gt;}&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 27 Jan 2010 01:18:26 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/link-errors-with-IPP-on-cygwin/m-p/910052#M14037</guid>
      <dc:creator>Jason</dc:creator>
      <dc:date>2010-01-27T01:18:26Z</dc:date>
    </item>
  </channel>
</rss>

