<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Re:[check_symbol_table elfparser.cpp:253] symbol 'cblas_gemm_s16s16s32' is undefined in Intel® Software Guard Extensions (Intel® SGX)</title>
    <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/check-symbol-table-elfparser-cpp-253-symbol-cblas-gemm-s16s16s32/m-p/1549007#M6050</link>
    <description>&lt;P&gt;I want to know how to solve all the unresolved symbols from the library by myself to make it workable inside SGX enclaves.&lt;/P&gt;</description>
    <pubDate>Thu, 30 Nov 2023 02:15:35 GMT</pubDate>
    <dc:creator>qianbao</dc:creator>
    <dc:date>2023-11-30T02:15:35Z</dc:date>
    <item>
      <title>[check_symbol_table elfparser.cpp:253] symbol 'cblas_gemm_s16s16s32' is undefined</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/check-symbol-table-elfparser-cpp-253-symbol-cblas-gemm-s16s16s32/m-p/1548598#M6043</link>
      <description>&lt;P&gt;Hi, I want to use intel mkl in my enclave.&lt;/P&gt;&lt;P&gt;I have installed intel mkl in my Dockerfile and added&lt;/P&gt;&lt;DIV class=""&gt;&lt;PRE&gt;-I/opt/intel/oneapi/mkl/latest/include to Enclave_Include_Paths
