Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sgx_ippcp.h: No such file or directory #719

Closed
sbellem opened this issue Jun 12, 2021 · 3 comments
Closed

sgx_ippcp.h: No such file or directory #719

sbellem opened this issue Jun 12, 2021 · 3 comments

Comments

@sbellem
Copy link
Contributor

sbellem commented Jun 12, 2021

When building ipp-crypto from source as per the README.md under ./external/ippcp_internal/ the sgx_ippcp.h header file is missing, which causes problems when building the sdk. Not sure how one is supposed to build IPP Crypto from source and use it to build the SDK without this header file. The header file is listed in the .gitignore

external/ippcp_internal/inc/sgx_ippcp.h

The missing header file is in the optimized libs (e.g. https://download.01.org/intel-sgx/sgx-linux/2.13.3/optimized_libs_2.13.3.tar.gz) which I understand are pulled when running download_prebuilt.sh, but in this case the goal is to build the IPP Crypto dependency from source, hence there should be no need to fetch binaries.

@lzha101
Copy link
Contributor

lzha101 commented Jun 15, 2021

@sbellem, this header file is indeed required by SGX build and could be extracted from optimized lib package.

download_prebuilt.sh is not only for the optimized libs. It also pulls the prebuilt AEs, binutils.
And we have integrated the execution for this script to the first code preparation step. See README.md prerequisites

Download the source code and prepare the submodules and prebuilt binaries:
$ git clone https://github.com/intel/linux-sgx.git
$ cd linux-sgx && make preparation

If follow the steps, suppose you've downloaded the header files before you build the IPP libs.

@sbellem
Copy link
Contributor Author

sbellem commented Jun 15, 2021

Hey @lzha101, thanks for replying. I'd like to better understand the reasoning behind the current approach.

If for a moment we only consider the step of building the SGX SDK:

  • Are the prebuilt AEs required?
  • Can a recent version of binutils >= 2.35.1 available from https://www.gnu.org/software/binutils/ be used instead of using the provided prebuilt?
  • Besides the sgx_ippcp.h header file, is there anything else needed to build the SGX SDK?

Thank you!

@lzha101
Copy link
Contributor

lzha101 commented Jun 18, 2021

Are the prebuilt AEs required?

AEs are not required for SDK but required for PSW/DCAP

Can a recent version of binutils >= 2.35.1 available from https://www.gnu.org/software/binutils/ be used instead of using the provided prebuilt?

The preubuilt version we upload is built in a reproducible environment and the binaries are reproducible. If you don't want to verify the reproducibility, I think you can use the official version. But I have no chance to validate it.

Besides the sgx_ippcp.h header file, is there anything else needed to build the SGX SDK?

You can refer to the prerequisites in the top README.md for package dependency and find the code dependency from the top Makefile ( target preparation).

sbellem added a commit to sbellem/linux-sgx that referenced this issue Oct 26, 2021
(when ipp crypto is built from source)

Related to: intel#719

Signed-off-by: Sylvain Bellemare <sbellem@gmail.com>
sbellem added a commit to sbellem/linux-sgx that referenced this issue Oct 26, 2021
(when ipp crypto is built from source)

Related to: intel#719

Signed-off-by: Sylvain Bellemare <sbellem@gmail.com>
lzha101 pushed a commit that referenced this issue Dec 7, 2021
(when ipp crypto is built from source)

Related to: #719

Signed-off-by: Sylvain Bellemare <sbellem@gmail.com>
@llly llly closed this as completed Oct 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants