Intel® Integrated Performance Primitives
Community support and discussions relating to developing high-performance vision, signal, security, and storage applications.
Announcements
The Intel sign-in experience is changing in February to support enhanced security controls. If you sign in, click here for more information.

Possible Bug in IPPCP 2021.5.1

BrianTerry
Beginner
645 Views

I updated my version of oneAPI to 2022.1 and when I try to build one of our applications we are running into a problem with IPPCP.  It's complaining about "ippcpdefs.h" with the following error

syntax error: missing ')' before '*' on the following line: typedef IppStatus (IPP_CALL *IppBitSupplier)(Ipp32u* pRand, int nBits, void* pEbsParams);

 

To make sure the problem is not associated with our software, I successfully built the IPPCP Examples.  One thing I noticed about the examples is they do not include "ipp.h", which our software does.  I modified one of the example projects to also include "ipp.h" and once I did this, I'm getting the exact same error.  

 

This seems to indicate their is a problem using both IPP and IPPCP with the latest version.

0 Kudos
1 Solution
VidyalathaB_Intel
Moderator
562 Views

Hi Brian,

 

Thanks for the information.

 

I've tried including the ipp.h header file in the example code and could reproduce the errors that you are getting. My hunch is that the ordering of header files is the reason for the errors that we are getting, so I tried re-ordering the headers.

 

Instead of

 

#include "ipp.h" // With this line included, the example project has errors

#include "ippcp.h"

VidyalathaB_Intel_0-1645153818046.png

 

do

#include "ippcp.h"

#include "ipp.h"

VidyalathaB_Intel_2-1645153856277.png

 

Please let us know if it works.

 

Regards,

Vidya.

 

 

View solution in original post

7 Replies
VidyalathaB_Intel
Moderator
618 Views

Hi Brian,


Thanks for reaching out to us.


>> problem using both IPP and IPPCP with the latest version.


Could you please confirm whether you have observed the same issue with any of the previous versions of IPPCP? If yes, please let us know the version of IPPCP with which it runs successfully without any errors.


Also please provide us with the following details in reproducing the issue from our end.


> Sample reproducer (& steps to reproduce the issue if any)

> Compiler used

> OS Details


Regards,

Vidya.


VidyalathaB_Intel
Moderator
584 Views

Hi,

 

Thanks for letting us know about the versions of IPP with which it worked without any errors.

 

It would be a great help if you could also provide us with the sample reproducer code with which we can reproduce the error with the latest IPP and proceed further.

 

UPDATE: Since you are facing the issue with the latest IPP and IPPCP(2021.5.0) we would like to remind you of a known issue incase if you miss it

"After installing the oneAPI Base Toolkit 2022.1, compiling applications with Win32 platform settings that require Intel® Integrated Performance Primitives (Intel® IPP) will fail. 32-bit Intel® IPP on Windows* OS are provided separately as part of Intel® oneAPI Base Toolkit 32-bit package. It can be downloaded here as an add-on. In order to build the Intel® IPP examples projects for "x86" configurations on Windows*, Intel® oneAPI Base Toolkit 32-bit package has to be installed."

 

Reference Link: https://www.intel.com/content/www/us/en/developer/articles/release-notes/release-notes-for-oneapi-in...

 

Regards,

Vidya.

 

BrianTerry
Beginner
572 Views

Vidya,

 

In order to duplicate the problem.  I used the IPPCP Examples that are packaged in the IPPCP folder (.\oneApi\ippcp\2021.5.1\components\intel_ipp_crypto_examples_win.zip).  In the zip file, is an example for aes.  I updated the file .\aes\aes-256-ctr-decryption.cpp to include "ipp.h".  Below is a snapshot of the change, (I also had to update the CMake setup to include the IPP include and library paths).

If I remove the #include "ipp.h", the project builds and runs.  However with it included, the compiler complains about 'identifier "IppBitSupplier" is undefined' multiple times.  

I'm doing this on Windows 10, and I duplicated the problem using the Visual Studio 2019 compiler and the Intel Compiler.

-----------------------------------------------------

#include <string.h>

#include "ipp.h"  // With this line included, the example project has errors
#include "ippcp.h"
#include "examples_common.h"

/*! AES block size in bytes */
static const int AES_BLOCK_SIZE = 16;

/*! Key size in bytes */
static const int KEY_SIZE = 32;

-----------------------------------------------------

 

 

VidyalathaB_Intel
Moderator
563 Views

Hi Brian,

 

Thanks for the information.

 

I've tried including the ipp.h header file in the example code and could reproduce the errors that you are getting. My hunch is that the ordering of header files is the reason for the errors that we are getting, so I tried re-ordering the headers.

 

Instead of

 

#include "ipp.h" // With this line included, the example project has errors

#include "ippcp.h"

VidyalathaB_Intel_0-1645153818046.png

 

do

#include "ippcp.h"

#include "ipp.h"

VidyalathaB_Intel_2-1645153856277.png

 

Please let us know if it works.

 

Regards,

Vidya.

 

 

VidyalathaB_Intel
Moderator
533 Views

Hi Brian,


Reminder:


Could you please provide us with an update regarding the issue? If it is resolved, please confirm whether we can close this thread from our end.


Regards,

Vidya.



BrianTerry
Beginner
522 Views

Vidya,

 

Sorry for the slow response.  I was busy with other stuff.  I just tried including ippcp first and was able to compile.  You can mark the issue as resolved.

 

Thanks,

-Brian

VidyalathaB_Intel
Moderator
508 Views

Hi Brian,


>>You can mark the issue as resolved.


Thanks for accepting our solution.

As the issue is resolved we are closing this thread. Please post a new question if you need any additional assistance from Intel as this thread will no longer be monitored.


Have a Great Day!


Regards,

Vidya.


Reply