<?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 Creating and using an IPP-based static library in Intel® Integrated Performance Primitives</title>
    <link>https://community.intel.com/t5/Intel-Integrated-Performance/Creating-and-using-an-IPP-based-static-library/m-p/791385#M2417</link>
    <description>&lt;DIV id="tiny_quote"&gt;
                &lt;DIV style="margin-left: 2px; margin-right: 2px;"&gt;&lt;SPAN style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;Hi Vladimir and thanks for replying,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV style="margin-left: 2px; margin-right: 2px;"&gt;&lt;SPAN style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I know that I am including ipp.h inside myclass.h, but from what I understand I can't avoid that step. I have to include myclass.h in any new application that I want to create on a second computer; and MYCLASS needs to include ipp.h to define all IPP variables and functions. So, what you are saying is that I have to includeall IPP headersin the second computer???&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Boris&lt;/DIV&gt;</description>
    <pubDate>Wed, 10 Nov 2010 08:25:17 GMT</pubDate>
    <dc:creator>apolo74</dc:creator>
    <dc:date>2010-11-10T08:25:17Z</dc:date>
    <item>
      <title>Creating and using an IPP-based static library</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Creating-and-using-an-IPP-based-static-library/m-p/791383#M2415</link>
      <description>Hi everybody,&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I'm sorry for opening a new thread about this issue but I'm very confused with the other threads and documents I've been reading about linking IPP. I really need some help with this as clear and detailed as possible.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I have created a class of simple math functions (sigmoidal, gaussians for 1D and for 2D vectors, exponentials, etc.) using IPP. I would like that people in my lab starts using this collection of functions so I decided to create a library. From what I understand, I should create a static library because I'm the only one with the IPP libraries installed in my computer. The idea then is that I pack all IPP functions and definitions needed for running my own functions within a static library and give it to my colleagues. They do NOT have IPP in their computers and shouldn't need to have it since my library should contain everything, right???&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;This is how I understand the whole process: First, build a library; Second, use the library.&lt;/DIV&gt;&lt;DIV&gt;&lt;B&gt;Building the library:&lt;/B&gt;&lt;/DIV&gt;&lt;DIV&gt;- I took the files from "advanced-usage &amp;gt; linkage &amp;gt; mergedlib" to create my own library. I just modified the file called funclist.h where I put those IPP functions that I'm using in my class.&lt;/DIV&gt;&lt;DIV&gt;- I then included the file called ippmerged.h in the header of my class. (Before this, my class header included only the file ipp.h )&lt;/DIV&gt;&lt;DIV&gt;- Finally I compiled my class linking with the following libraries: libippsemerged.a libippsmerged_t.a libippvmemerged.a libippvmmerged_t.a libippcore_t.a libiomp5.a&lt;BR /&gt;- I got a flawless compilation, the library was created without any errors or warnings.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;B&gt;Using the library:&lt;/B&gt;&lt;/DIV&gt;&lt;DIV&gt;- I went to a different computer, copied my library and the following headers: myclass.h, funclist.h and ippmerged.h&lt;/DIV&gt;&lt;DIV&gt;- I created a very simple main.cpp file with the following lines:&lt;/DIV&gt;&lt;META content="text/html; charset=utf-8" http-equiv="content-type" /&gt;&lt;SPAN style="font-family: verdana, sans-serif;"&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;" id="_mcePaste"&gt;//---------------------------------------------------------------------&lt;/DIV&gt;&lt;/SPAN&gt;&lt;DIV&gt;#include &lt;IOSTREAM&gt;&lt;/IOSTREAM&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV id="_mcePaste"&gt;#include &lt;CSTDIO&gt;&lt;/CSTDIO&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;#include "myclass.h"&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;#include "ippmerged.h"&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;using namespace std;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;int main( int argc, char *argv[] ){&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;if( InitStatic() ){&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;		&lt;/SPAN&gt;const IppLibraryVersion* libver;  // library info structure ptr&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;		&lt;/SPAN&gt;// first print the version of the libraries&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;		&lt;/SPAN&gt;libver = ippsGetLibVersion();&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;		&lt;/SPAN&gt;printf( " %s %s \\n", libver-&amp;gt;Name, libver-&amp;gt;Version );&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;		&lt;/SPAN&gt;cout &amp;lt;&amp;lt; "byebye world" &amp;lt;&amp;lt; endl;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt;		&lt;/SPAN&gt;return 0;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;}&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;return -1;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;META content="text/html; charset=utf-8" http-equiv="content-type" /&gt;&lt;DIV style="font-family: verdana, sans-serif; padding: 0px; margin: 0px;" id="_mcePaste"&gt;//---------------------------------------------------------------------&lt;/DIV&gt;&lt;DIV&gt;- Finally, I compiled this file including the following libraries: libmyclass.alibippsemerged.a libippsmerged_t.a libippvmemerged.a libippvmmerged_t.a libippcore_t.a libimf.a libsvml.a libirc.a libiomp5.alibpthread.a&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;- I get an error saying it can't find ipp.h (error: ipp.h: No such file or directory), from then on I assume the errors are related to not having the definitions from ipp.h.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Is there something wrong in what I'm doing??? or am I supposed to copy all the IPP headers into the rest of the computers together with my library??? Thanks for any help and suggestions,&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Boris&lt;/DIV&gt;&lt;DIV&gt;PS: I followed this instructions from&lt;SPAN style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;A href="http://software.intel.com/en-us/articles/performance-tools-for-software-developers-using-intel-ipp-threaded-static-libraries/"&gt;http://software.intel.com/en-us/articles/performance-tools-for-software-developers-using-intel-ipp-threaded-static-libraries/&lt;/A&gt;. And from the IPP documentation.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;PSS: I'm working with Ubuntu 10.04, Intel Compiler 11.1 (073), the output ofippsGetLibVersion() is&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;ippspxt.a 6.1 build 137.56&lt;/SPAN&gt;&lt;/DIV&gt;&lt;META http-equiv="content-type" content="text/html; charset=utf-8" /&gt;&lt;META content="text/html; charset=utf-8" http-equiv="content-type" /&gt;&lt;META content="text/html; charset=utf-8" http-equiv="content-type" /&gt;</description>
      <pubDate>Tue, 09 Nov 2010 13:28:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Creating-and-using-an-IPP-based-static-library/m-p/791383#M2415</guid>
      <dc:creator>apolo74</dc:creator>
      <dc:date>2010-11-09T13:28:12Z</dc:date>
    </item>
    <item>
      <title>Creating and using an IPP-based static library</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Creating-and-using-an-IPP-based-static-library/m-p/791384#M2416</link>
      <description>Hello,&lt;BR /&gt;&lt;BR /&gt;when you see compiler's message that it can't find or open some particular file (ipp.h in your case), please treat it just as it is. Some of your source files does include that header file (namely, contain text like this: #include &lt;IPP.H&gt; or #include "ipp.h"). If you do not have ipp.h file on your second computer then compiler will not be able to find this file.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt; Vladimir&lt;/IPP.H&gt;</description>
      <pubDate>Tue, 09 Nov 2010 17:38:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Creating-and-using-an-IPP-based-static-library/m-p/791384#M2416</guid>
      <dc:creator>Vladimir_Dudnik</dc:creator>
      <dc:date>2010-11-09T17:38:02Z</dc:date>
    </item>
    <item>
      <title>Creating and using an IPP-based static library</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Creating-and-using-an-IPP-based-static-library/m-p/791385#M2417</link>
      <description>&lt;DIV id="tiny_quote"&gt;
                &lt;DIV style="margin-left: 2px; margin-right: 2px;"&gt;&lt;SPAN style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;Hi Vladimir and thanks for replying,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV style="margin-left: 2px; margin-right: 2px;"&gt;&lt;SPAN style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I know that I am including ipp.h inside myclass.h, but from what I understand I can't avoid that step. I have to include myclass.h in any new application that I want to create on a second computer; and MYCLASS needs to include ipp.h to define all IPP variables and functions. So, what you are saying is that I have to includeall IPP headersin the second computer???&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Boris&lt;/DIV&gt;</description>
      <pubDate>Wed, 10 Nov 2010 08:25:17 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Creating-and-using-an-IPP-based-static-library/m-p/791385#M2417</guid>
      <dc:creator>apolo74</dc:creator>
      <dc:date>2010-11-10T08:25:17Z</dc:date>
    </item>
    <item>
      <title>Creating and using an IPP-based static library</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Creating-and-using-an-IPP-based-static-library/m-p/791386#M2418</link>
      <description>Obviously you do not need declaration of functions or data types which you do not use in your application. The ipp.h file (if you have looked into it) is just auxiliary header which combines all IPP header files into one place. If you only use, say ippsCopy_8u function, then you can extract declaration of this function from ipps.h file and include only this part into your myclass.h file. If you would like to avoid tricks with extraction declarations of separate functions then you may want to provide with your application only ipps.h file (for example mentioned above).&lt;BR /&gt;&lt;BR /&gt;Vladimir</description>
      <pubDate>Wed, 10 Nov 2010 19:00:05 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Creating-and-using-an-IPP-based-static-library/m-p/791386#M2418</guid>
      <dc:creator>Vladimir_Dudnik</dc:creator>
      <dc:date>2010-11-10T19:00:05Z</dc:date>
    </item>
    <item>
      <title>Creating and using an IPP-based static library</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Creating-and-using-an-IPP-based-static-library/m-p/791387#M2419</link>
      <description>Hi again Vladimir,&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;thanks for the explanation, I did as you said but using the example given in "ipp-samples &amp;gt; advanced-usage &amp;gt; linkage &amp;gt; customso". In that example I'm allowed to make a list of the IPP functions that I want to encapsulate in a .so file for later "transport". I've tested this in different computers and it is working.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I just would like to ask you about efficiency of these two methods... should I try to create a mergedlib instead of a customso library? I don't think size of the final library is a problem for me or the people that will be using my class. The important part is which method offers me the best performance.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Boris&lt;/DIV&gt;</description>
      <pubDate>Thu, 11 Nov 2010 12:21:55 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Creating-and-using-an-IPP-based-static-library/m-p/791387#M2419</guid>
      <dc:creator>apolo74</dc:creator>
      <dc:date>2010-11-11T12:21:55Z</dc:date>
    </item>
    <item>
      <title>Creating and using an IPP-based static library</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Creating-and-using-an-IPP-based-static-library/m-p/791388#M2420</link>
      <description>Hi Boris,&lt;BR /&gt;&lt;BR /&gt;non threaded merged static library and non threaded custom shared library shouldhave approximately the same performance. They both build from the same IPP binary code.&lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt; Vladimir</description>
      <pubDate>Thu, 11 Nov 2010 22:16:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Creating-and-using-an-IPP-based-static-library/m-p/791388#M2420</guid>
      <dc:creator>Vladimir_Dudnik</dc:creator>
      <dc:date>2010-11-11T22:16:51Z</dc:date>
    </item>
    <item>
      <title>Creating and using an IPP-based static library</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Creating-and-using-an-IPP-based-static-library/m-p/791389#M2421</link>
      <description>Thanks for the clarification, I just realized that the build32.sh script was supposed to create both the customso non-threaded and the threaded version. The non-threaded .so is generated and working in other computers without problems but (after fixing the paths to the right 'lib' directory) I get the following error when trying to generate the threaded version:&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;ld: /usr/lib/libpthread_nonshared.a(pthread_atfork.oS): relocation R_386_GOTOFF against undefined hidden symbol `__dso_handle' can not be used when making a shared object&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I really don't know what this mean or where to look to fix this part, do you have any idea what this mean? and how to fix it? or in the last case, how can I generate a threaded library?&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Boris&lt;/DIV&gt;</description>
      <pubDate>Fri, 12 Nov 2010 13:39:32 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Creating-and-using-an-IPP-based-static-library/m-p/791389#M2421</guid>
      <dc:creator>apolo74</dc:creator>
      <dc:date>2010-11-12T13:39:32Z</dc:date>
    </item>
    <item>
      <title>Creating and using an IPP-based static library</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Creating-and-using-an-IPP-based-static-library/m-p/791390#M2422</link>
      <description>&lt;P&gt;&lt;BR /&gt;Hi Boris,&lt;/P&gt;&lt;P&gt;The error showed the static pthread library (libpthread.a) could not be linked to created an shared object. &lt;/P&gt;&lt;P&gt;thread libraries is often linked dynamically, changing it tolibpthread.so work for you? &lt;/P&gt;&lt;P&gt;Thanks,&lt;BR /&gt;Chao&lt;/P&gt;</description>
      <pubDate>Mon, 15 Nov 2010 01:10:49 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Creating-and-using-an-IPP-based-static-library/m-p/791390#M2422</guid>
      <dc:creator>Chao_Y_Intel</dc:creator>
      <dc:date>2010-11-15T01:10:49Z</dc:date>
    </item>
    <item>
      <title>Creating and using an IPP-based static library</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Creating-and-using-an-IPP-based-static-library/m-p/791391#M2423</link>
      <description>&lt;META http-equiv="content-type" content="text/html; charset=utf-8" /&gt;&lt;DIV&gt;Hi Chao,&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;sorry for the late reply, I understand your point but I'm too newbie with Makefiles and can't find how to change specific parts so that I can get what I want. I will be very grateful if you or someone else give me a hand with this, as I said before I'm just following and trying to modify the files from ipp-samples/advanced-usage/linkage/customso. The file build32.sh calls the Makefile with:&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;make -f Makefile ARCH=${SAMPLE_ARCH} COMP=${SAMPLE_COMP} CC=${CC} CXX=${CXX} LINKAGE=${LINKAGE} IPPROOT=${IPPROOT} &amp;amp;&amp;amp; SAMPLE_STATUS="-OK"&lt;/DIV&gt;&lt;DIV&gt;[ "$SAMPLE_STATUS" != "-FAILED" ] &amp;amp;&amp;amp; make -f Makefile ARCH=${SAMPLE_ARCH} COMP=${SAMPLE_COMP} CC=${CC} CXX=${CXX} LINKAGE=${LINKAGE} IPPROOT=${IPPROOT} THR_SFX="_t" &amp;amp;&amp;amp; SAMPLE_STATUS="-OK"&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Here is the Makefile:&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;INTELROOT := /opt/intel/Compiler/11.1/073/lib/ia32&lt;/DIV&gt;&lt;DIV&gt;TARGDIR := ./bin&lt;/DIV&gt;&lt;DIV&gt;LIBNAME := $(TARGDIR)/libippFuncs$(THR_SFX).so&lt;/DIV&gt;&lt;DIV&gt;TSTNAME := $(TARGDIR)/testTools$(THR_SFX)&lt;/DIV&gt;&lt;DIV&gt;EXPORT := export.def&lt;/DIV&gt;&lt;DIV&gt;SCRIPT := library.script&lt;/DIV&gt;&lt;DIV&gt;IPPLIB := ippiemerged ippimerged$(THR_SFX) ippsemerged ippsmerged$(THR_SFX) ippvmemerged ippvmmerged$(THR_SFX) ippcore$(THR_SFX)&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;LINK := ld&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;ifdef THR_SFX&lt;/DIV&gt;&lt;DIV&gt;ILIB := $(addsuffix .a,$(addprefix $(INTELROOT)/lib,svml imf irc irc_s iomp5))$(LIBPTHREAD)&lt;/DIV&gt;&lt;DIV&gt;endif&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;#all : prepare build_lib build_test run&lt;/DIV&gt;&lt;DIV&gt;all : prepare build_lib&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;build_lib : $(LIBNAME)&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;$(LIBNAME) :$(SCRIPT) $(TARGDIR)/init.o&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;   $(LINK) -&lt;B&gt;&lt;SPAN style="text-decoration: underline;"&gt;shared&lt;/SPAN&gt;&lt;/B&gt; -zdefs -o $@ $^ -L$(ICCLIBPATH) -L$(IPPROOT)/lib -L$(TARGDIR) $(addprefix -l, $(IPPLIB)) $(ILIB) -lm -lc&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;$(TARGDIR)/init.o : init.c&lt;/DIV&gt;&lt;DIV&gt;	$(CC) -c -fpic -I$(IPPROOT)/include -o $@ $^&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;$(SCRIPT) : $(EXPORT)&lt;/DIV&gt;&lt;DIV&gt;	perl script.pl $&amp;lt; &amp;gt;$@&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;...&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;From what I understand, the same line is being used to build both versions ( $(LINK) -shared ... ), should it be "shared" for both versions???As it was in my previous message, the non-threaded version is built without problems and it is working in other computers. The Threaded version is not being built and the output goes like this:&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;DIV&gt;+----------------------------------------------------------------------------+&lt;/DIV&gt;&lt;DIV&gt;|Test    : intel build        Wed Nov 24 11:22:34 AM 2010&lt;/DIV&gt;&lt;DIV&gt;|Hostname  : boris-laptop&lt;/DIV&gt;&lt;DIV&gt;|Function  : no&lt;/DIV&gt;&lt;DIV&gt;|Description : building intel sample&lt;/DIV&gt;&lt;DIV&gt;|Class    : Information&lt;/DIV&gt;&lt;DIV&gt;|Source   : /home/boris/cppStuff/myStuff/DFT/intel&lt;/DIV&gt;&lt;DIV&gt;|Executable : build32.sh&lt;/DIV&gt;&lt;DIV&gt;+----------------------------------------------------------------------------+&lt;/DIV&gt;&lt;DIV&gt;Found compiler icc111 ( autodetect ) is /opt/intel/Compiler/11.1/073&lt;/DIV&gt;&lt;DIV&gt;Compiler environment is loaded&lt;/DIV&gt;&lt;DIV&gt;IPP environment found at /opt/intel/Compiler/11.1/073/ipp/ia32/tools/env/ippvars32.sh&lt;/DIV&gt;&lt;DIV&gt;IPP environment is loaded&lt;/DIV&gt;&lt;DIV&gt;All necessary packages and requred compilers are checked&lt;/DIV&gt;&lt;DIV&gt;Environment is setup. Build process is started. Please wait build results ...&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;rm -f ./bin/testTools&lt;/DIV&gt;&lt;DIV&gt;rm -f ./bin/libippFuncs.so&lt;/DIV&gt;&lt;DIV&gt;rm -f library.script&lt;/DIV&gt;&lt;DIV&gt;rm -rf ./bin&lt;/DIV&gt;&lt;DIV&gt;rm -f *.o&lt;/DIV&gt;&lt;DIV&gt;perl script.pl export.def &amp;gt;library.script&lt;/DIV&gt;&lt;DIV&gt;/opt/intel/Compiler/11.1/073/bin/ia32/icc -c -fpic -I/opt/intel/Compiler/11.1/073/ipp/ia32/include -o bin/init.o init.c&lt;/DIV&gt;&lt;DIV&gt;ld -shared -zdefs -o bin/libippFuncs.so library.script bin/init.o -L/opt/intel/Compiler/11.1/073/lib/ia32 -L/opt/intel/Compiler/11.1/073/ipp/ia32/lib -L./bin -lippiemerged -lippimerged -lippsemerged -lippsmerged -lippvmemerged -lippvmmerged -lippcore -lm -lc&lt;/DIV&gt;&lt;DIV&gt;ld -shared -zdefs -o bin/libippFuncs_t.so library.script bin/init.o -L/opt/intel/Compiler/11.1/073/lib/ia32 -L/opt/intel/Compiler/11.1/073/ipp/ia32/lib -L./bin -lippiemerged -lippimerged_t -lippsemerged -lippsmerged_t -lippvmemerged -lippvmmerged_t -lippcore_t /opt/intel/Compiler/11.1/073/lib/ia32/libsvml.a /opt/intel/Compiler/11.1/073/lib/ia32/libimf.a /opt/intel/Compiler/11.1/073/lib/ia32/libirc.a /opt/intel/Compiler/11.1/073/lib/ia32/libirc_s.a /opt/intel/Compiler/11.1/073/lib/ia32/libiomp5.a -L/opt/intel/Compiler/11.1/073/lib/ia32 -liomp5 -lpthread -lm -lc&lt;/DIV&gt;&lt;DIV&gt;/opt/intel/Compiler/11.1/073/lib/ia32/libiomp5.a(kmp_sched.o): In function `void __kmp_for_static_init&lt;UNSIGNED long="" long=""&gt;(ident*, int, int, int*, unsigned long long*, unsigned long long*, traits_t&lt;UNSIGNED long="" long=""&gt;::signed_t*, traits_t&lt;UNSIGNED long="" long=""&gt;::signed_t, traits_t&lt;UNSIGNED long="" long=""&gt;::signed_t)':&lt;/UNSIGNED&gt;&lt;/UNSIGNED&gt;&lt;/UNSIGNED&gt;&lt;/UNSIGNED&gt;&lt;/DIV&gt;&lt;DIV&gt;../../src/kmp_sched.cpp:(.text+0x2c6): undefined reference to `__umoddi3'&lt;/DIV&gt;&lt;DIV&gt;../../src/kmp_sched.cpp:(.text+0x484): undefined reference to `__umoddi3'&lt;/DIV&gt;&lt;DIV&gt;../../src/kmp_sched.cpp:(.text+0x59e): undefined reference to `__umoddi3'&lt;/DIV&gt;&lt;DIV&gt;/opt/intel/Compiler/11.1/073/lib/ia32/libiomp5.a(kmp_sched.o): In function `void __kmp_for_static_init&lt;LONG long=""&gt;(ident*, int, int, int*, long long*, long long*, traits_t&lt;LONG long=""&gt;::signed_t*, traits_t&lt;LONG long=""&gt;::signed_t, traits_t&lt;LONG long=""&gt;::signed_t)':&lt;/LONG&gt;&lt;/LONG&gt;&lt;/LONG&gt;&lt;/LONG&gt;&lt;/DIV&gt;&lt;DIV&gt;../../src/kmp_sched.cpp:(.text+0x9c6): undefined reference to `__umoddi3'&lt;/DIV&gt;&lt;DIV&gt;../../src/kmp_sched.cpp:(.text+0xb9a): undefined reference to `__umoddi3'&lt;/DIV&gt;&lt;DIV&gt;/opt/intel/Compiler/11.1/073/lib/ia32/libiomp5.a(kmp_sched.o):../../src/kmp_sched.cpp:(.text+0xcbf): more undefined references to `__umoddi3' follow&lt;/DIV&gt;&lt;DIV&gt;/opt/intel/Compiler/11.1/073/lib/ia32/libiomp5.a(kmp_dispatch.o): In function `void __kmp_dispatch_init&lt;LONG long=""&gt;(ident*, int, sched_type, long long, long long, traits_t&lt;LONG long=""&gt;::signed_t, traits_t&lt;LONG long=""&gt;::signed_t, int)':&lt;/LONG&gt;&lt;/LONG&gt;&lt;/LONG&gt;&lt;/DIV&gt;&lt;DIV&gt;../../src/kmp_dispatch.cpp:(.text+0x6352): undefined reference to `__moddi3'&lt;/DIV&gt;&lt;DIV&gt;ld: /usr/lib/libpthread_nonshared.a(pthread_atfork.oS): relocation R_386_GOTOFF against undefined hidden symbol `__dso_handle' can not be used when making a shared object&lt;/DIV&gt;&lt;DIV&gt;ld: final link failed: Bad value&lt;/DIV&gt;&lt;DIV&gt;make: *** [bin/libippFuncs_t.so] Error 1&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;+----------------------------------------------------------------------------+&lt;/DIV&gt;&lt;DIV&gt;|-OK  intel          Wed Nov 24 11:22:35 AM 2010&lt;/DIV&gt;&lt;DIV&gt;+----------------------------------------------------------------------------+&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;This is already a very long message, I'm sorry for that but I think I need to put everything if I want to show the whole picture of my problem. I hope you guys can give me some help, thanks.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Boris&lt;/DIV&gt;</description>
      <pubDate>Wed, 24 Nov 2010 11:06:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Creating-and-using-an-IPP-based-static-library/m-p/791391#M2423</guid>
      <dc:creator>apolo74</dc:creator>
      <dc:date>2010-11-24T11:06:00Z</dc:date>
    </item>
    <item>
      <title>Creating and using an IPP-based static library</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Creating-and-using-an-IPP-based-static-library/m-p/791392#M2424</link>
      <description>&lt;DIV&gt;Hello Boris, &lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;About first issue "/usr/lib/libpthread_nonshared.a(pthread_atfork.oS): relocation R_386_GOTOFF": &lt;BR /&gt;it seems had been discussed in &lt;A href="http://software.intel.com/en-us/forums/showthread.php?t=70367"&gt;http://software.intel.com/en-us/forums/showthread.php?t=70367&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;The problem mainly arethestatic intel OpenMP threading library libiomp5.a andthestatic system threading library libpthread.a.&lt;BR /&gt;the Ubuntu bugs tracker: &lt;A href="https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/358665" target="_blank"&gt;https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/358665&lt;/A&gt;&lt;BR /&gt;the forum 70367thread hints, the issue can be solved - there was wrong libpthread.so library and it solved by upgraged pthread libraries under Redhat.&lt;BR /&gt;&lt;BR /&gt;Additionation, thedynamic(shared) libiomp5.so (in ia32 and em64t) are recommended tobe used for any openmp threaded application, I'd like suggestto changeMakefile to make surelink bothdynamic libiomp5.so and libpthread.so&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;ifdef THR_SFX&lt;/DIV&gt;&lt;DIV&gt;ILIB := $(addsuffix .a,$(addprefix $(INTELROOT)/lib,svml imf irc irc_s))-liomp5 &lt;BR /&gt;endif&lt;/DIV&gt;&lt;BR /&gt;and $(TSTNAME) : $(LIBNAME)&lt;BR /&gt;$(CC) -o $@ -I$(IPPROOT)/include ipptwo.c -L. -L$(TARGDIR) -lusr$(THR_SFX) -lpthread -lm -lc.&lt;BR /&gt;&lt;BR /&gt;I update the build32_t.sh and Makefile.32 here. &lt;BR /&gt;You can copy them to the customso directory&lt;BR /&gt;enter command&lt;BR /&gt;&amp;gt;chmod +x build32_t.sh&lt;BR /&gt;&amp;gt;./build32_t.sh &lt;BR /&gt;&lt;BR /&gt;Hope it helps,&lt;BR /&gt;Ying &lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;</description>
      <pubDate>Mon, 10 Jan 2011 03:12:26 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Creating-and-using-an-IPP-based-static-library/m-p/791392#M2424</guid>
      <dc:creator>Ying_H_Intel</dc:creator>
      <dc:date>2011-01-10T03:12:26Z</dc:date>
    </item>
    <item>
      <title>Please use the latest version</title>
      <link>https://community.intel.com/t5/Intel-Integrated-Performance/Creating-and-using-an-IPP-based-static-library/m-p/791393#M2425</link>
      <description>&lt;P&gt;Please use the latest version&amp;nbsp;IPP.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;For my case, i can find the ipp*.h in &lt;STRONG&gt;/opt/intel/compilers_and_libraries2018/linux/ipp/include&lt;/STRONG&gt;. And remember to execute "source&amp;nbsp;&lt;SPAN style="font-size: 13.008px;"&gt;/opt/intel/compilers_and_libraries2018/linux/bin/compilervars.sh" before use "make -f Makefile_lin".&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 07 Mar 2018 09:20:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Integrated-Performance/Creating-and-using-an-IPP-based-static-library/m-p/791393#M2425</guid>
      <dc:creator>Yuan_X_Intel</dc:creator>
      <dc:date>2018-03-07T09:20:37Z</dc:date>
    </item>
  </channel>
</rss>

