Build Occlum tools in SGX simulation mode by default
This commit is contained in:
parent
0bb1cbfbb5
commit
255f277f30
23
Makefile
23
Makefile
@ -18,6 +18,11 @@ else
|
|||||||
OCCLUM_GIT_OPTIONS +=
|
OCCLUM_GIT_OPTIONS +=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# Enclaves using by tools are running in simulation mode by default to run faster.
|
||||||
|
# If a user really wants to run the tools in SGX hardware mode, please use command
|
||||||
|
# `OCCLUM_TOOLS_SIM_MODE_ONLY=N make submodule`.
|
||||||
|
OCCLUM_TOOLS_SIM_MODE_ONLY ?= Y
|
||||||
|
|
||||||
submodule: githooks
|
submodule: githooks
|
||||||
git submodule init
|
git submodule init
|
||||||
git submodule update $(OCCLUM_GIT_OPTIONS)
|
git submodule update $(OCCLUM_GIT_OPTIONS)
|
||||||
@ -25,17 +30,29 @@ submodule: githooks
|
|||||||
cd deps/rust-sgx-sdk && git apply ../rust-sgx-sdk.patch >/dev/null 2>&1 || git apply ../rust-sgx-sdk.patch -R --check
|
cd deps/rust-sgx-sdk && git apply ../rust-sgx-sdk.patch >/dev/null 2>&1 || git apply ../rust-sgx-sdk.patch -R --check
|
||||||
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/serde-json-sgx && git apply ../serde-json-sgx.patch >/dev/null 2>&1 || git apply ../serde-json-sgx.patch -R --check
|
||||||
|
|
||||||
@# Build tools and sefs-fuse for both HW mode and SIM mode
|
ifeq ($(OCCLUM_TOOLS_SIM_MODE_ONLY), Y)
|
||||||
|
@# Tools and sefs-fuse are used in SIM mode by default
|
||||||
|
@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-fuse clean
|
@$(MAKE) --no-print-directory -C deps/sefs/sefs-fuse clean
|
||||||
@$(MAKE) SGX_MODE=SIM --no-print-directory -C deps/sefs/sefs-fuse
|
@$(MAKE) SGX_MODE=SIM --no-print-directory -C deps/sefs/sefs-fuse
|
||||||
@cp deps/sefs/sefs-fuse/bin/sefs-fuse build_sim/bin
|
@cp deps/sefs/sefs-fuse/bin/sefs-fuse build_sim/bin
|
||||||
@cp deps/sefs/sefs-fuse/lib/libsefs-fuse.signed.so build_sim/lib
|
@cp deps/sefs/sefs-fuse/lib/libsefs-fuse.signed.so build_sim/lib
|
||||||
@$(MAKE) --no-print-directory -C tools
|
@cp -r build_sim build
|
||||||
|
else
|
||||||
|
@# Tools and sefs-fuse are built for both HW mode and SIM mode
|
||||||
|
@rm -rf build build_sim
|
||||||
|
@$(MAKE) SGX_MODE=HW --no-print-directory -C tools
|
||||||
@$(MAKE) --no-print-directory -C deps/sefs/sefs-fuse clean
|
@$(MAKE) --no-print-directory -C deps/sefs/sefs-fuse clean
|
||||||
@$(MAKE) --no-print-directory -C deps/sefs/sefs-fuse
|
@$(MAKE) SGX_MODE=HW --no-print-directory -C deps/sefs/sefs-fuse
|
||||||
@cp deps/sefs/sefs-fuse/bin/sefs-fuse build/bin
|
@cp deps/sefs/sefs-fuse/bin/sefs-fuse build/bin
|
||||||
@cp deps/sefs/sefs-fuse/lib/libsefs-fuse.signed.so build/lib
|
@cp deps/sefs/sefs-fuse/lib/libsefs-fuse.signed.so build/lib
|
||||||
|
@$(MAKE) SGX_MODE=SIM --no-print-directory -C tools
|
||||||
|
@$(MAKE) --no-print-directory -C deps/sefs/sefs-fuse clean
|
||||||
|
@$(MAKE) SGX_MODE=SIM --no-print-directory -C deps/sefs/sefs-fuse
|
||||||
|
@cp deps/sefs/sefs-fuse/bin/sefs-fuse build_sim/bin
|
||||||
|
@cp deps/sefs/sefs-fuse/lib/libsefs-fuse.signed.so build_sim/lib
|
||||||
|
endif
|
||||||
|
|
||||||
src:
|
src:
|
||||||
@$(MAKE) --no-print-directory -C src
|
@$(MAKE) --no-print-directory -C src
|
||||||
|
@ -155,7 +155,7 @@ To build Occlum from the latest source code, do the following steps in an Occlum
|
|||||||
mkdir occlum && cd occlum
|
mkdir occlum && cd occlum
|
||||||
git clone https://github.com/occlum/occlum .
|
git clone https://github.com/occlum/occlum .
|
||||||
```
|
```
|
||||||
2. Prepare the submodules required by Occlum
|
2. Prepare the submodules and tools required by Occlum.
|
||||||
```
|
```
|
||||||
make submodule
|
make submodule
|
||||||
```
|
```
|
||||||
|
12
tools/occlum
12
tools/occlum
@ -40,6 +40,11 @@ Usage:
|
|||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get_conf_root_fs_mac() {
|
||||||
|
LD_LIBRARY_PATH="$SGX_SDK/sdk_libs" \
|
||||||
|
"$occlum_dir/$build_dir/bin/occlum-protect-integrity" show-mac "$context_dir/build/mount/__ROOT/metadata"
|
||||||
|
}
|
||||||
|
|
||||||
get_conf_default_stack_size() {
|
get_conf_default_stack_size() {
|
||||||
cat "$working_dir/Occlum.json" | \
|
cat "$working_dir/Occlum.json" | \
|
||||||
python -c "import sys, json; print json.load(sys.stdin)['process']['default_stack_size']"
|
python -c "import sys, json; print json.load(sys.stdin)['process']['default_stack_size']"
|
||||||
@ -71,6 +76,7 @@ get_conf_entry_points() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get_occlum_conf_file_mac() {
|
get_occlum_conf_file_mac() {
|
||||||
|
LD_LIBRARY_PATH="$SGX_SDK/sdk_libs" \
|
||||||
"$occlum_dir/$build_dir/bin/occlum-protect-integrity" show-mac "$context_dir/build/Occlum.json.protected"
|
"$occlum_dir/$build_dir/bin/occlum-protect-integrity" show-mac "$context_dir/build/Occlum.json.protected"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -173,13 +179,13 @@ cmd_build() {
|
|||||||
chmod 531 -R $working_dir/image/lib
|
chmod 531 -R $working_dir/image/lib
|
||||||
mkdir -p build/mount/
|
mkdir -p build/mount/
|
||||||
cd "$occlum_dir/$build_dir/bin/" && \
|
cd "$occlum_dir/$build_dir/bin/" && \
|
||||||
./sefs-fuse \
|
LD_LIBRARY_PATH="$SGX_SDK/sdk_libs" ./sefs-fuse \
|
||||||
--integrity-only \
|
--integrity-only \
|
||||||
"$context_dir/build/mount/__ROOT" \
|
"$context_dir/build/mount/__ROOT" \
|
||||||
"$working_dir/image" \
|
"$working_dir/image" \
|
||||||
zip
|
zip
|
||||||
|
|
||||||
export OCCLUM_CONF_ROOT_FS_MAC=`"$occlum_dir/$build_dir/bin/occlum-protect-integrity" show-mac "$context_dir/build/mount/__ROOT/metadata"`
|
export OCCLUM_CONF_ROOT_FS_MAC=`get_conf_root_fs_mac`
|
||||||
export OCCLUM_CONF_USER_SPACE_SIZE=`get_conf_user_space_size`
|
export OCCLUM_CONF_USER_SPACE_SIZE=`get_conf_user_space_size`
|
||||||
export OCCLUM_CONF_DEFAULT_STACK_SIZE=`get_conf_default_stack_size`
|
export OCCLUM_CONF_DEFAULT_STACK_SIZE=`get_conf_default_stack_size`
|
||||||
export OCCLUM_CONF_DEFAULT_HEAP_SIZE=`get_conf_default_heap_size`
|
export OCCLUM_CONF_DEFAULT_HEAP_SIZE=`get_conf_default_heap_size`
|
||||||
@ -189,7 +195,7 @@ cmd_build() {
|
|||||||
cd "$context_dir/build"
|
cd "$context_dir/build"
|
||||||
"$occlum_dir/$build_dir/bin/occlum-gen-default-occlum-json"\
|
"$occlum_dir/$build_dir/bin/occlum-gen-default-occlum-json"\
|
||||||
> "Occlum.json"
|
> "Occlum.json"
|
||||||
"$occlum_dir/$build_dir/bin/occlum-protect-integrity" protect Occlum.json
|
LD_LIBRARY_PATH="$SGX_SDK/sdk_libs" "$occlum_dir/$build_dir/bin/occlum-protect-integrity" protect Occlum.json
|
||||||
|
|
||||||
export OCCLUM_BUILTIN_CONF_FILE_MAC=`get_occlum_conf_file_mac`
|
export OCCLUM_BUILTIN_CONF_FILE_MAC=`get_occlum_conf_file_mac`
|
||||||
echo "EXPORT => OCCLUM_BUILTIN_CONF_FILE_MAC = $OCCLUM_BUILTIN_CONF_FILE_MAC"
|
echo "EXPORT => OCCLUM_BUILTIN_CONF_FILE_MAC = $OCCLUM_BUILTIN_CONF_FILE_MAC"
|
||||||
|
Loading…
Reference in New Issue
Block a user