-L/opt/intel/oneapi/mkl/latest/lib -lmkl_rt to Enclave_Link_Flags between --start-group and --end-group flags&lt;/PRE&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;I am getting the errors&lt;/P&gt;&lt;P&gt;CXX &amp;lt;= App/App.cpp&lt;BR /&gt;LINK =&amp;gt; app&lt;BR /&gt;CXX &amp;lt;= Enclave/TrustedLibrary/Libcxx.cpp&lt;BR /&gt;LINK =&amp;gt; enclave.so&lt;/P&gt;&lt;P&gt;[check_symbol_table elfparser.cpp:253] symbol 'cblas_gemm_s16s16s32' is undefined&lt;BR /&gt;Symbol table incorrect&lt;BR /&gt;The input enclave file is not correct.&lt;BR /&gt;Error happened while signing the enclave.&lt;BR /&gt;make[1]: *** [Makefile:288: enclave.signed.so] Error 255&lt;BR /&gt;make[1]: Leaving directory '/home/admin/dev/linux-sgx/SampleCode/Cxx11SGXDemo_bak'&lt;BR /&gt;make: *** [Makefile:203: all] Error 2&lt;/P&gt;&lt;P&gt;I was expecting errors since it is not ported for sgx but the function it is talking about is just the libmkl_rt api function. Any advice is appreciated.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;if I use static library&lt;/P&gt;&lt;P&gt;add -I/opt/intel/oneapi/mkl/latest/include to Enclave_Include_Paths&lt;/P&gt;&lt;P&gt;add -L/opt/intel/oneapi/mkl/latest/lib -lmkl_gf_lp64 -lmkl_core -lmkl_gnu_thread to Enclave_Link_Flags between --start-group and --end-group flags&lt;/P&gt;&lt;P&gt;then, I got&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;CXX &amp;lt;= App/App.cpp&lt;BR /&gt;LINK =&amp;gt; app&lt;BR /&gt;CXX &amp;lt;= Enclave/TrustedLibrary/Libcxx.cpp&lt;BR /&gt;/usr/bin/ld: enclave.so: local symbol `cos' in /opt/intel/sgxsdk/lib64/libsgx_tstdc.a(cos_iface_c99.o) is referenced by DSO&lt;BR /&gt;/usr/bin/ld: final link failed: bad value&lt;BR /&gt;collect2: error: ld returned 1 exit status&lt;BR /&gt;make[1]: *** [Makefile:284: enclave.so] Error 1&lt;BR /&gt;make[1]: Leaving directory '/home/admin/dev/linux-sgx/SampleCode/Cxx11SGXDemo_bak'&lt;BR /&gt;make: *** [Makefile:203: all] Error 2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 29 Nov 2023 02:49:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/check-symbol-table-elfparser-cpp-253-symbol-cblas-gemm-s16s16s32/m-p/1548598#M6043</guid>
      <dc:creator>qianbao</dc:creator>
      <dc:date>2023-11-29T02:49:06Z</dc:date>
    </item>
    <item>
      <title>Re: [check_symbol_table elfparser.cpp:253] symbol 'cblas_gemm_s16s16s32' is undefined</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/check-symbol-table-elfparser-cpp-253-symbol-cblas-gemm-s16s16s32/m-p/1548600#M6044</link>
      <description>&lt;P&gt;I usr the SampleCOde and modify the Makfile&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;######## SGX SDK Settings ########&lt;/P&gt;&lt;P&gt;SGX_SDK ?= /opt/intel/sgxsdk&lt;BR /&gt;SGX_MODE ?= HW&lt;BR /&gt;SGX_ARCH ?= x64&lt;BR /&gt;SGX_DEBUG ?= 1&lt;/P&gt;&lt;P&gt;ifeq ($(shell getconf LONG_BIT), 32)&lt;BR /&gt;SGX_ARCH := x86&lt;BR /&gt;else ifeq ($(findstring -m32, $(CXXFLAGS)), -m32)&lt;BR /&gt;SGX_ARCH := x86&lt;BR /&gt;endif&lt;/P&gt;&lt;P&gt;ifeq ($(SGX_MODE), HYPER)&lt;BR /&gt;SGX_SIGN = sgx_sign_hyper&lt;BR /&gt;else&lt;BR /&gt;SGX_SIGN = sgx_sign&lt;BR /&gt;endif&lt;/P&gt;&lt;P&gt;ifeq ($(SGX_ARCH), x86)&lt;BR /&gt;SGX_COMMON_FLAGS := -m32&lt;BR /&gt;SGX_LIBRARY_PATH := $(SGX_SDK)/lib&lt;BR /&gt;SGX_ENCLAVE_SIGNER := $(SGX_SDK)/bin/x86/$(SGX_SIGN)&lt;BR /&gt;SGX_EDGER8R := $(SGX_SDK)/bin/x86/sgx_edger8r&lt;BR /&gt;else&lt;BR /&gt;SGX_COMMON_FLAGS := -m64&lt;BR /&gt;SGX_LIBRARY_PATH := $(SGX_SDK)/lib64&lt;BR /&gt;SGX_ENCLAVE_SIGNER := $(SGX_SDK)/bin/x64/$(SGX_SIGN)&lt;BR /&gt;SGX_EDGER8R := $(SGX_SDK)/bin/x64/sgx_edger8r&lt;BR /&gt;endif&lt;/P&gt;&lt;P&gt;ifeq ($(SGX_DEBUG), 1)&lt;BR /&gt;ifeq ($(SGX_PRERELEASE), 1)&lt;BR /&gt;$(error Cannot set SGX_DEBUG and SGX_PRERELEASE at the same time!!)&lt;BR /&gt;endif&lt;BR /&gt;endif&lt;/P&gt;&lt;P&gt;ifeq ($(SGX_DEBUG), 1)&lt;BR /&gt;SGX_COMMON_FLAGS += -O0 -g&lt;BR /&gt;else&lt;/P&gt;&lt;P&gt;SGX_COMMON_FLAGS += -O2&lt;BR /&gt;endif&lt;/P&gt;&lt;P&gt;SGX_COMMON_FLAGS += -Wall -Wextra -Winit-self -Wpointer-arith -Wreturn-type \&lt;BR /&gt;-Waddress -Wsequence-point -Wformat-security \&lt;BR /&gt;-Wmissing-include-dirs -Wfloat-equal -Wundef -Wshadow \&lt;BR /&gt;-Wcast-align -Wcast-qual -Wconversion -Wredundant-decls&lt;BR /&gt;SGX_COMMON_CFLAGS := $(SGX_COMMON_FLAGS) -Wjump-misses-init -Wstrict-prototypes -Wunsuffixed-float-constants&lt;BR /&gt;SGX_COMMON_CXXFLAGS := $(SGX_COMMON_FLAGS) -Wnon-virtual-dtor -std=c++11&lt;/P&gt;&lt;P&gt;######## App Settings ########&lt;/P&gt;&lt;P&gt;ifeq ($(SGX_MODE), SIM)&lt;BR /&gt;Urts_Library_Name := sgx_urts_sim&lt;BR /&gt;else ifeq ($(SGX_MODE), HYPER)&lt;BR /&gt;Urts_Library_Name := sgx_urts_hyper&lt;BR /&gt;else&lt;BR /&gt;Urts_Library_Name := sgx_urts&lt;BR /&gt;endif&lt;/P&gt;&lt;P&gt;App_Cpp_Files := App/App.cpp $(wildcard App/TrustedLibrary/*.cpp)&lt;BR /&gt;App_Include_Paths := -IApp -I$(SGX_SDK)/include -I/opt/intel/oneapi/mkl/latest/include/&lt;/P&gt;&lt;P&gt;App_C_Flags := -fPIC -Wno-attributes $(App_Include_Paths)&lt;/P&gt;&lt;P&gt;# Three configuration modes - Debug, prerelease, release&lt;BR /&gt;# Debug - Macro DEBUG enabled.&lt;BR /&gt;# Prerelease - Macro NDEBUG and EDEBUG enabled.&lt;BR /&gt;# Release - Macro NDEBUG enabled.&lt;BR /&gt;ifeq ($(SGX_DEBUG), 1)&lt;BR /&gt;App_C_Flags += -DDEBUG -UNDEBUG -UEDEBUG&lt;BR /&gt;else ifeq ($(SGX_PRERELEASE), 1)&lt;BR /&gt;App_C_Flags += -DNDEBUG -DEDEBUG -UDEBUG&lt;BR /&gt;else&lt;BR /&gt;App_C_Flags += -DNDEBUG -UEDEBUG -UDEBUG&lt;BR /&gt;endif&lt;/P&gt;&lt;P&gt;App_Cpp_Flags := $(App_C_Flags)&lt;BR /&gt;App_Link_Flags := -L$(SGX_LIBRARY_PATH) -l$(Urts_Library_Name) -lpthread -lmkl_rt&lt;/P&gt;&lt;P&gt;App_Cpp_Objects := $(App_Cpp_Files:.cpp=.o)&lt;/P&gt;&lt;P&gt;App_Name := app&lt;/P&gt;&lt;P&gt;######## Enclave Settings ########&lt;/P&gt;&lt;P&gt;Enclave_Version_Script := Enclave/Enclave_debug.lds&lt;BR /&gt;ifeq ($(SGX_MODE), HW)&lt;BR /&gt;ifneq ($(SGX_DEBUG), 1)&lt;BR /&gt;ifneq ($(SGX_PRERELEASE), 1)&lt;BR /&gt;# Choose to use 'Enclave.lds' for HW release mode&lt;BR /&gt;Enclave_Version_Script = Enclave/Enclave.lds&lt;BR /&gt;endif&lt;BR /&gt;endif&lt;BR /&gt;endif&lt;/P&gt;&lt;P&gt;ifeq ($(SGX_MODE), SIM)&lt;BR /&gt;Trts_Library_Name := sgx_trts_sim&lt;BR /&gt;Service_Library_Name := sgx_tservice_sim&lt;BR /&gt;else ifeq ($(SGX_MODE), HYPER)&lt;BR /&gt;Trts_Library_Name := sgx_trts_hyper&lt;BR /&gt;Service_Library_Name := sgx_tservice_hyper&lt;BR /&gt;else&lt;BR /&gt;Trts_Library_Name := sgx_trts&lt;BR /&gt;Service_Library_Name := sgx_tservice&lt;BR /&gt;endif&lt;BR /&gt;Crypto_Library_Name := sgx_tcrypto&lt;/P&gt;&lt;P&gt;Enclave_Cpp_Files := Enclave/Enclave.cpp $(wildcard Enclave/TrustedLibrary/*.cpp)&lt;BR /&gt;Enclave_Include_Paths := -IEnclave -I$(SGX_SDK)/include -I$(SGX_SDK)/include/libcxx -I$(SGX_SDK)/include/tlibc -I/opt/intel/oneapi/mkl/latest/include/&lt;/P&gt;&lt;P&gt;Enclave_C_Flags := -nostdinc -fvisibility=hidden -fpie -fstack-protector $(Enclave_Include_Paths)&lt;BR /&gt;Enclave_Cpp_Flags := $(Enclave_C_Flags) -nostdinc++&lt;/P&gt;&lt;P&gt;# Enable the security flags&lt;BR /&gt;Enclave_Security_Link_Flags := -Wl,-z,relro,-z,now,-z,noexecstack&lt;/P&gt;&lt;P&gt;# To generate a proper enclave, it is recommended to follow below guideline to link the trusted libraries:&lt;BR /&gt;# 1. Link sgx_trts with the `--whole-archive' and `--no-whole-archive' options,&lt;BR /&gt;# so that the whole content of trts is included in the enclave.&lt;BR /&gt;# 2. For other libraries, you just need to pull the required symbols.&lt;BR /&gt;# Use `--start-group' and `--end-group' to link these libraries.&lt;BR /&gt;# Do NOT move the libraries linked with `--start-group' and `--end-group' within `--whole-archive' and `--no-whole-archive' options.&lt;BR /&gt;# Otherwise, you may get some undesirable errors.&lt;BR /&gt;Enclave_Link_Flags := $(Enclave_Security_Link_Flags) \&lt;BR /&gt;-Wl,--no-undefined -nostdlib -nodefaultlibs -nostartfiles -L$(SGX_LIBRARY_PATH) -L/opt/intel/oneapi/mkl/latest/lib \&lt;BR /&gt;-Wl,--whole-archive -l$(Trts_Library_Name) -Wl,--no-whole-archive \&lt;BR /&gt;-Wl,--start-group -lmkl_gf_lp64 -lmkl_core -lmkl_gnu_thread -lsgx_tstdc -lsgx_tcxx -l$(Crypto_Library_Name) -l$(Service_Library_Name) -Wl,--end-group \&lt;BR /&gt;-Wl,-Bstatic -Wl,-Bsymbolic -Wl,--no-undefined \&lt;/P&gt;&lt;P&gt;-Wl,-pie,-eenclave_entry -Wl,--export-dynamic \&lt;BR /&gt;-Wl,--defsym,__ImageBase=0 \&lt;BR /&gt;-Wl,--version-script=$(Enclave_Version_Script)&lt;/P&gt;&lt;P&gt;Enclave_Cpp_Objects := $(Enclave_Cpp_Files:.cpp=.o)&lt;/P&gt;&lt;P&gt;Enclave_Name := enclave.so&lt;BR /&gt;Signed_Enclave_Name := enclave.signed.so&lt;BR /&gt;Enclave_Config_File := Enclave/Enclave.config.xml&lt;/P&gt;&lt;P&gt;ifeq ($(SGX_MODE), HW)&lt;BR /&gt;ifeq ($(SGX_DEBUG), 1)&lt;BR /&gt;Build_Mode = HW_DEBUG&lt;BR /&gt;else ifeq ($(SGX_PRERELEASE), 1)&lt;BR /&gt;Build_Mode = HW_PRERELEASE&lt;BR /&gt;else&lt;BR /&gt;Build_Mode = HW_RELEASE&lt;BR /&gt;endif&lt;BR /&gt;else ifeq ($(SGX_MODE), HYPER)&lt;BR /&gt;ifeq ($(SGX_DEBUG), 1)&lt;BR /&gt;Build_Mode = HYPER_DEBUG&lt;BR /&gt;else ifeq ($(SGX_PRERELEASE), 1)&lt;BR /&gt;Build_Mode = HYPER_PRERELEASE&lt;BR /&gt;else&lt;BR /&gt;Build_Mode = HYPER_RELEASE&lt;BR /&gt;endif&lt;BR /&gt;else&lt;BR /&gt;ifeq ($(SGX_DEBUG), 1)&lt;BR /&gt;Build_Mode = SIM_DEBUG&lt;BR /&gt;else ifeq ($(SGX_PRERELEASE), 1)&lt;BR /&gt;Build_Mode = SIM_PRERELEASE&lt;BR /&gt;else&lt;BR /&gt;Build_Mode = SIM_RELEASE&lt;BR /&gt;endif&lt;BR /&gt;endif&lt;/P&gt;&lt;P&gt;LIB_DIR=/opt/intel/oneapi/mkl/latest/lib/&lt;BR /&gt;SO_FILES = $(wildcard $(LIB_DIR)/libmkl_rt.so)&lt;BR /&gt;A_FILES = $(wildcard $(LIB_DIR)/*.a)&lt;/P&gt;&lt;P&gt;.PHONY: all run target&lt;BR /&gt;all: .config_$(Build_Mode)_$(SGX_ARCH)&lt;BR /&gt;@$(MAKE) target&lt;/P&gt;&lt;P&gt;ifeq ($(Build_Mode), HW_RELEASE)&lt;/P&gt;&lt;P&gt;arget: $(App_Name) $(Enclave_Name)&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/137106"&gt;@Echo&lt;/a&gt; "The project has been built in release hardware mode."&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/137106"&gt;@Echo&lt;/a&gt; "Please sign the $(Enclave_Name) first with your signing key before you run the $(App_Name) to launch and access the enclave."&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/137106"&gt;@Echo&lt;/a&gt; "To sign the enclave use the command:"&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/137106"&gt;@Echo&lt;/a&gt; " $(SGX_ENCLAVE_SIGNER) sign -key &amp;lt;your key&amp;gt; -enclave $(Enclave_Name) -out &amp;lt;$(Signed_Enclave_Name)&amp;gt; -config $(Enclave_Config_File)"&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/137106"&gt;@Echo&lt;/a&gt; "You can also sign the enclave using an external signing tool."&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/137106"&gt;@Echo&lt;/a&gt; "To build the project in simulation mode set SGX_MODE=SIM. To build the project in prerelease mode set SGX_PRERELEASE=1 and SGX_MODE=HW."&lt;BR /&gt;else&lt;BR /&gt;target: $(App_Name) $(Signed_Enclave_Name)&lt;BR /&gt;ifeq ($(Build_Mode), HW_DEBUG)&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/137106"&gt;@Echo&lt;/a&gt; "The project has been built in debug hardware mode."&lt;BR /&gt;else ifeq ($(Build_Mode), SIM_DEBUG)&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/137106"&gt;@Echo&lt;/a&gt; "The project has been built in debug simulation mode."&lt;BR /&gt;else ifeq ($(Build_Mode), HYPER_DEBUG)&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/137106"&gt;@Echo&lt;/a&gt; "The project has been built in debug hyper mode."&lt;BR /&gt;else ifeq ($(Build_Mode), HW_PRERELEASE)&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/137106"&gt;@Echo&lt;/a&gt; "The project has been built in pre-release hardware mode."&lt;BR /&gt;else ifeq ($(Build_Mode), SIM_PRERELEASE)&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/137106"&gt;@Echo&lt;/a&gt; "The project has been built in pre-release simulation mode."&lt;BR /&gt;else ifeq ($(Build_Mode), HYPER_PRERELEASE)&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/137106"&gt;@Echo&lt;/a&gt; "The project has been built in pre-release hyper mode."&lt;BR /&gt;else ifeq ($(Build_Mode), SIM_RELEASE)&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/137106"&gt;@Echo&lt;/a&gt; "The project has been built in release simulation mode."&lt;BR /&gt;else&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/137106"&gt;@Echo&lt;/a&gt; "The project has been built in release hyper mode."&lt;BR /&gt;endif&lt;BR /&gt;endif&lt;/P&gt;&lt;P&gt;run: all&lt;BR /&gt;ifneq ($(Build_Mode), HW_RELEASE)&lt;BR /&gt;@$(CURDIR)/$(App_Name)&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/137106"&gt;@Echo&lt;/a&gt; "RUN =&amp;gt; $(App_Name) [$(SGX_MODE)|$(SGX_ARCH), OK]"&lt;BR /&gt;endif&lt;/P&gt;&lt;P&gt;.config_$(Build_Mode)_$(SGX_ARCH):&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/124408"&gt;@RM&lt;/a&gt; -f .config_* $(App_Name) $(Enclave_Name) $(Signed_Enclave_Name) $(App_Cpp_Objects) App/Enclave_u.* $(Enclave_Cpp_Objects) Enclave/Enclave_t.*&lt;BR /&gt;@touch .config_$(Build_Mode)_$(SGX_ARCH)&lt;/P&gt;&lt;P&gt;######## App Objects ########&lt;/P&gt;&lt;P&gt;App/Enclave_u.h: $(SGX_EDGER8R) Enclave/Enclave.edl&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/49941"&gt;@cd&lt;/a&gt; App &amp;amp;&amp;amp; $(SGX_EDGER8R) --sgx-mode $(SGX_MODE) --untrusted ../Enclave/Enclave.edl --search-path ../Enclave --search-path $(SGX_SDK)/include&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/137106"&gt;@Echo&lt;/a&gt; "GEN =&amp;gt; $@"&lt;/P&gt;&lt;P&gt;App/Enclave_u.c: App/Enclave_u.h&lt;/P&gt;&lt;P&gt;App/Enclave_u.o: App/Enclave_u.c&lt;BR /&gt;@$(CC) $(SGX_COMMON_CFLAGS) $(App_C_Flags) -c $&amp;lt; -o $@@&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/137106"&gt;@Echo&lt;/a&gt; "CC &amp;lt;= $&amp;lt;"&lt;/P&gt;&lt;P&gt;App/%.o: App/%.cpp App/Enclave_u.h&lt;BR /&gt;@$(CXX) $(SGX_COMMON_CXXFLAGS) $(App_Cpp_Flags) -c $&amp;lt; -o $@@&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/137106"&gt;@Echo&lt;/a&gt; "CXX &amp;lt;= $&amp;lt;"&lt;/P&gt;&lt;P&gt;$(App_Name): App/Enclave_u.o $(App_Cpp_Objects)&lt;BR /&gt;@$(CXX) $^ -o $@ $(App_Link_Flags)&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/137106"&gt;@Echo&lt;/a&gt; "LINK =&amp;gt; $@"&lt;/P&gt;&lt;P&gt;######## Enclave Objects ########&lt;BR /&gt;LIBSS = $(SO_FILES)&lt;/P&gt;&lt;P&gt;Enclave/Enclave_t.h: $(SGX_EDGER8R) Enclave/Enclave.edl&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/49941"&gt;@cd&lt;/a&gt; Enclave &amp;amp;&amp;amp; $(SGX_EDGER8R) --sgx-mode $(SGX_MODE) --trusted ../Enclave/Enclave.edl --search-path ../Enclave --search-path $(SGX_SDK)/include&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/137106"&gt;@Echo&lt;/a&gt; "GEN =&amp;gt; $@"&lt;/P&gt;&lt;P&gt;Enclave/Enclave_t.c: Enclave/Enclave_t.h&lt;/P&gt;&lt;P&gt;Enclave/Enclave_t.o: Enclave/Enclave_t.c&lt;BR /&gt;@$(CC) $(SGX_COMMON_CFLAGS) $(Enclave_C_Flags) -c $&amp;lt; -o $@@&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/137106"&gt;@Echo&lt;/a&gt; "CC &amp;lt;= $&amp;lt;"&lt;/P&gt;&lt;P&gt;Enclave/%.o: Enclave/%.cpp&lt;BR /&gt;@$(CXX) $(SGX_COMMON_CXXFLAGS) $(Enclave_Cpp_Flags) -c $&amp;lt; -o $@@&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/137106"&gt;@Echo&lt;/a&gt; "CXX &amp;lt;= $&amp;lt;"&lt;/P&gt;&lt;P&gt;$(Enclave_Cpp_Objects): Enclave/Enclave_t.h&lt;/P&gt;&lt;P&gt;$(Enclave_Name): Enclave/Enclave_t.o $(Enclave_Cpp_Objects)&lt;BR /&gt;@$(CXX) $^ -o $@ $(Enclave_Link_Flags)&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/137106"&gt;@Echo&lt;/a&gt; "LINK =&amp;gt; $@"&lt;/P&gt;&lt;P&gt;$(Signed_Enclave_Name): $(Enclave_Name)&lt;BR /&gt;@$(SGX_ENCLAVE_SIGNER) sign -key Enclave/Enclave_private_test.pem -enclave $(Enclave_Name) -out $@ -config $(Enclave_Config_File)&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/137106"&gt;@Echo&lt;/a&gt; "SIGN =&amp;gt; $@"&lt;/P&gt;&lt;P&gt;.PHONY: clean&lt;/P&gt;&lt;P&gt;clean:&lt;BR /&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/124408"&gt;@RM&lt;/a&gt; -f .config_* $(App_Name) $(Enclave_Name) $(Signed_Enclave_Name) $(App_Cpp_Objects) App/Enclave_u.* $(Enclave_Cpp_Objects) Enclave/Enclave_t.*&lt;/P&gt;</description>
      <pubDate>Wed, 29 Nov 2023 02:53:59 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/check-symbol-table-elfparser-cpp-253-symbol-cblas-gemm-s16s16s32/m-p/1548600#M6044</guid>
      <dc:creator>qianbao</dc:creator>
      <dc:date>2023-11-29T02:53:59Z</dc:date>
    </item>
    <item>
      <title>Re:[check_symbol_table elfparser.cpp:253] symbol 'cblas_gemm_s16s16s32' is undefined</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/check-symbol-table-elfparser-cpp-253-symbol-cblas-gemm-s16s16s32/m-p/1548981#M6048</link>
      <description>&lt;P&gt;&lt;SPAN style="font-size: 16px;"&gt;Hi Qianbao,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 16px;"&gt;Thanks for reaching out to us.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 16px;"&gt;Let me check with relevant team and I'll update you as soon as possible.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 16px;"&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 16px;"&gt;Wan&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Wed, 29 Nov 2023 23:44:18 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/check-symbol-table-elfparser-cpp-253-symbol-cblas-gemm-s16s16s32/m-p/1548981#M6048</guid>
      <dc:creator>Wan_Intel</dc:creator>
      <dc:date>2023-11-29T23:44:18Z</dc:date>
    </item>
    <item>
      <title>Re: Re:[check_symbol_table elfparser.cpp:253] symbol 'cblas_gemm_s16s16s32' is undefined</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/check-symbol-table-elfparser-cpp-253-symbol-cblas-gemm-s16s16s32/m-p/1549001#M6049</link>
      <description>&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;When I made, I found that enclave.so had been generated, but the cblas_gemm_s16s16s32 function symbol in enclave.so was U (undefined)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;nm -D enclave.so | grep "cblas_gemm_s16s16s32"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; U cblas_gemm_s16s16s32&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;and then the sign failed. What should I do? Should I link more .&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;so, or other .a&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 30 Nov 2023 01:39:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/check-symbol-table-elfparser-cpp-253-symbol-cblas-gemm-s16s16s32/m-p/1549001#M6049</guid>
      <dc:creator>qianbao</dc:creator>
      <dc:date>2023-11-30T01:39:39Z</dc:date>
    </item>
    <item>
      <title>Re: Re:[check_symbol_table elfparser.cpp:253] symbol 'cblas_gemm_s16s16s32' is undefined</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/check-symbol-table-elfparser-cpp-253-symbol-cblas-gemm-s16s16s32/m-p/1549007#M6050</link>
      <description>&lt;P&gt;I want to know how to solve all the unresolved symbols from the library by myself to make it workable inside SGX enclaves.&lt;/P&gt;</description>
      <pubDate>Thu, 30 Nov 2023 02:15:35 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/check-symbol-table-elfparser-cpp-253-symbol-cblas-gemm-s16s16s32/m-p/1549007#M6050</guid>
      <dc:creator>qianbao</dc:creator>
      <dc:date>2023-11-30T02:15:35Z</dc:date>
    </item>
    <item>
      <title>Re:[check_symbol_table elfparser.cpp:253] symbol 'cblas_gemm_s16s16s32' is undefined</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/check-symbol-table-elfparser-cpp-253-symbol-cblas-gemm-s16s16s32/m-p/1552898#M6066</link>
      <description>&lt;P&gt;&lt;SPAN style="font-size: 16px;"&gt;Hi Qianbao,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 16px;"&gt;Thanks for your patience.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 16px;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 16px;"&gt;Referring to&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://github.com/intel/linux-sgx/issues/392#issuecomment-752859736" rel="noopener noreferrer" target="_blank" style="font-size: 16px;"&gt;GitHub thread: Does Intel® SGX work with Intel® MKL&lt;/A&gt;&lt;SPAN style="font-size: 16px;"&gt;, developer&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://github.com/lzha101" rel="noopener noreferrer" target="_blank" style="font-size: 16px;"&gt;lzha101&lt;/A&gt;&lt;SPAN style="font-size: 16px;"&gt;&amp;nbsp;mentioned that Intel® Math Kernel Library is not supported inside Intel® SGX Enclave. Alternative way is to use Intel® SGX Deep Neural Network Library (DNNL) inside Intel® SGX Enclave. Hope it helps.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 16px;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 16px;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 16px;"&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 16px;"&gt;Wan&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Tue, 12 Dec 2023 02:31:06 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/check-symbol-table-elfparser-cpp-253-symbol-cblas-gemm-s16s16s32/m-p/1552898#M6066</guid>
      <dc:creator>Wan_Intel</dc:creator>
      <dc:date>2023-12-12T02:31:06Z</dc:date>
    </item>
    <item>
      <title>Re:[check_symbol_table elfparser.cpp:253] symbol 'cblas_gemm_s16s16s32' is undefined</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/check-symbol-table-elfparser-cpp-253-symbol-cblas-gemm-s16s16s32/m-p/1557078#M6077</link>
      <description>&lt;P&gt;&lt;SPAN style="font-size: 16px;"&gt;Hi Qianbao,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 16px;"&gt;Thanks for your question.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 16px;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 16px;"&gt;If you need any additional information from Intel, please submit a new question as this thread will no longer be monitored.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 16px;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 16px;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 16px;"&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 16px;"&gt;Wan&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;/P&gt;&lt;BR /&gt;</description>
      <pubDate>Sun, 24 Dec 2023 02:10:24 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/check-symbol-table-elfparser-cpp-253-symbol-cblas-gemm-s16s16s32/m-p/1557078#M6077</guid>
      <dc:creator>Wan_Intel</dc:creator>
      <dc:date>2023-12-24T02:10:24Z</dc:date>
    </item>
  </channel>
</rss>

