Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

Mac OSX 64-bit IPP Libraries?

Kevin_Wilson
Beginner
768 Views
Hello,

In Linux I link to seperate folders for my 32-bit vs. 64-bit compiles:
/opt/intel/Compiler/11.1/069/ipp/ia32
/opt/intel/Compiler/11.1/069/ipp/em64t

In Mac there is no seperate folder under /opt/intel/Compiler/11.1/084/ipp/ . How do I check if I have the 64-bit IPP libraries installed?

Note: I have successfully compiled my code in 32 and 64-bit versions on Mac linking to the same folder, and although the 32-bit works as intended, the 64-bit crashes. This could be a lot of things, but I was wondering if I should be linking to different libraries.

Thanks for any help,
Kevin
0 Kudos
1 Solution
Ying_H_Intel
Employee
768 Views
Hi Kevin,

IPP combines both ia32 and inter64 inexisting staticlibrary. (knows as universal library). So you don't need to set different folder and library for the 32bit or 64bit IPPapplicationunder Mac.

Kind Regards,
Ying

View solution in original post

0 Kudos
11 Replies
Kevin_Wilson
Beginner
768 Views
I am still unclear of why there is not seperate libraries for IPP under Mac.

/opt/intel/Compiler/11.1/084/Frameworks/ipp/lib/ ??

Should there be a ia32 and intel64 folder?

Thanks for any help,
Kevin
0 Kudos
Ying_H_Intel
Employee
769 Views
Hi Kevin,

IPP combines both ia32 and inter64 inexisting staticlibrary. (knows as universal library). So you don't need to set different folder and library for the 32bit or 64bit IPPapplicationunder Mac.

Kind Regards,
Ying

0 Kudos
Juan_Yanez
Beginner
768 Views
Where are the following libraries in the latest OSX compiler? I have code that used to compile and work just fine, but after upgrading to the C++ composer XE 2011 for OSX my code does not link anymore.

ippcorel.lib

ippiemerged.lib
ippimerged.lib
ippsemerged.lib
ippsmerged.lib
ippccmerged.lib
ippccemerged.lib
Thanks
0 Kudos
Vladimir_Dudnik
Employee
768 Views
Hello,

in IPP 7.0 we have changed product folder structure and library naming convention to simplify linkage and to provide more consistent look and feel across different architectures. Please check New Directory Structure and Library Naming Scheme for Intel IPP 7.0 Library IPP Knowledge Base articel for more details.

Regards,
Vladimir
0 Kudos
Juan_Yanez
Beginner
768 Views
Hi,
Thanks for the info. Ok, I am past the compile time errors. Now I have link time errors:

"_ippJumpIndexForMergedLibs", referenced from:

_ippJumpIndexForMergedLibs$non_lazy_ptr in libippcc_l.a(ippcc00415as.o)

_ippJumpIndexForMergedLibs$non_lazy_ptr in libippcc_l.a(ippcc00421as.o)

_ippJumpIndexForMergedLibs$non_lazy_ptr in libippcc_l.a(ippcc00419as.o)

_ippJumpIndexForMergedLibs$non_lazy_ptr in libippcc_l.a(ippcc00413as.o)

(maybe you meant: _ippJumpIndexForMergedLibs$non_lazy_ptr)

"_ipp_set_cw_ssx", referenced from:

_v8_ippiColorTwist32f_8u_C3R in libippcc_l.a(pcctwistca_split_v8_ippiColorTwist32f_8u_C3R.o)

_w7_ippiColorTwist32f_8u_C3R in libippcc_l.a(pcctwistca_split_w7_ippiColorTwist32f_8u_C3R.o)

_v8_ippiColorTwist32f_8u_AC4R in libippcc_l.a(pcctwistca_split_v8_ippiColorTwist32f_8u_AC4R.o)

_w7_ippiColorTwist32f_8u_AC4R in libippcc_l.a(pcctwistca_split_w7_ippiColorTwist32f_8u_AC4R.o)

_v8_ippiColorTwist32f_16u_C3R in libippcc_l.a(pcctwistca_split_v8_ippiColorTwist32f_16u_C3R.o)

_w7_ippiColorTwist32f_16u_C3R in libippcc_l.a(pcctwistca_split_w7_ippiColorTwist32f_16u_C3R.o)

_p8_ippiColorTwist32f_8u_AC4R in libippcc_l.a(pcctwistca_split_p8_ippiColorTwist32f_8u_AC4R.o)

_w7_ippiColorTwist32f_16u_AC4R in libippcc_l.a(pcctwistca_split_w7_ippiColorTwist32f_16u_AC4R.o)

_v8_ippiColorTwist32f_16u_AC4R in libippcc_l.a(pcctwistca_split_v8_ippiColorTwist32f_16u_AC4R.o)

_p8_ippiColorTwist32f_16u_AC4R in libippcc_l.a(pcctwistca_split_p8_ippiColorTwist32f_16u_AC4R.o)

_p8_ippiColorTwist32f_16u_C3R in libippcc_l.a(pcctwistca_split_p8_ippiColorTwist32f_16u_C3R.o)

_p8_ippiColorTwist32f_8u_C3R in libippcc_l.a(pcctwistca_split_p8_ippiColorTwist32f_8u_C3R.o)

"_ipp_set_rc_ssx", referenced from:

_v8_ippiColorTwist32f_8u_C3R in libippcc_l.a(pcctwistca_split_v8_ippiColorTwist32f_8u_C3R.o)

_w7_ippiColorTwist32f_8u_C3R in libippcc_l.a(pcctwistca_split_w7_ippiColorTwist32f_8u_C3R.o)

_v8_ippiColorTwist32f_8u_AC4R in libippcc_l.a(pcctwistca_split_v8_ippiColorTwist32f_8u_AC4R.o)

_w7_ippiColorTwist32f_8u_AC4R in libippcc_l.a(pcctwistca_split_w7_ippiColorTwist32f_8u_AC4R.o)

_v8_ippiColorTwist32f_16u_C3R in libippcc_l.a(pcctwistca_split_v8_ippiColorTwist32f_16u_C3R.o)

_w7_ippiColorTwist32f_16u_C3R in libippcc_l.a(pcctwistca_split_w7_ippiColorTwist32f_16u_C3R.o)

_p8_ippiColorTwist32f_8u_AC4R in libippcc_l.a(pcctwistca_split_p8_ippiColorTwist32f_8u_AC4R.o)

_w7_ippiColorTwist32f_16u_AC4R in libippcc_l.a(pcctwistca_split_w7_ippiColorTwist32f_16u_AC4R.o)

_v8_ippiColorTwist32f_16u_AC4R in libippcc_l.a(pcctwistca_split_v8_ippiColorTwist32f_16u_AC4R.o)

_p8_ippiColorTwist32f_16u_AC4R in libippcc_l.a(pcctwistca_split_p8_ippiColorTwist32f_16u_AC4R.o)

_p8_ippiColorTwist32f_16u_C3R in libippcc_l.a(pcctwistca_split_p8_ippiColorTwist32f_16u_C3R.o)

_p8_ippiColorTwist32f_8u_C3R in libippcc_l.a(pcctwistca_split_p8_ippiColorTwist32f_8u_C3R.o)

ld: symbol(s) not found

In the "other linker flags" I've got

-lippi -lippcore -liomp5

and I've linked in
libippicore.a
lipippi_l.a
lipipps_l.a
lipippac_l.a
lipippcc_l.a
lipippi_cv.a
lipippj_l.a
Thanks,
jly
0 Kudos
Vladimir_Dudnik
Employee
768 Views
Do you mean you link with IPP libraries twice, the first time in your "other linker flags", where you specified to link with ippi and ippcore shared libraries and the second time when you explicitly linked with IPP static libraries (libippicore.a lipippi_l.a lipipps_l.a lipippac_l.a lipippcc_l.a lipippi_cv.a lipippj_l.a)?

That may not work this way. You need to decide how you would like to link, statically or dynamically.

Vladimir
0 Kudos
Juan_Yanez
Beginner
768 Views
Problem fixed. I just needed to link againstlibippicore_l rather thanlibippicore
0 Kudos
Juan_Yanez
Beginner
768 Views
Ok, let me ask you this then. What would I need to put in the "other linker flags"if I need to use the functions provided in the mentioned static libraries?
0 Kudos
Vladimir_Dudnik
Employee
768 Views
I do not know what "other linker flags" stands for. Usually, in order to link application, you need to specify the path where linker should look for the libraries and also specify library names to link.

Vladimir
0 Kudos
Juan_Yanez
Beginner
768 Views
"other linker flags is a setting in the OSX XCode environment. They are link time flags pretty much. Is there a document that outlines what options need to be passed in to the linker for IPP 7.0 to work correctly on OSX? Up until now, I've been following the instructions described in Intel's book "Optimizing Applications for Multi-Core Processors". That book is based on version 5.2 of the IPP.
0 Kudos
Vladimir_Dudnik
Employee
768 Views

Wondering why you did not use product documentation for this purpose? For example, in IPP User's Guide you may review the article (also availble online by the link below)

Linking Your Application with Intel IPP

Also I would recommend you to review some IPP Knowledge Base articles regarding this topic

Intel IPP - Intel IPP linkage models - quick reference guide

Simplified Link Instructions for the IPP Library

Intel IPP for Mac OS* - How to link to the Intel IPP for Mac OS* X libraries in application?

Regards,
Vladimir

0 Kudos
Reply