[hyper mode] Add compile support
This commit is contained in:
		
							parent
							
								
									f611e9c008
								
							
						
					
					
						commit
						66d1ebe918
					
				
							
								
								
									
										113
									
								
								Makefile
									
									
									
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										113
									
								
								Makefile
									
									
									
									
									
								
							| @ -28,17 +28,10 @@ VERSION_NUM = $(MAJOR_VER_NUM).$(MINOR_VER_NUM).$(PATCH_VER_NUM) | |||||||
| EXCLUDE_FILES = "libocclum-libos.so.$(MAJOR_VER_NUM)\$$|libocclum-pal.so.$(MAJOR_VER_NUM)\$$|libocclum-pal.so\$$|.a\$$|occlum-protect-integrity.so.*" | EXCLUDE_FILES = "libocclum-libos.so.$(MAJOR_VER_NUM)\$$|libocclum-pal.so.$(MAJOR_VER_NUM)\$$|libocclum-pal.so\$$|.a\$$|occlum-protect-integrity.so.*" | ||||||
| 
 | 
 | ||||||
| SHELL := bash | SHELL := bash | ||||||
| 
 | ifneq ($(SGX_MODE), HYPER) | ||||||
| submodule: githooks | submodule: githooks init-submodule | ||||||
| 	git submodule init | 	@rm -rf build | ||||||
| 	git submodule update $(OCCLUM_GIT_OPTIONS) |  | ||||||
| 	@# Try to apply the patches. If failed, check if the patches are already applied |  | ||||||
| 	cd deps/serde-json-sgx && git apply ../serde-json-sgx.patch >/dev/null 2>&1 || git apply ../serde-json-sgx.patch -R --check |  | ||||||
| 	cd deps/ringbuf && git apply ../ringbuf.patch >/dev/null 2>&1 || git apply ../ringbuf.patch -R --check |  | ||||||
| 	cd deps/resolv-conf && git apply ../resolv-conf.patch >/dev/null 2>&1 || git apply ../resolv-conf.patch -R --check |  | ||||||
| 
 |  | ||||||
| 	@# Enclaves used by tools are running in simulation mode by default to run faster. | 	@# Enclaves used by tools are running in simulation mode by default to run faster. | ||||||
| 	@rm -rf build build_sim |  | ||||||
| 	@$(MAKE) SGX_MODE=SIM --no-print-directory -C tools | 	@$(MAKE) SGX_MODE=SIM --no-print-directory -C tools | ||||||
| 	@$(MAKE) --no-print-directory -C deps/sefs/sefs-cli clean | 	@$(MAKE) --no-print-directory -C deps/sefs/sefs-cli clean | ||||||
| 	@$(MAKE) --no-print-directory -C deps/sefs/sefs-cli no_sign SGX_MODE=HW | 	@$(MAKE) --no-print-directory -C deps/sefs/sefs-cli no_sign SGX_MODE=HW | ||||||
| @ -49,9 +42,35 @@ submodule: githooks | |||||||
| 	@cp deps/sefs/sefs-cli/lib/libsefs-cli_sim.so build/lib | 	@cp deps/sefs/sefs-cli/lib/libsefs-cli_sim.so build/lib | ||||||
| 	@cp deps/sefs/sefs-cli/lib/libsefs-cli.signed.so build/lib | 	@cp deps/sefs/sefs-cli/lib/libsefs-cli.signed.so build/lib | ||||||
| 	@cp deps/sefs/sefs-cli/enclave/Enclave.config.xml build/sefs-cli.Enclave.xml | 	@cp deps/sefs/sefs-cli/enclave/Enclave.config.xml build/sefs-cli.Enclave.xml | ||||||
| 
 |  | ||||||
| 	@# Build and install Occlum dcap lib | 	@# Build and install Occlum dcap lib | ||||||
| 	@cd tools/toolchains/dcap_lib && ./build.sh | 	@cd tools/toolchains/dcap_lib && ./build.sh | ||||||
|  | else | ||||||
|  | submodule: githooks init-submodule | ||||||
|  | 	@rm -rf build | ||||||
|  | 	@# Enclaves used by tools are running in simulation mode by default to run faster. | ||||||
|  | 	@$(MAKE) SGX_MODE=SIM MS_BUFFER=1 --no-print-directory -C tools | ||||||
|  | 	@# Apply the sefs-cli's patch for HYPER mode | ||||||
|  | 	cd deps/sefs && git apply ../sefs-cli_hyper.patch >/dev/null 2>&1 || git apply ../sefs-cli_hyper.patch -R --check | ||||||
|  | 	@$(MAKE) --no-print-directory -C deps/sefs/sefs-cli clean | ||||||
|  | 	@$(MAKE) --no-print-directory -C deps/sefs/sefs-cli no_sign SGX_MODE=HYPER | ||||||
|  | 	@cp deps/sefs/sefs-cli/bin/sefs-cli_hyper build/bin | ||||||
|  | 	@cp deps/sefs/sefs-cli/lib/libsefs-cli_hyper.so build/lib | ||||||
|  | 	@# Cleanup the Enclave_u.* and Enclave_t.* generated in HYPER mode | ||||||
|  | 	@$(MAKE) --no-print-directory -C deps/sefs/sefs-cli clean | ||||||
|  | 	@$(MAKE) --no-print-directory -C deps/sefs/sefs-cli SGX_MODE=SIM | ||||||
|  | 	@cp deps/sefs/sefs-cli/bin/sefs-cli_sim build/bin | ||||||
|  | 	@cp deps/sefs/sefs-cli/lib/libsefs-cli_sim.so build/lib | ||||||
|  | 	@cp deps/sefs/sefs-cli/lib/libsefs-cli.signed.so build/lib | ||||||
|  | 	@cp deps/sefs/sefs-cli/enclave/Enclave.config.xml build/sefs-cli.Enclave.xml | ||||||
|  | endif | ||||||
|  | 
 | ||||||
|  | init-submodule: | ||||||
|  | 	git submodule init | ||||||
|  | 	git submodule update $(OCCLUM_GIT_OPTIONS) | ||||||
|  | 	@# Try to apply the patches. If failed, check if the patches are already applied | ||||||
|  | 	cd deps/serde-json-sgx && git apply ../serde-json-sgx.patch >/dev/null 2>&1 || git apply ../serde-json-sgx.patch -R --check | ||||||
|  | 	cd deps/ringbuf && git apply ../ringbuf.patch >/dev/null 2>&1 || git apply ../ringbuf.patch -R --check | ||||||
|  | 	cd deps/resolv-conf && git apply ../resolv-conf.patch >/dev/null 2>&1 || git apply ../resolv-conf.patch -R --check | ||||||
| 
 | 
 | ||||||
