Fix occlum PAL library compatibility issues in demos

This commit is contained in:
Hui, Chunyang 2020-07-14 11:16:00 +00:00
parent b4750c0fcd
commit 306c0333ad
8 changed files with 40 additions and 35 deletions

@ -1,12 +1,6 @@
SGX_SDK ?= /opt/intel/sgxsdk
SGX_MODE ?= HW
ifneq ($(SGX_MODE), HW)
OCCLUM_LIB := /opt/occlum/build_sim/lib
else
OCCLUM_LIB := /opt/occlum/build/lib
endif
.PHONY: all build_src test clean
all: occlum_context
@ -25,7 +19,7 @@ build_src:
TOTAL_BYTES := 10000000000 # 10GB
test:
LD_LIBRARY_PATH=$(OCCLUM_LIB):$(SGX_SDK)/sdk_libs RUST_BACKTRACE=1 \
LD_LIBRARY_PATH=bench_driver/build:$(SGX_SDK)/sdk_libs RUST_BACKTRACE=1 \
./bench_driver/build/bench_driver $(TOTAL_BYTES)
clean:

@ -11,19 +11,24 @@ C_OBJS := $(addprefix $(BUILD_DIR)/,$(C_SRCS:.c=.o))
ifneq ($(SGX_MODE), HW)
URTS_LIBRARY_NAME := sgx_urts_sim
UAE_SERVICE_LIBRARY_NAME := sgx_uae_service_sim
OCCLUM_BUILD := build_sim
OCCLUM_PAL_LIB := occlum-pal_sim
else
URTS_LIBRARY_NAME := sgx_urts
UAE_SERVICE_LIBRARY_NAME := sgx_uae_service
OCCLUM_BUILD := build
OCCLUM_PAL_LIB := occlum-pal
endif
MAJOR_VER_NUM = $(shell grep '\#define OCCLUM_MAJOR_VERSION' $(OCCLUM_PREFIX)/include/occlum_version.h | awk '{print $$3}')
MINOR_VER_NUM = $(shell grep '\#define OCCLUM_MINOR_VERSION' $(OCCLUM_PREFIX)/include/occlum_version.h | awk '{print $$3}')
PATCH_VER_NUM = $(shell grep '\#define OCCLUM_PATCH_VERSION' $(OCCLUM_PREFIX)/include/occlum_version.h | awk '{print $$3}')
VERSION_NUM = $(MAJOR_VER_NUM).$(MINOR_VER_NUM).$(PATCH_VER_NUM)
C_FLAGS := -Wall \
-I$(SGX_SDK)/include \
-I$(OCCLUM_PREFIX)/include
LINK_FLAGS := $(C_FLAGS) -lpthread \
-L$(SGX_SDK)/lib64 -l$(URTS_LIBRARY_NAME) -l$(UAE_SERVICE_LIBRARY_NAME) -lsgx_uprotected_fs \
-L$(OCCLUM_PREFIX)/$(OCCLUM_BUILD)/lib -locclum-pal
-L$(BUILD_DIR) -locclum-pal
ALL_BUILD_SUBDIRS := $(sort $(patsubst %/,%,$(dir $(BIN) $(C_OBJS))))
@ -33,7 +38,7 @@ all: $(BIN)
$(BIN) $(C_OBJS): $(ALL_BUILD_SUBDIRS)
$(BIN): $(C_OBJS)
$(BIN): $(C_OBJS) libocclum-pal.so
@$(CC) $(C_OBJS) -o $@ $(LINK_FLAGS)
@echo "LINK => $@"
@ -41,6 +46,10 @@ $(BUILD_DIR)/%.o: %.c
@$(CC) $(C_FLAGS) -c $< -o $@
@echo "CC <= $@"
libocclum-pal.so: $(ALL_BUILD_SUBDIRS)
@cd $(BUILD_DIR) && ln -sf $(OCCLUM_PREFIX)/build/lib/lib$(OCCLUM_PAL_LIB).so.$(VERSION_NUM) libocclum-pal.so.$(MAJOR_VER_NUM) && \
ln -sf libocclum-pal.so.$(MAJOR_VER_NUM) libocclum-pal.so
$(ALL_BUILD_SUBDIRS):
@mkdir -p $@

