I am using sgx_protected_fs library in my enclave and application. I use VS2015 and MS compiler chain. I am able to link with sgx_tprotected_fs.lib in my enclave project. However, linking the application with sgx_uprotected_fs.lib only works with the DEBUG build of the library. The release version has missing dependency of __intel_sse2_strnlen function. I am using SGX SDK 1.8 on Windows 10 and VS2015.
Is there any way to resolve this problem with non-Intel compiler tools?
I think _intel_sse2_strlen is defined in Intel's libirc.lib. And this library is required for running the sgx_uprotected_fs.lib. Try linking the library and check if it works.
Hi, thanks for info. Does this mean that if I want to use sgx_uprotected_fs.lib I must be using Intel C/C++ toolchain? (libirc.lib is not part of MSDN neither could I locate it elsewhere). I was hoping for some compilation switch that would use normal strnlen instead of __intel_sse2_strnlen...
I confirm that linking with libirc.lib solves the linking problem for using sgx_protected_fs.lib in release build in VS2015. I had to download Intel Parellel Studio XE and use the libirc.lib, which is shipped with it.
I would suggest Intel team makes this library included in the SGX SDK to enable seamless usage of protected filesystem without further config settings.