| src: | src: | ||||||
| 	@$(MAKE) --no-print-directory -C src | 	@$(MAKE) --no-print-directory -C src | ||||||
| @ -63,22 +82,7 @@ test-glibc: | |||||||
| 	@$(MAKE) --no-print-directory -C test test-glibc | 	@$(MAKE) --no-print-directory -C test test-glibc | ||||||
| 
 | 
 | ||||||
| OCCLUM_PREFIX ?= /opt/occlum | OCCLUM_PREFIX ?= /opt/occlum | ||||||
| install: minimal_sgx_libs | install: minimal_sgx_libs install_bins_and_libs | ||||||
| 	@# Install both libraries for HW mode and SIM mode |  | ||||||
| 	@$(MAKE) SGX_MODE=HW --no-print-directory -C src |  | ||||||
| 	@$(MAKE) SGX_MODE=SIM --no-print-directory -C src |  | ||||||
| 
 |  | ||||||
| 	@echo "Install libraries ..." |  | ||||||
| 	@mkdir -p $(OCCLUM_PREFIX)/build/bin/ |  | ||||||
| 	@cp build/bin/* $(OCCLUM_PREFIX)/build/bin |  | ||||||
| 	@mkdir -p $(OCCLUM_PREFIX)/build/lib/ |  | ||||||
| 	@# Don't copy libos library and pal library symbolic files to install dir |  | ||||||
| 	@cd build/lib && cp --no-dereference `ls | grep -Ev $(EXCLUDE_FILES)` $(OCCLUM_PREFIX)/build/lib/ && cd - |  | ||||||
| 	@# Create symbolic for pal library and libos (hardware mode) |  | ||||||
| 	@cd $(OCCLUM_PREFIX)/build/lib && ln -sf libocclum-pal.so.$(VERSION_NUM) libocclum-pal.so.$(MAJOR_VER_NUM) && \
 |  | ||||||
| 		ln -sf libocclum-pal.so.$(MAJOR_VER_NUM) libocclum-pal.so && \
 |  | ||||||
| 		ln -sf libocclum-libos.so.$(VERSION_NUM) libocclum-libos.so.$(MAJOR_VER_NUM) && ln -sf libocclum-libos.so.$(MAJOR_VER_NUM) libocclum-libos.so |  | ||||||
| 
 |  | ||||||
| 	@echo "Install headers and miscs ..." | 	@echo "Install headers and miscs ..." | ||||||
| 	@mkdir -p $(OCCLUM_PREFIX)/include/ | 	@mkdir -p $(OCCLUM_PREFIX)/include/ | ||||||
| 	@cp -r src/pal/include/*.h $(OCCLUM_PREFIX)/include | 	@cp -r src/pal/include/*.h $(OCCLUM_PREFIX)/include | ||||||
| @ -91,7 +95,49 @@ install: minimal_sgx_libs | |||||||
| 
 | 
 | ||||||
| 	@echo "Installation is done." | 	@echo "Installation is done." | ||||||
| 
 | 
 | ||||||
|  | ifneq ($(SGX_MODE), HYPER) | ||||||
|  | install_bins_and_libs: | ||||||
|  | 	@# Install both libraries for HW mode and SIM mode | ||||||
|  | 	@$(MAKE) SGX_MODE=HW --no-print-directory -C src | ||||||
|  | 	@$(MAKE) SGX_MODE=SIM --no-print-directory -C src | ||||||
|  | 	@echo "Install libraries ..." | ||||||
|  | 	@mkdir -p $(OCCLUM_PREFIX)/build/bin/ | ||||||
|  | 	@cp build/bin/* $(OCCLUM_PREFIX)/build/bin | ||||||
|  | 	@mkdir -p $(OCCLUM_PREFIX)/build/lib/ | ||||||
|  | 	@# Don't copy libos library and pal library symbolic files to install dir | ||||||
|  | 	@cd build/lib && cp --no-dereference `ls | grep -Ev $(EXCLUDE_FILES)` $(OCCLUM_PREFIX)/build/lib/ && cd - | ||||||
|  | 	@# Create symbolic for pal library and libos (hardware mode) | ||||||
|  | 	@cd $(OCCLUM_PREFIX)/build/lib && \
 | ||||||
|  | 		ln -sf libocclum-pal.so.$(VERSION_NUM) libocclum-pal.so.$(MAJOR_VER_NUM) && \
 | ||||||
|  | 		ln -sf libocclum-pal.so.$(MAJOR_VER_NUM) libocclum-pal.so && \
 | ||||||
|  | 		ln -sf libocclum-libos.so.$(VERSION_NUM) libocclum-libos.so.$(MAJOR_VER_NUM) && \
 | ||||||
|  | 		ln -sf libocclum-libos.so.$(MAJOR_VER_NUM) libocclum-libos.so | ||||||
|  | else | ||||||
|  | install_bins_and_libs: hyper_mode_libs | ||||||
|  | 	@# Install both libraries for SIM mode and HYPER mode | ||||||
|  | 	@# Cleanup the Enclave_u.* and Enclave_t.* generated in HYPER mode | ||||||
|  | 	@$(MAKE) --no-print-directory -C src clean | ||||||
|  | 	@$(MAKE) SGX_MODE=SIM --no-print-directory -C src | ||||||
|  | 	@# Cleanup the Enclave_u.* and Enclave_t.* generated in SIM mode | ||||||
|  | 	@$(MAKE) --no-print-directory -C src clean | ||||||
|  | 	@$(MAKE) SGX_MODE=HYPER --no-print-directory -C src | ||||||
|  | 	@echo "Install libraries ..." | ||||||
|  | 	@mkdir -p $(OCCLUM_PREFIX)/build/bin/ | ||||||
|  | 	@cp build/bin/* $(OCCLUM_PREFIX)/build/bin | ||||||
|  | 	@mkdir -p $(OCCLUM_PREFIX)/build/lib/ | ||||||
|  | 	@# Don't copy libos library and pal library symbolic files to install dir | ||||||
|  | 	@cd build/lib && cp --no-dereference `ls | grep -Ev $(EXCLUDE_FILES)` $(OCCLUM_PREFIX)/build/lib/ && cd - | ||||||
|  | 	@# Create symbolic for pal library and libos (HYPER mode) | ||||||
|  | 	@cd $(OCCLUM_PREFIX)/build/lib && \
 | ||||||
|  | 		ln -sf libocclum-pal_hyper.so.$(VERSION_NUM) libocclum-pal.so.$(MAJOR_VER_NUM) && \
 | ||||||
|  | 		ln -sf libocclum-pal.so.$(MAJOR_VER_NUM) libocclum-pal.so && \
 | ||||||
|  | 		ln -sf libocclum-libos_hyper.so.$(VERSION_NUM) libocclum-libos.so.$(MAJOR_VER_NUM) && \
 | ||||||
|  | 		ln -sf libocclum-libos.so.$(MAJOR_VER_NUM) libocclum-libos.so | ||||||
|  | endif | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| SGX_SDK ?= /opt/intel/sgxsdk | SGX_SDK ?= /opt/intel/sgxsdk | ||||||
|  | 
 | ||||||
| # Install minimum sgx-sdk set to support Occlum cmd execution in non-customized sgx-sdk environment
 | # Install minimum sgx-sdk set to support Occlum cmd execution in non-customized sgx-sdk environment
 | ||||||
| minimal_sgx_libs: $(SGX_SDK)/lib64/libsgx_uae_service_sim.so $(SGX_SDK)/lib64/libsgx_quote_ex_sim.so | minimal_sgx_libs: $(SGX_SDK)/lib64/libsgx_uae_service_sim.so $(SGX_SDK)/lib64/libsgx_quote_ex_sim.so | ||||||
| 	@echo "Install needed sgx-sdk tools ..." | 	@echo "Install needed sgx-sdk tools ..." | ||||||
| @ -99,7 +145,7 @@ minimal_sgx_libs: $(SGX_SDK)/lib64/libsgx_uae_service_sim.so $(SGX_SDK)/lib64/li | |||||||
| 	@cp $(SGX_SDK)/lib64/{libsgx_ptrace.so,libsgx_uae_service_sim.so,libsgx_quote_ex_sim.so} $(OCCLUM_PREFIX)/sgxsdk-tools/lib64 | 	@cp $(SGX_SDK)/lib64/{libsgx_ptrace.so,libsgx_uae_service_sim.so,libsgx_quote_ex_sim.so} $(OCCLUM_PREFIX)/sgxsdk-tools/lib64 | ||||||
| 	@mkdir -p $(OCCLUM_PREFIX)/sgxsdk-tools/lib64/gdb-sgx-plugin | 	@mkdir -p $(OCCLUM_PREFIX)/sgxsdk-tools/lib64/gdb-sgx-plugin | ||||||
| 	@cd $(SGX_SDK)/lib64/gdb-sgx-plugin/ && cp $$(ls -A | grep -v __pycache__) $(OCCLUM_PREFIX)/sgxsdk-tools/lib64/gdb-sgx-plugin | 	@cd $(SGX_SDK)/lib64/gdb-sgx-plugin/ && cp $$(ls -A | grep -v __pycache__) $(OCCLUM_PREFIX)/sgxsdk-tools/lib64/gdb-sgx-plugin | ||||||
| 	@cd $(SGX_SDK) && cp -a --parents {bin/sgx-gdb,bin/x64/sgx_sign} $(OCCLUM_PREFIX)/sgxsdk-tools/ | 	@cd $(SGX_SDK) && cp -a --parents {bin/sgx-gdb,bin/x64/sgx_sign*} $(OCCLUM_PREFIX)/sgxsdk-tools/ | ||||||
| 	@mkdir -p $(OCCLUM_PREFIX)/sgxsdk-tools/sdk_libs && cd $(OCCLUM_PREFIX)/sgxsdk-tools/sdk_libs && \
 | 	@mkdir -p $(OCCLUM_PREFIX)/sgxsdk-tools/sdk_libs && cd $(OCCLUM_PREFIX)/sgxsdk-tools/sdk_libs && \
 | ||||||
| 		ln -sf ../lib64/libsgx_uae_service_sim.so libsgx_uae_service_sim.so && \
 | 		ln -sf ../lib64/libsgx_uae_service_sim.so libsgx_uae_service_sim.so && \
 | ||||||
| 		ln -sf ../lib64/libsgx_quote_ex_sim.so libsgx_quote_ex_sim.so | 		ln -sf ../lib64/libsgx_quote_ex_sim.so libsgx_quote_ex_sim.so | ||||||
| @ -107,6 +153,17 @@ minimal_sgx_libs: $(SGX_SDK)/lib64/libsgx_uae_service_sim.so $(SGX_SDK)/lib64/li | |||||||
| 	@sed -i '/^SGX_LIBRARY_PATH=/d' $(OCCLUM_PREFIX)/sgxsdk-tools/bin/sgx-gdb | 	@sed -i '/^SGX_LIBRARY_PATH=/d' $(OCCLUM_PREFIX)/sgxsdk-tools/bin/sgx-gdb | ||||||
| 	@cp etc/environment $(OCCLUM_PREFIX)/sgxsdk-tools/ | 	@cp etc/environment $(OCCLUM_PREFIX)/sgxsdk-tools/ | ||||||
| 
 | 
 | ||||||
|  | ifeq ($(SGX_MODE), HYPER) | ||||||
|  | # Install HYPER mode libs
 | ||||||
|  | hyper_mode_libs: $(SGX_SDK)/lib64/libsgx_uae_service_hyper.so $(SGX_SDK)/lib64/libsgx_quote_ex_hyper.so | ||||||
|  | 	@echo "Install needed HYPER mode libs ..." | ||||||
|  | 	@mkdir -p $(OCCLUM_PREFIX)/sgxsdk-tools/lib64 | ||||||
|  | 	@cp $(SGX_SDK)/lib64/{libsgx_uae_service_hyper.so,libsgx_quote_ex_hyper.so} $(OCCLUM_PREFIX)/sgxsdk-tools/lib64 | ||||||
|  | 	@mkdir -p $(OCCLUM_PREFIX)/sgxsdk-tools/sdk_libs && cd $(OCCLUM_PREFIX)/sgxsdk-tools/sdk_libs && \
 | ||||||
|  | 		ln -sf ../lib64/libsgx_uae_service_hyper.so libsgx_uae_service_hyper.so && \
 | ||||||
|  | 		ln -sf ../lib64/libsgx_quote_ex_hyper.so libsgx_quote_ex_hyper.so | ||||||
|  | endif | ||||||
|  | 
 | ||||||
| format: | format: | ||||||
| 	@$(MAKE) --no-print-directory -C test format | 	@$(MAKE) --no-print-directory -C test format | ||||||
| 	@$(MAKE) --no-print-directory -C tools format | 	@$(MAKE) --no-print-directory -C tools format | ||||||
|  | |||||||
| @ -41,6 +41,7 @@ sgx_file_cache = []     # Cache SgxFile objects. Invalidation is unimplemented. | |||||||
| sgx1_exception_sim = [] # Simulate #PF and #GP exceptions on SGX 1 | sgx1_exception_sim = [] # Simulate #PF and #GP exceptions on SGX 1 | ||||||
| dcap = []               # DCAP support. The compilation relies on DCAP package. | dcap = []               # DCAP support. The compilation relies on DCAP package. | ||||||
| cov = ["sgx_cov"]       # Enable coverage colletcion. | cov = ["sgx_cov"]       # Enable coverage colletcion. | ||||||
|  | hyper_mode = []         # For running in hyper mode. | ||||||
| 
 | 
 | ||||||
| [target.'cfg(not(target_env = "sgx"))'.dependencies] | [target.'cfg(not(target_env = "sgx"))'.dependencies] | ||||||
| sgx_types = { path = "../../deps/rust-sgx-sdk/sgx_types" } | sgx_types = { path = "../../deps/rust-sgx-sdk/sgx_types" } | ||||||
|  | |||||||
| @ -2,6 +2,7 @@ enclave.so | |||||||
| { | { | ||||||
|     global: |     global: | ||||||
|         g_global_data_sim; |         g_global_data_sim; | ||||||
|  |         g_global_data_hyper; | ||||||
|         g_global_data; |         g_global_data; | ||||||
|         enclave_entry; |         enclave_entry; | ||||||
|         g_peak_heap_used; |         g_peak_heap_used; | ||||||
|  | |||||||
| @ -45,12 +45,15 @@ LIBOS_LOG ?= error | |||||||
| 
 | 
 | ||||||
| LIBOS_SONAME := libocclum-libos.so.$(MAJOR_VER_NUM) | LIBOS_SONAME := libocclum-libos.so.$(MAJOR_VER_NUM) | ||||||
| 
 | 
 | ||||||
| ifneq ($(SGX_MODE), HW) | ifeq ($(SGX_MODE), HW) | ||||||
| 	LIBOS_CORE_LIB_NAME := occlum-libos-core_sim |  | ||||||
| 	LIBOS_SO_REAL := $(BUILD_DIR)/lib/libocclum-libos_sim.so.$(VERSION_NUM) |  | ||||||
| else |  | ||||||
| 	LIBOS_CORE_LIB_NAME := occlum-libos-core | 	LIBOS_CORE_LIB_NAME := occlum-libos-core | ||||||
| 	LIBOS_SO_REAL := $(BUILD_DIR)/lib/libocclum-libos.so.$(VERSION_NUM) | 	LIBOS_SO_REAL := $(BUILD_DIR)/lib/libocclum-libos.so.$(VERSION_NUM) | ||||||
|  | else ifeq ($(SGX_MODE), HYPER) | ||||||
|  | 	LIBOS_CORE_LIB_NAME := occlum-libos-core_hyper | ||||||
|  | 	LIBOS_SO_REAL := $(BUILD_DIR)/lib/libocclum-libos_hyper.so.$(VERSION_NUM) | ||||||
|  | else | ||||||
|  | 	LIBOS_CORE_LIB_NAME := occlum-libos-core_sim | ||||||
|  | 	LIBOS_SO_REAL := $(BUILD_DIR)/lib/libocclum-libos_sim.so.$(VERSION_NUM) | ||||||
| endif | endif | ||||||
| 
 | 
 | ||||||
| LIBOS_CORE_A := $(OBJ_DIR)/libos/lib/lib$(LIBOS_CORE_LIB_NAME).a | LIBOS_CORE_A := $(OBJ_DIR)/libos/lib/lib$(LIBOS_CORE_LIB_NAME).a | ||||||
| @ -70,10 +73,14 @@ CXX_OBJS := $(addprefix $(OBJ_DIR)/libos/,$(CXX_SRCS:.cpp=.o)) | |||||||
| S_OBJS := $(addprefix $(OBJ_DIR)/libos/,$(S_SRCS:.S=.o)) | S_OBJS := $(addprefix $(OBJ_DIR)/libos/,$(S_SRCS:.S=.o)) | ||||||
| 
 | 
 | ||||||
| # Object files for simulation mode are stored in libos/src_sim
 | # Object files for simulation mode are stored in libos/src_sim
 | ||||||
| ifneq ($(SGX_MODE), HW) | ifeq ($(SGX_MODE), SIM) | ||||||
| 	C_OBJS := $(subst libos/src,libos/src_sim,$(C_OBJS)) | 	C_OBJS := $(subst libos/src,libos/src_sim,$(C_OBJS)) | ||||||
| 	CXX_OBJS := $(subst libos/src,libos/src_sim,$(CXX_OBJS)) | 	CXX_OBJS := $(subst libos/src,libos/src_sim,$(CXX_OBJS)) | ||||||
| 	S_OBJS := $(subst libos/src,libos/src_sim,$(S_OBJS)) | 	S_OBJS := $(subst libos/src,libos/src_sim,$(S_OBJS)) | ||||||
|  | else ifeq ($(SGX_MODE), HYPER) | ||||||
|  | 	C_OBJS := $(subst libos/src,libos/src_hyper,$(C_OBJS)) | ||||||
|  | 	CXX_OBJS := $(subst libos/src,libos/src_hyper,$(CXX_OBJS)) | ||||||
|  | 	S_OBJS := $(subst libos/src,libos/src_hyper,$(S_OBJS)) | ||||||
| endif | endif | ||||||
| 
 | 
 | ||||||
| ALL_BUILD_SUBDIRS := $(sort $(patsubst %/,%,$(dir $(LIBOS_SO_REAL) $(EDL_C_OBJS) $(C_OBJS) $(CXX_OBJS) $(S_OBJS)) $(RUST_TARGET_DIR) $(RUST_OUT_DIR))) | ALL_BUILD_SUBDIRS := $(sort $(patsubst %/,%,$(dir $(LIBOS_SO_REAL) $(EDL_C_OBJS) $(C_OBJS) $(CXX_OBJS) $(S_OBJS)) $(RUST_TARGET_DIR) $(RUST_OUT_DIR))) | ||||||
| @ -127,6 +134,10 @@ ifneq ($(OCCLUM_COV),) | |||||||
|         -Coverflow-checks=off -Cpanic=abort"
 |         -Coverflow-checks=off -Cpanic=abort"
 | ||||||
| endif | endif | ||||||
| 
 | 
 | ||||||
|  | ifeq ($(SGX_MODE), HYPER) | ||||||
|  |     LIBOS_FEATURES += hyper_mode | ||||||
|  | endif | ||||||
|  | 
 | ||||||
| # Release build is for production use. We enable code coverage only for debug
 | # Release build is for production use. We enable code coverage only for debug
 | ||||||
| # build.  It also simplifies the implementation as the release and debug build
 | # build.  It also simplifies the implementation as the release and debug build
 | ||||||
| # have different output paths.
 | # have different output paths.
 | ||||||
| @ -149,7 +160,7 @@ $(OBJ_DIR)/libos/$(SRC_OBJ)/Enclave_t.o: $(OBJ_DIR)/libos/$(SRC_OBJ)/Enclave_t.c | |||||||
| 	@echo "CC <= $@" | 	@echo "CC <= $@" | ||||||
| 
 | 
 | ||||||
| $(OBJ_DIR)/libos/$(SRC_OBJ)/Enclave_t.c: $(SGX_EDGER8R) ../Enclave.edl | $(OBJ_DIR)/libos/$(SRC_OBJ)/Enclave_t.c: $(SGX_EDGER8R) ../Enclave.edl | ||||||
| 	@cd $(OBJ_DIR)/libos/$(SRC_OBJ) && $(SGX_EDGER8R) --trusted $(CUR_DIR)/../Enclave.edl --search-path $(SGX_SDK)/include --search-path $(RUST_SGX_SDK_DIR)/edl | 	@cd $(OBJ_DIR)/libos/$(SRC_OBJ) && $(SGX_EDGER8R) $(SGX_EDGER8R_MODE) --trusted $(CUR_DIR)/../Enclave.edl --search-path $(SGX_SDK)/include --search-path $(RUST_SGX_SDK_DIR)/edl | ||||||
| 	@echo "GEN <= $@" | 	@echo "GEN <= $@" | ||||||
| 
 | 
 | ||||||
| $(C_OBJS):$(OBJ_DIR)/libos/$(SRC_OBJ)/%.o: src/%.c | $(C_OBJS):$(OBJ_DIR)/libos/$(SRC_OBJ)/%.o: src/%.c | ||||||
|  | |||||||
| @ -3,10 +3,12 @@ include ../sgxenv.mk | |||||||
| LIBOCCLUM_PAL_SO := $(BUILD_DIR)/lib/libocclum-pal.so | LIBOCCLUM_PAL_SO := $(BUILD_DIR)/lib/libocclum-pal.so | ||||||
| LIBOCCLUM_PAL_SONAME := libocclum-pal.so.$(MAJOR_VER_NUM) | LIBOCCLUM_PAL_SONAME := libocclum-pal.so.$(MAJOR_VER_NUM) | ||||||
| 
 | 
 | ||||||
| ifneq ($(SGX_MODE), HW) | ifeq ($(SGX_MODE), HW) | ||||||
| 	LIBOCCLUM_PAL_SO_REAL := $(BUILD_DIR)/lib/libocclum-pal_sim.so.$(VERSION_NUM) |  | ||||||
| else |  | ||||||
| 	LIBOCCLUM_PAL_SO_REAL := $(BUILD_DIR)/lib/libocclum-pal.so.$(VERSION_NUM) | 	LIBOCCLUM_PAL_SO_REAL := $(BUILD_DIR)/lib/libocclum-pal.so.$(VERSION_NUM) | ||||||
|  | else ifeq ($(SGX_MODE), HYPER) | ||||||
|  | 	LIBOCCLUM_PAL_SO_REAL := $(BUILD_DIR)/lib/libocclum-pal_hyper.so.$(VERSION_NUM) | ||||||
|  | else | ||||||
|  | 	LIBOCCLUM_PAL_SO_REAL := $(BUILD_DIR)/lib/libocclum-pal_sim.so.$(VERSION_NUM) | ||||||
| endif | endif | ||||||
| 
 | 
 | ||||||
| # A dependency on Rust SGX SDK
 | # A dependency on Rust SGX SDK
 | ||||||
| @ -19,10 +21,13 @@ CXX_SRCS := $(sort $(wildcard src/*.cpp src/*/*.cpp)) | |||||||
| C_OBJS := $(addprefix $(OBJ_DIR)/pal/,$(C_SRCS:.c=.o)) | C_OBJS := $(addprefix $(OBJ_DIR)/pal/,$(C_SRCS:.c=.o)) | ||||||
| CXX_OBJS := $(addprefix $(OBJ_DIR)/pal/,$(CXX_SRCS:.cpp=.o)) | CXX_OBJS := $(addprefix $(OBJ_DIR)/pal/,$(CXX_SRCS:.cpp=.o)) | ||||||
| 
 | 
 | ||||||
