From b70d3e3f73b5b1c040d19eac3265073c4eae1664 Mon Sep 17 00:00:00 2001 From: William Allen Date: Sun, 7 May 2023 17:22:04 -0400 Subject: [PATCH 1/3] Link Boost statically --- Dockerfile | 1 - compare_hashes/CMakeLists.txt | 35 +++++++++++++++++++++++++++++++++++ install_lichen.sh | 5 +++-- 3 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 compare_hashes/CMakeLists.txt diff --git a/Dockerfile b/Dockerfile index 9d3797a..ec4de49 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,7 +5,6 @@ ARG DEBIAN_FRONTEND=noninteractive # C++ and Python RUN apt-get update \ && apt-get install -y \ - libboost-all-dev \ python3.8 \ python3-pip \ clang-6.0 \ diff --git a/compare_hashes/CMakeLists.txt b/compare_hashes/CMakeLists.txt new file mode 100644 index 0000000..04946d4 --- /dev/null +++ b/compare_hashes/CMakeLists.txt @@ -0,0 +1,35 @@ +cmake_minimum_required(VERSION 3.16) +project(Lichen) +set(CMAKE_CXX_STANDARD 14) + +set(Boost_USE_STATIC_LIBS ON) +find_package(Boost REQUIRED COMPONENTS + system + filesystem +) + +add_executable(Lichen + compare_hashes.cpp + submission.cpp +) + +target_link_libraries(Lichen + Boost::system + Boost::filesystem +) + +target_compile_options(Lichen PRIVATE + -Wall + -Wextra + -Werror + -g + -O3 + -funroll-loops +) +target_link_options(Lichen PRIVATE + -flto +) + +include_directories(/usr/local/submitty/Lichen/vendor) + +set_target_properties(Lichen PROPERTIES OUTPUT_NAME compare_hashes.out) \ No newline at end of file diff --git a/install_lichen.sh b/install_lichen.sh index 801eade..4848d3c 100755 --- a/install_lichen.sh +++ b/install_lichen.sh @@ -54,8 +54,9 @@ fi #################################################################################################### # compile & install the hash comparison tool -pushd "${lichen_repository_dir}" > /dev/null -clang++ -I "${lichen_vendor_dir}" -lboost_system -lboost_filesystem -Wall -Wextra -Werror -g -Ofast -flto -funroll-loops -std=c++11 compare_hashes/compare_hashes.cpp compare_hashes/submission.cpp -o "${lichen_installation_dir}/compare_hashes/compare_hashes.out" +pushd "${lichen_installation_dir}/compare_hashes" > /dev/null +cmake "$lichen_repository_dir/compare_hashes" +cmake --build . if [ "$?" -ne 0 ]; then echo -e "ERROR: FAILED TO BUILD HASH COMPARISON TOOL\n" exit 1 From 446bf4d1cdbef2c0028e82b711967ac36d842161 Mon Sep 17 00:00:00 2001 From: Chris Reed <55092742+cjreed121@users.noreply.github.com> Date: Sun, 7 May 2023 18:48:38 -0400 Subject: [PATCH 2/3] Add static linking --- compare_hashes/CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/compare_hashes/CMakeLists.txt b/compare_hashes/CMakeLists.txt index 04946d4..db27845 100644 --- a/compare_hashes/CMakeLists.txt +++ b/compare_hashes/CMakeLists.txt @@ -8,6 +8,8 @@ find_package(Boost REQUIRED COMPONENTS filesystem ) +link_libraries("-static") + add_executable(Lichen compare_hashes.cpp submission.cpp @@ -32,4 +34,4 @@ target_link_options(Lichen PRIVATE include_directories(/usr/local/submitty/Lichen/vendor) -set_target_properties(Lichen PROPERTIES OUTPUT_NAME compare_hashes.out) \ No newline at end of file +set_target_properties(Lichen PROPERTIES OUTPUT_NAME compare_hashes.out) From 75b75a04a86a7bb6aec98cb5bf622e02a1d28dc5 Mon Sep 17 00:00:00 2001 From: William Allen Date: Sun, 29 Mar 2026 20:51:36 -0400 Subject: [PATCH 3/3] Parallelize Lichen build --- install_lichen.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install_lichen.sh b/install_lichen.sh index 754feab..8532ec0 100755 --- a/install_lichen.sh +++ b/install_lichen.sh @@ -56,7 +56,7 @@ fi pushd "${lichen_installation_dir}/compare_hashes" > /dev/null cmake "$lichen_repository_dir/compare_hashes" -cmake --build . +cmake --build . --parallel "$(nproc)" if [ "$?" -ne 0 ]; then echo -e "ERROR: FAILED TO BUILD HASH COMPARISON TOOL\n" exit 1