@ -35,7 +35,6 @@ TARGET = appinitiator
RM = rm -f
#SGX_SDK ?= /opt/intel/sgxsdk
OCCLUM_PREFIX ?= /opt/occlum
CFLAGS := -Wall \
@ -50,13 +49,18 @@ CXXFLAGS := -Wall \
ifneq ($(SGX_MODE), HW)
URTS_LIB_NAME := sgx_urts_sim
UAE_SERVICE_LIB := sgx_uae_service_sim
BUILD_DIR:= build_sim
OCCLUM_PAL_LIB := occlum-pal_sim
else
URTS_LIB_NAME := sgx_urts
UAE_SERVICE_LIB := sgx_uae_service
BUILD_DIR:= build
OCCLUM_PAL_LIB := occlum-pal
endif
MAJOR_VER_NUM = $(shell grep '\#define OCCLUM_MAJOR_VERSION' $(OCCLUM_PREFIX)/include/occlum_version.h | awk '{print $$3}')
MINOR_VER_NUM = $(shell grep '\#define OCCLUM_MINOR_VERSION' $(OCCLUM_PREFIX)/include/occlum_version.h | awk '{print $$3}')
PATCH_VER_NUM = $(shell grep '\#define OCCLUM_PATCH_VERSION' $(OCCLUM_PREFIX)/include/occlum_version.h | awk '{print $$3}')
VERSION_NUM = $(MAJOR_VER_NUM).$(MINOR_VER_NUM).$(PATCH_VER_NUM)
INC:=-I$(SGX_SDK)/include -I../Include
LIB := -l$(URTS_LIB_NAME) -l$(UAE_SERVICE_LIB) -L$(SGX_SDK)/lib64 -lpthread
CXXFLAGS += $(INC) $(LIB)
@ -74,8 +78,8 @@ else
endif
LINK_FLAGS := $(CXXFLAGS) -lpthread \
-L$(SGX_SDK)/lib64 -lsgx_uprotected_fs \
-L$(OCCLUM_PREFIX)/$(BUILD_DIR)/lib -locclum-pal
-L$(SGX_SDK)/lib64 -lsgx_uprotected_fs \
-L$(TOPDIR)/$(OUTDIR) -locclum-pal
SRC_CPP=$(wildcard *.cpp)
@ -108,11 +112,15 @@ EnclaveInitiator_u.o: EnclaveInitiator_u.c
EnclaveInitiator_u.c:
@$(SGX_EDGER8R) --untrusted ../EnclaveInitiator/EnclaveInitiator.edl --search-path $(SGX_SDK)/include
$(TARGET): EnclaveInitiator_u.o $(SRC_OBJ)
@$(CXX) $^ $(LINK_FLAGS) -o $@
@echo "GEN => $@"
libocclum-pal.so:
@mkdir -p $(TOPDIR)/$(OUTDIR)
@cd $(TOPDIR)/$(OUTDIR) && ln -sf $(OCCLUM_PREFIX)/build/lib/lib$(OCCLUM_PAL_LIB).so.$(VERSION_NUM) libocclum-pal.so.$(MAJOR_VER_NUM) && \
ln -sf libocclum-pal.so.$(MAJOR_VER_NUM) libocclum-pal.so
$(TARGET): EnclaveInitiator_u.o $(SRC_OBJ) libocclum-pal.so
@$(CXX) EnclaveInitiator_u.o $(SRC_OBJ) $(LINK_FLAGS) -o $@
@echo "GEN => $@"
@mv $@ $(TOPDIR)/$(OUTDIR)/
clean:
@$(RM) $(TARGET) *.o *_u.c *_u.h
@$(RM) $(TARGET) *.o *_u.c *_u.h libocclum-pal.so.$(MAJOR_VER_NUM) libocclum-pal.so

@ -13,7 +13,7 @@
#include "EnclaveInitiator_u.h"
#define ENCLAVE_INITIATOR_NAME "./bin/libenclave_initiator.signed.so"
#define ENCLAVE_INITIATOR_NAME "./build/libenclave_initiator.signed.so"
pthread_t thread;
sgx_enclave_id_t initiator_enclave_id = 0;

@ -20,4 +20,4 @@ proc_msg.o : proc_msg.c
$(CC) -c proc_msg.c $(CFLAGS) $(INCLUDE_PATH) -o proc_msg.o
clean:
rm -rf *.o responder
@rm -rf *.o responder

@ -26,4 +26,4 @@ crypto_aes_gcm.o : crypto_aes_gcm.cpp
$(CXX) -c crypto_aes_gcm.cpp $(CFLAGS) -o crypto_aes_gcm.o
clean:
rm -rf *.o ec_dh *.so
@rm -rf *.o ec_dh *.so

@ -2,16 +2,10 @@ CUR_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
OPENSSL ?= $(CUR_DIR)/deps/openssl
SGX_SDK ?= /opt/intel/sgxsdk
BIN_DIR := bin
APP := $(BIN_DIR)/appinitiator
BUILD_DIR := build
APP := $(BUILD_DIR)/appinitiator
SGX_MODE ?= HW
ifneq ($(SGX_MODE), HW)
OCCLUM_LIB := /opt/occlum/build_sim/lib
else
OCCLUM_LIB := /opt/occlum/build/lib
endif
occlum_=$(CUR_DIR)/../..
.PHONY: all build_src test clean
@ -35,7 +29,7 @@ build_src:
@$(MAKE) --no-print-directory -C EnclaveInitiator
test: build_src
LD_LIBRARY_PATH=$(OCCLUM_LIB):$(SGX_SDK)/sdk_libs RUST_BACKTRACE=1 \
LD_LIBRARY_PATH=$(BUILD_DIR):$(SGX_SDK)/sdk_libs RUST_BACKTRACE=1 \
./$(APP)
clean:
@ -43,4 +37,4 @@ clean:
@$(MAKE) --no-print-directory -C AppResponder clean
@$(MAKE) --no-print-directory -C EnclaveInitiator clean
@$(MAKE) --no-print-directory -C DiffieHellmanLibrary clean
@rm -rf .occlum occlum_context bin
@rm -rf .occlum occlum_context $(BUILD_DIR)

@ -61,9 +61,9 @@ SGX_SDK_PATH ?= $(SGX_SDK)
#-------------------------------------------------------------------
# This is the output folder.
#-------------------------------------------------------------------
BIN_DIR := bin
BUILD_DIR := build
TOPDIR = $(ROOT_DIR)
OUTDIR := $(BIN_DIR)
OUTDIR := $(BUILD_DIR)
CP = cp
CC ?= gcc