| # Object files for simulation mode are stored in libos/src_sim
 | # Object files for simulation mode are stored in pal/src_sim
 | ||||||
| ifneq ($(SGX_MODE), HW) | ifeq ($(SGX_MODE), SIM) | ||||||
| 	C_OBJS := $(subst pal/src,pal/src_sim,$(C_OBJS)) | 	C_OBJS := $(subst pal/src,pal/src_sim,$(C_OBJS)) | ||||||
| 	CXX_OBJS := $(subst pal/src,pal/src_sim,$(CXX_OBJS)) | 	CXX_OBJS := $(subst pal/src,pal/src_sim,$(CXX_OBJS)) | ||||||
|  | else ifeq ($(SGX_MODE), HYPER) | ||||||
|  | 	C_OBJS := $(subst pal/src,pal/src_hyper,$(C_OBJS)) | ||||||
|  | 	CXX_OBJS := $(subst pal/src,pal/src_hyper,$(CXX_OBJS)) | ||||||
| endif | endif | ||||||
| 
 | 
 | ||||||
| HEADER_FILES := $(sort $(wildcard src/*.h include/*.h include/*/*.h)) | HEADER_FILES := $(sort $(wildcard src/*.h include/*.h include/*/*.h)) | ||||||
| @ -37,10 +42,12 @@ LINK_FLAGS := $(SGX_LFLAGS_U) -shared -L$(RUST_SGX_SDK_DIR)/sgx_ustdc/ -lsgx_ust | |||||||
| LINK_FLAGS += -Wl,--version-script=pal.lds | LINK_FLAGS += -Wl,--version-script=pal.lds | ||||||
| ifndef OCCLUM_DISABLE_DCAP | ifndef OCCLUM_DISABLE_DCAP | ||||||
| LINK_FLAGS += -lsgx_dcap_ql -lsgx_dcap_quoteverify | LINK_FLAGS += -lsgx_dcap_ql -lsgx_dcap_quoteverify | ||||||
| ifneq ($(SGX_MODE), HW) | ifeq ($(SGX_MODE), HW) | ||||||
| LINK_FLAGS += -lsgx_quote_ex_sim |  | ||||||
| else |  | ||||||
| LINK_FLAGS += -lsgx_quote_ex | LINK_FLAGS += -lsgx_quote_ex | ||||||
|  | else ifeq ($(SGX_MODE), HYPER) | ||||||
|  | LINK_FLAGS += -lsgx_quote_ex_hyper | ||||||
|  | else | ||||||
|  | LINK_FLAGS += -lsgx_quote_ex_sim | ||||||
| endif | endif | ||||||
| endif | endif | ||||||
| 
 | 
 | ||||||
| @ -66,7 +73,7 @@ $(OBJ_DIR)/pal/$(SRC_OBJ)/Enclave_u.o: $(OBJ_DIR)/pal/$(SRC_OBJ)/Enclave_u.c | |||||||
| 
 | 
 | ||||||
| $(OBJ_DIR)/pal/$(SRC_OBJ)/Enclave_u.c: $(SGX_EDGER8R) ../Enclave.edl | $(OBJ_DIR)/pal/$(SRC_OBJ)/Enclave_u.c: $(SGX_EDGER8R) ../Enclave.edl | ||||||
| 	@cd $(OBJ_DIR)/pal/$(SRC_OBJ) && \
 | 	@cd $(OBJ_DIR)/pal/$(SRC_OBJ) && \
 | ||||||
| 		$(SGX_EDGER8R) --untrusted $(CUR_DIR)/../Enclave.edl \
 | 		$(SGX_EDGER8R) $(SGX_EDGER8R_MODE) --untrusted $(CUR_DIR)/../Enclave.edl \
 | ||||||
| 		--search-path $(SGX_SDK)/include \
 | 		--search-path $(SGX_SDK)/include \
 | ||||||
| 		--search-path $(RUST_SGX_SDK_DIR)/edl/ | 		--search-path $(RUST_SGX_SDK_DIR)/edl/ | ||||||
| 	@echo "GEN <= $@" | 	@echo "GEN <= $@" | ||||||
|  | |||||||
| @ -27,10 +27,12 @@ NO_COLOR := \033[0m | |||||||
| 
 | 
 | ||||||
| # Save code and object file generated during building src
 | # Save code and object file generated during building src
 | ||||||
| OBJ_DIR := $(PROJECT_DIR)/build/internal/src | OBJ_DIR := $(PROJECT_DIR)/build/internal/src | ||||||
| ifneq ($(SGX_MODE), HW) | ifeq ($(SGX_MODE), HW) | ||||||
| 	SRC_OBJ := src_sim |  | ||||||
| else |  | ||||||
| 	SRC_OBJ := src | 	SRC_OBJ := src | ||||||
|  | else ifeq ($(SGX_MODE), HYPER) | ||||||
|  | 	SRC_OBJ := src_hyper | ||||||
|  | else | ||||||
|  | 	SRC_OBJ := src_sim | ||||||
| endif | endif | ||||||
| 
 | 
 | ||||||
| BUILD_DIR := $(PROJECT_DIR)/build | BUILD_DIR := $(PROJECT_DIR)/build | ||||||
| @ -54,13 +56,19 @@ SGX_COMMON_CFLAGS := -Wall -std=gnu11 | |||||||
| ifeq ($(SGX_ARCH), x86) | ifeq ($(SGX_ARCH), x86) | ||||||
| 	SGX_COMMON_CFLAGS += -m32 | 	SGX_COMMON_CFLAGS += -m32 | ||||||
| 	SGX_LIBRARY_PATH := $(SGX_SDK)/lib | 	SGX_LIBRARY_PATH := $(SGX_SDK)/lib | ||||||
| 	SGX_ENCLAVE_SIGNER := $(SGX_SDK)/bin/x86/sgx_sign | 	SGX_BIN_PATH := $(SGX_SDK)/bin/x86 | ||||||
| 	SGX_EDGER8R := $(SGX_SDK)/bin/x86/sgx_edger8r |  | ||||||
| else | else | ||||||
| 	SGX_COMMON_CFLAGS += -m64 | 	SGX_COMMON_CFLAGS += -m64 | ||||||
| 	SGX_LIBRARY_PATH := $(SGX_SDK)/lib64 | 	SGX_LIBRARY_PATH := $(SGX_SDK)/lib64 | ||||||
| 	SGX_ENCLAVE_SIGNER := $(SGX_SDK)/bin/x64/sgx_sign | 	SGX_BIN_PATH := $(SGX_SDK)/bin/x64 | ||||||
| 	SGX_EDGER8R := $(SGX_SDK)/bin/x64/sgx_edger8r | endif | ||||||
|  | 
 | ||||||
|  | SGX_EDGER8R := $(SGX_BIN_PATH)/sgx_edger8r | ||||||
|  | ifneq ($(SGX_MODE), HYPER) | ||||||
|  | 	SGX_ENCLAVE_SIGNER := $(SGX_BIN_PATH)/sgx_sign | ||||||
|  | else | ||||||
|  | 	SGX_ENCLAVE_SIGNER := $(SGX_BIN_PATH)/sgx_sign_hyper | ||||||
|  | 	SGX_EDGER8R_MODE := --sgx-mode $(SGX_MODE) | ||||||
| endif | endif | ||||||
| 
 | 
 | ||||||
| ifeq ($(OCCLUM_RELEASE_BUILD), 1) | ifeq ($(OCCLUM_RELEASE_BUILD), 1) | ||||||
| @ -71,18 +79,23 @@ endif | |||||||
| 
 | 
 | ||||||
| RUST_SGX_SDK_DIR := $(PROJECT_DIR)/deps/rust-sgx-sdk | RUST_SGX_SDK_DIR := $(PROJECT_DIR)/deps/rust-sgx-sdk | ||||||
| 
 | 
 | ||||||
| ifneq ($(SGX_MODE), HW) | ifeq ($(SGX_MODE), HW) | ||||||
| 	SGX_COMMON_CFLAGS += -D SGX_MODE_SIM |  | ||||||
| else |  | ||||||
| 	SGX_COMMON_CFLAGS += -D SGX_MODE_HW | 	SGX_COMMON_CFLAGS += -D SGX_MODE_HW | ||||||
|  | else ifeq ($(SGX_MODE), HYPER) | ||||||
|  | 	SGX_COMMON_CFLAGS += -D SGX_MODE_HYPER | ||||||
|  | else | ||||||
|  | 	SGX_COMMON_CFLAGS += -D SGX_MODE_SIM | ||||||
| endif | endif | ||||||
| 
 | 
 | ||||||
| ifneq ($(SGX_MODE), HW) | ifeq ($(SGX_MODE), HW) | ||||||
| 	Trts_Library_Name := sgx_trts_sim |  | ||||||
| 	Service_Library_Name := sgx_tservice_sim |  | ||||||
| else |  | ||||||
| 	Trts_Library_Name := sgx_trts | 	Trts_Library_Name := sgx_trts | ||||||
| 	Service_Library_Name := sgx_tservice | 	Service_Library_Name := sgx_tservice | ||||||
|  | else ifeq ($(SGX_MODE), HYPER) | ||||||
|  | 	Trts_Library_Name := sgx_trts_hyper | ||||||
|  | 	Service_Library_Name := sgx_tservice_hyper | ||||||
|  | else | ||||||
|  | 	Trts_Library_Name := sgx_trts_sim | ||||||
|  | 	Service_Library_Name := sgx_tservice_sim | ||||||
| endif | endif | ||||||
| Crypto_Library_Name := sgx_tcrypto | Crypto_Library_Name := sgx_tcrypto | ||||||
| KeyExchange_Library_Name := sgx_tkey_exchange | KeyExchange_Library_Name := sgx_tkey_exchange | ||||||
| @ -95,10 +108,12 @@ SGX_CFLAGS_U := $(SGX_COMMON_CFLAGS) -fPIC -Wno-attributes \ | |||||||
| 	-I$(RUST_SGX_SDK_DIR)/edl -I$(SGX_SDK)/include | 	-I$(RUST_SGX_SDK_DIR)/edl -I$(SGX_SDK)/include | ||||||
| SGX_CXXFLAGS_U := $(SGX_CFLAGS_U) -std=c++11 | SGX_CXXFLAGS_U := $(SGX_CFLAGS_U) -std=c++11 | ||||||
| 
 | 
 | ||||||
| ifneq ($(SGX_MODE), HW) | ifeq ($(SGX_MODE), HW) | ||||||
| 	SGX_LFLAGS_U := $(SGX_COMMON_CFLAGS) -lpthread -L$(SGX_LIBRARY_PATH) -Wl,-Bstatic -lsgx_urts_sim -Wl,-Bdynamic -lsgx_uae_service_sim |  | ||||||
| else |  | ||||||
| 	SGX_LFLAGS_U := $(SGX_COMMON_CFLAGS) -lpthread -L$(SGX_LIBRARY_PATH) -Wl,-Bstatic -lsgx_urts -Wl,-Bdynamic -lsgx_uae_service -lsgx_enclave_common | 	SGX_LFLAGS_U := $(SGX_COMMON_CFLAGS) -lpthread -L$(SGX_LIBRARY_PATH) -Wl,-Bstatic -lsgx_urts -Wl,-Bdynamic -lsgx_uae_service -lsgx_enclave_common | ||||||
|  | else ifeq ($(SGX_MODE), HYPER) | ||||||
|  | 	SGX_LFLAGS_U := $(SGX_COMMON_CFLAGS) -lpthread -L$(SGX_LIBRARY_PATH) -Wl,-Bstatic -lsgx_urts_hyper -Wl,-Bdynamic -lsgx_uae_service_hyper | ||||||
|  | else | ||||||
|  | 	SGX_LFLAGS_U := $(SGX_COMMON_CFLAGS) -lpthread -L$(SGX_LIBRARY_PATH) -Wl,-Bstatic -lsgx_urts_sim -Wl,-Bdynamic -lsgx_uae_service_sim | ||||||
| endif | endif | ||||||
| 
 | 
 | ||||||
| #
 | #
 | ||||||
|  | |||||||
| @ -26,12 +26,12 @@ else | |||||||
| endif | endif | ||||||
| 
 | 
 | ||||||
| C_FLAGS = -Wall -Wno-return-local-addr -I../include -O2 -fPIC $(EXTRA_C_FLAGS) | C_FLAGS = -Wall -Wno-return-local-addr -I../include -O2 -fPIC $(EXTRA_C_FLAGS) | ||||||
| ifeq ($(SGX_MODE), SIM) | ifeq ($(SGX_MODE), HW) | ||||||
| 	C_FLAGS += -D SGX_MODE_SIM |  | ||||||
| else ifeq ($(SGX_MODE), SW) |  | ||||||
| 	C_FLAGS += -D SGX_MODE_SIM |  | ||||||
| else |  | ||||||
| 	C_FLAGS += -D SGX_MODE_HW | 	C_FLAGS += -D SGX_MODE_HW | ||||||
|  | else ifeq ($(SGX_MODE), HYPER) | ||||||
|  | 	C_FLAGS += -D SGX_MODE_HYPER | ||||||
|  | else | ||||||
|  | 	C_FLAGS += -D SGX_MODE_SIM | ||||||
| endif | endif | ||||||
| LINK_FLAGS = $(C_FLAGS) -pie $(EXTRA_LINK_FLAGS) | LINK_FLAGS = $(C_FLAGS) -pie $(EXTRA_LINK_FLAGS) | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										20
									
								
								tools/occlum
									
									
									
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										20
									
								
								tools/occlum
									
									
									
									
									
								
							| @ -28,7 +28,11 @@ status_file=$instance_dir/.__occlum_status | |||||||
| if [ -f "$occlum_sgx_env" ]; then | if [ -f "$occlum_sgx_env" ]; then | ||||||
|     source $occlum_sgx_env |     source $occlum_sgx_env | ||||||
|     SGX_GDB="$SGX_SDK/bin/sgx-gdb" |     SGX_GDB="$SGX_SDK/bin/sgx-gdb" | ||||||
|  |     if [[ -n $SGX_MODE && "$SGX_MODE" == "HYPER" ]]; then | ||||||
|  |         ENCLAVE_SIGN_TOOL="$SGX_SDK/bin/x64/sgx_sign_hyper" | ||||||
|  |     else | ||||||
|         ENCLAVE_SIGN_TOOL="$SGX_SDK/bin/x64/sgx_sign" |         ENCLAVE_SIGN_TOOL="$SGX_SDK/bin/x64/sgx_sign" | ||||||
|  |     fi | ||||||
|     ENCLAVE_SIGN_KEY="$occlum_dir/etc/template/Enclave.pem" |     ENCLAVE_SIGN_KEY="$occlum_dir/etc/template/Enclave.pem" | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| @ -252,7 +256,7 @@ cmd_build() { | |||||||
|         case "$1" in |         case "$1" in | ||||||
|         --sign-key)     [ -n "$2" ] && ENCLAVE_SIGN_KEY=$2 ; shift 2 || exit_error "empty signing key path"     ;; |         --sign-key)     [ -n "$2" ] && ENCLAVE_SIGN_KEY=$2 ; shift 2 || exit_error "empty signing key path"     ;; | ||||||
|         --sign-tool)    [ -n "$2" ] && ENCLAVE_SIGN_TOOL=$2 ; shift 2 || exit_error "empty signing tool path"   ;; |         --sign-tool)    [ -n "$2" ] && ENCLAVE_SIGN_TOOL=$2 ; shift 2 || exit_error "empty signing tool path"   ;; | ||||||
|         --sgx-mode)     [[ -n "$2" && "$2" != "HW" ]] && export SGX_MODE=SIM ; shift 2 || exit_error "empty sgx mode";; |         --sgx-mode)     [[ -n "$2" && "$2" != "HW" ]] && export SGX_MODE=$2 ; shift 2 || exit_error "empty sgx mode";; | ||||||
|         --image-key)    [ -n "$2" ] && SECURE_IMAGE_KEY=$2 ; shift 2 || exit_error "empty secure image key path"   ;; |         --image-key)    [ -n "$2" ] && SECURE_IMAGE_KEY=$2 ; shift 2 || exit_error "empty secure image key path"   ;; | ||||||
|         --buildin-image-key)  BUILDIN_IMAGE_KEY=true ; shift ;; |         --buildin-image-key)  BUILDIN_IMAGE_KEY=true ; shift ;; | ||||||
|         --force | -f)   MAKE_OPTION="clean" ; shift ;; |         --force | -f)   MAKE_OPTION="clean" ; shift ;; | ||||||
| @ -270,8 +274,13 @@ cmd_build() { | |||||||
| 
 | 
 | ||||||
|     if [[ -n $SGX_MODE && "$SGX_MODE" != "HW" ]]; then |     if [[ -n $SGX_MODE && "$SGX_MODE" != "HW" ]]; then | ||||||
|         export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SGX_SDK/sdk_libs |         export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SGX_SDK/sdk_libs | ||||||
|  |         if [[ "$SGX_MODE" != "HYPER" ]]; then | ||||||
|             pal_lib=libocclum-pal_sim.so |             pal_lib=libocclum-pal_sim.so | ||||||
|             libos_lib=libocclum-libos_sim.so |             libos_lib=libocclum-libos_sim.so | ||||||
|  |         else | ||||||
|  |             pal_lib=libocclum-pal_hyper.so | ||||||
|  |             libos_lib=libocclum-libos_hyper.so | ||||||
|  |         fi | ||||||
|         echo "SGX mode: $SGX_MODE" |         echo "SGX mode: $SGX_MODE" | ||||||
|     else |     else | ||||||
|         echo "SGX mode: HW" |         echo "SGX mode: HW" | ||||||
| @ -279,7 +288,7 @@ cmd_build() { | |||||||
| 
 | 
 | ||||||
|     # If sgx mode is changed, build thoroughly again |     # If sgx mode is changed, build thoroughly again | ||||||
|     if [[ -n $SGX_MODE && "$SGX_MODE" != "HW" ]]; then |     if [[ -n $SGX_MODE && "$SGX_MODE" != "HW" ]]; then | ||||||
|         if [ "$(cat $instance_dir/.sgx_mode 2>/dev/null)" != "SIM" ]; then |         if [ "$(cat $instance_dir/.sgx_mode 2>/dev/null)" != "$SGX_MODE" ]; then | ||||||
|             MAKE_OPTION="clean" |             MAKE_OPTION="clean" | ||||||
|         fi |         fi | ||||||
|     else |     else | ||||||
| @ -304,7 +313,7 @@ cmd_build() { | |||||||
|     echo "built" > $status_file |     echo "built" > $status_file | ||||||
| 
 | 
 | ||||||
|     if [[ -n $SGX_MODE && "$SGX_MODE" != "HW" ]]; then |     if [[ -n $SGX_MODE && "$SGX_MODE" != "HW" ]]; then | ||||||
|         echo "SIM" > .sgx_mode |         echo "$SGX_MODE" > .sgx_mode | ||||||
|     else |     else | ||||||
|         echo "HW" > .sgx_mode |         echo "HW" > .sgx_mode | ||||||
|     fi |     fi | ||||||
| @ -520,8 +529,13 @@ cmd_mount() { | |||||||
| 
 | 
 | ||||||
|     SGX_MODE=$(cat $instance_dir/.sgx_mode) |     SGX_MODE=$(cat $instance_dir/.sgx_mode) | ||||||
|     if [[ -n $SGX_MODE && "$SGX_MODE" != "HW" ]]; then |     if [[ -n $SGX_MODE && "$SGX_MODE" != "HW" ]]; then | ||||||
|  |         if [[ "$SGX_MODE" != "HYPER" ]]; then | ||||||
|             sefs_cli="$occlum_dir/build/bin/sefs-cli_sim" |             sefs_cli="$occlum_dir/build/bin/sefs-cli_sim" | ||||||
|             sefs_cli_lib="$occlum_dir/build/lib/libsefs-cli_sim.so" |             sefs_cli_lib="$occlum_dir/build/lib/libsefs-cli_sim.so" | ||||||
|  |         else | ||||||
|  |             sefs_cli="$occlum_dir/build/bin/sefs-cli_hyper" | ||||||
|  |             sefs_cli_lib="$occlum_dir/build/lib/libsefs-cli_hyper.so" | ||||||
|  |         fi | ||||||
|         echo "SGX mode: $SGX_MODE" |         echo "SGX mode: $SGX_MODE" | ||||||
|     else |     else | ||||||
|         sefs_cli="$occlum_dir/build/bin/sefs-cli" |         sefs_cli="$occlum_dir/build/bin/sefs-cli" | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user