From 81eb364c5bf857e3eb48855e5bb215219c69d5f4 Mon Sep 17 00:00:00 2001 From: LI Qing Date: Thu, 16 Jul 2020 09:11:11 +0800 Subject: [PATCH] Install zlib in occlum-gcc toolchians --- demos/golang/run_golang_on_occlum.sh | 2 +- demos/grpc/README.md | 2 +- demos/grpc/download_and_install_grpc.sh | 23 ------------------- demos/openvino/download_and_build_openvino.sh | 8 ------- .../download_and_build_tflite.sh | 13 ++--------- tools/docker/Dockerfile.centos7.5 | 14 +++++------ tools/docker/Dockerfile.ubuntu18.04 | 14 +++++------ tools/toolchains/gcc/install_zlib.sh | 13 +++++++++++ tools/toolchains/golang/build.sh | 3 --- 9 files changed, 31 insertions(+), 61 deletions(-) create mode 100755 tools/toolchains/gcc/install_zlib.sh diff --git a/demos/golang/run_golang_on_occlum.sh b/demos/golang/run_golang_on_occlum.sh index 3920c88f..77edae00 100755 --- a/demos/golang/run_golang_on_occlum.sh +++ b/demos/golang/run_golang_on_occlum.sh @@ -23,6 +23,6 @@ echo "${new_json}" > Occlum.json cp ../web_server image/bin occlum build -# 3. Run the hello world sample +# 3. Run the web server sample echo -e "${BLUE}occlum run /bin/web_server${NC}" occlum run /bin/web_server diff --git a/demos/grpc/README.md b/demos/grpc/README.md index 95a336a7..9b374f70 100644 --- a/demos/grpc/README.md +++ b/demos/grpc/README.md @@ -7,7 +7,7 @@ Downlaod, build and install openssl into `/usr/local/occlum/x86_64-linux-musl/li ``` ## Step 2: -Download, build and install cares, zlib, protobuf and finally gRPC into `/usr/local/occlum/x86_64-linux-musl/lib`: +Download, build and install cares, protobuf and finally gRPC into `/usr/local/occlum/x86_64-linux-musl/lib`: ``` ./download_and_install_grpc.sh ``` diff --git a/demos/grpc/download_and_install_grpc.sh b/demos/grpc/download_and_install_grpc.sh index 8f2a1dbc..5daec3ed 100755 --- a/demos/grpc/download_and_install_grpc.sh +++ b/demos/grpc/download_and_install_grpc.sh @@ -36,29 +36,6 @@ then fi make install -# Install zlib -cd $GRPC_SRC_DIR/third_party/zlib -git submodule update --init . -git checkout tags/v1.2.11 -mkdir -p build -cd build -cmake ../ \ - -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=occlum-gcc \ - -DCMAKE_CXX_COMPILER=occlum-g++ -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR \ - -DCMAKE_NO_SYSTEM_FROM_IMPORTED=TRUE -if [ $? -ne 0 ] -then - echo "zlib cmake failed" - exit 1 -fi -make -j$(nproc) -if [ $? -ne 0 ] -then - echo "zlib make failed" - exit 1 -fi -make install - # Install protobuf cd $GRPC_SRC_DIR/third_party/protobuf git submodule update --init . diff --git a/demos/openvino/download_and_build_openvino.sh b/demos/openvino/download_and_build_openvino.sh index 411809ef..d9c70029 100755 --- a/demos/openvino/download_and_build_openvino.sh +++ b/demos/openvino/download_and_build_openvino.sh @@ -11,14 +11,6 @@ show_usage() { } build_opencv() { - rm -rf deps/zlib && mkdir -p deps/zlib - pushd deps/zlib - git clone https://github.com/madler/zlib . - CC=occlum-gcc CXX=occlum-g++ ./configure --prefix=$PREFIX - make - sudo make install - popd - rm -rf deps/opencv && mkdir -p deps/opencv pushd deps/opencv git clone https://github.com/opencv/opencv . diff --git a/demos/tensorflow_lite/download_and_build_tflite.sh b/demos/tensorflow_lite/download_and_build_tflite.sh index bbbd9f66..79a6ed27 100755 --- a/demos/tensorflow_lite/download_and_build_tflite.sh +++ b/demos/tensorflow_lite/download_and_build_tflite.sh @@ -2,16 +2,7 @@ set -e SRC_DIR="tensorflow_src" -# 1. Install dependent zlib -mkdir -p deps/zlib -pushd deps/zlib -git clone https://github.com/madler/zlib . -CC=occlum-gcc CXX=occlum-g++ ./configure --prefix=/usr/local/occlum/x86_64-linux-musl -make -sudo make install -popd - -# 2. Build tensorflow lite and the demo program +# 1. Build tensorflow lite and the demo program mkdir -p $SRC_DIR pushd $SRC_DIR git clone https://github.com/tensorflow/tensorflow . @@ -21,7 +12,7 @@ git apply ../patch/fix-tflite-Makefile-v1.15.0-rc0.diff make -j 3 -f tensorflow/lite/tools/make/Makefile popd -# 3. Download tflite model and labels +# 2. Download tflite model and labels mkdir models curl https://storage.googleapis.com/download.tensorflow.org/models/mobilenet_v1_2018_02_22/mobilenet_v1_1.0_224.tgz | tar xzv -C ./models curl https://storage.googleapis.com/download.tensorflow.org/models/mobilenet_v1_1.0_224_frozen.tgz | tar xzv -C ./models mobilenet_v1_1.0_224/labels.txt diff --git a/tools/docker/Dockerfile.centos7.5 b/tools/docker/Dockerfile.centos7.5 index 2d92d8bc..22ea54d9 100644 --- a/tools/docker/Dockerfile.centos7.5 +++ b/tools/docker/Dockerfile.centos7.5 @@ -89,21 +89,21 @@ RUN curl https://sh.rustup.rs -sSf | \ cargo -V # Install Occlum toolchain -COPY toolchains/gcc/* /tmp/ +COPY toolchains/gcc /tmp/gcc WORKDIR /tmp -RUN ./build.sh +RUN cd gcc && ./build.sh && ./install_zlib.sh && rm -rf /tmp/gcc ENV PATH="/opt/occlum/build/bin:/usr/local/occlum/bin:$PATH" # Install Occlum Golang toolchain -COPY toolchains/golang/* /tmp/ +COPY toolchains/golang /tmp/golang WORKDIR /tmp -RUN ./build.sh -ENV PATH="/usr/local/occlum/golang/bin:$PATH" +RUN cd golang && ./build.sh && rm -rf /tmp/golang +ENV PATH="/opt/occlum/toolchains/golang/bin:$PATH" # Install Occlum Rust toolchain -COPY toolchains/rust/* /tmp/ +COPY toolchains/rust /tmp/rust WORKDIR /tmp -RUN ./build.sh +RUN cd rust && ./build.sh && rm -rf /tmp/rust ENV PATH="/opt/occlum/toolchains/rust/bin:$PATH" ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/intel/sgxsdk/sdk_libs" diff --git a/tools/docker/Dockerfile.ubuntu18.04 b/tools/docker/Dockerfile.ubuntu18.04 index 056daeb7..4c5e952e 100644 --- a/tools/docker/Dockerfile.ubuntu18.04 +++ b/tools/docker/Dockerfile.ubuntu18.04 @@ -76,21 +76,21 @@ RUN curl https://sh.rustup.rs -sSf | \ cargo -V # Install Occlum toolchain -COPY toolchains/gcc/* /tmp/ +COPY toolchains/gcc /tmp/gcc WORKDIR /tmp -RUN ./build.sh +RUN cd gcc && ./build.sh && ./install_zlib.sh && rm -rf /tmp/gcc ENV PATH="/opt/occlum/build/bin:/usr/local/occlum/bin:$PATH" # Install Occlum Golang toolchain -COPY toolchains/golang/* /tmp/ +COPY toolchains/golang /tmp/golang WORKDIR /tmp -RUN ./build.sh -ENV PATH="/usr/local/occlum/golang/bin:$PATH" +RUN cd golang && ./build.sh && rm -rf /tmp/golang +ENV PATH="/opt/occlum/toolchains/golang/bin:$PATH" # Install Occlum Rust toolchain -COPY toolchains/rust/* /tmp/ +COPY toolchains/rust /tmp/rust WORKDIR /tmp -RUN ./build.sh +RUN cd rust && ./build.sh && rm -rf /tmp/rust ENV PATH="/opt/occlum/toolchains/rust/bin:$PATH" ENV LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/intel/sgxsdk/sdk_libs" diff --git a/tools/toolchains/gcc/install_zlib.sh b/tools/toolchains/gcc/install_zlib.sh new file mode 100755 index 00000000..5fda3d7e --- /dev/null +++ b/tools/toolchains/gcc/install_zlib.sh @@ -0,0 +1,13 @@ +#!/bin/bash +set -e +PREFIX=/opt/occlum/toolchains/gcc/x86_64-linux-musl +export PATH="/usr/local/occlum/bin:$PATH" + +rm -rf zlib && mkdir -p zlib +pushd zlib +git clone https://github.com/madler/zlib . +git checkout -b v1.2.11 tags/v1.2.11 +CC=occlum-gcc CXX=occlum-g++ ./configure --prefix=$PREFIX +make +sudo make install +popd diff --git a/tools/toolchains/golang/build.sh b/tools/toolchains/golang/build.sh index 33807748..8c64a15b 100755 --- a/tools/toolchains/golang/build.sh +++ b/tools/toolchains/golang/build.sh @@ -34,6 +34,3 @@ CC=\$OCCLUM_GCC ${INSTALL_DIR}/bin/go "\$@" EOF chmod +x ${INSTALL_DIR}/bin/occlum-go - -# Make symbolic links -ln -sf ${INSTALL_DIR} /usr/local/occlum/golang