We've found that pure C programs linked with the standard ipp library names - eg ipps - can be built on a machine with one hardware profile, and then run successfully on another.
However, binaries compiled with g++ only work on machines with the same processor type as the machine they were built on. They will run, but the just hang with 100% CPU usage.
If, instead, we explicitly specify the IPP library for the target architecture - eg ippsvmx - when building with g++, it runs successfully on the target machine. Of course, in this case, it has problems on any other architecture.
Is this a known issue? Is there some way around it, or is IPP simply not portable for C++ programs?