From f072fc390e4e9d59634c04e290c4432e6422f722 Mon Sep 17 00:00:00 2001 From: Skot <48910715+saikatchatrg@users.noreply.github.com> Date: Sat, 24 Oct 2026 12:36:40 +0200 Subject: [PATCH 1/5] build_openroad: install kepler-formal with a relative RUNPATH The absolute RUNPATH tied bin/kepler-formal to the directory it was built in, so a moved or re-pointed checkout loaded another build's libnaja_*.so. Use $ORIGIN/../lib, and @loader_path/../lib on macOS. Fixes #4717. Signed-off-by: Skot <48910715+saikatchatrg@users.noreply.github.com> --- build_openroad.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/build_openroad.sh b/build_openroad.sh index 0eef046bd5..c92c0fc9c4 100755 --- a/build_openroad.sh +++ b/build_openroad.sh @@ -429,16 +429,23 @@ __local_build() # EL9 ships TBB 2020, where concurrent_map needs # TBB_PREVIEW_CONCURRENT_ORDERED_CONTAINERS; oneTBB ignores it. # EL installs libraries in lib64 by default; the RPATH points to lib. + # The RPATH is relative to bin/, so a moved install still loads its + # own libraries (#4717); macOS spells $ORIGIN as @loader_path. case "$(uname -m)" in aarch64|arm64) KEPLER_MARCH="-march=armv8-a" ;; *) KEPLER_MARCH="-march=x86-64-v3" ;; esac + if [[ "$OSTYPE" == "darwin"* ]]; then + KEPLER_RPATH="@loader_path/../lib" + else + KEPLER_RPATH="\$ORIGIN/../lib" + fi ${NICE} cmake -B tools/kepler-formal/build tools/kepler-formal \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_FLAGS_RELEASE="-Ofast ${KEPLER_MARCH} -ffast-math -flto -DTBB_PREVIEW_CONCURRENT_ORDERED_CONTAINERS=1" \ -DCMAKE_EXE_LINKER_FLAGS="-flto" \ -DCMAKE_BUILD_RPATH="${DIR}/tools/kepler-formal/build/thirdparty/naja/src/dnl:${DIR}/tools/kepler-formal/build/thirdparty/naja/src/nl/nl:${DIR}/tools/kepler-formal/build/thirdparty/naja/src/optimization" \ - -DCMAKE_INSTALL_RPATH="${INSTALL_PATH}/kepler-formal/lib" \ + -DCMAKE_INSTALL_RPATH="${KEPLER_RPATH}" \ -DCMAKE_INSTALL_LIBDIR=lib \ -DCMAKE_BUILD_WITH_INSTALL_RPATH=OFF \ -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF \ From 21f71019667e2a6ddebd4b8bbefbb915e275c118 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98yvind=20Harboe?= Date: Sun, 25 Oct 2026 07:09:24 +0100 Subject: [PATCH 2/5] etc/kepler-formal: pin kepler-formal and install it with one command MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A small Bazel module that only pins kepler-formal; ORFS itself does not become a Bazel project. From this folder, bazelisk run //:install -- installs bin/kepler-formal with everything it loads next to it. Bumping kepler-formal is the version line in MODULE.bazel. README.md says how this maps to DependencyInstaller.sh, and which lines go away as kepler-formal's registry entry and install target merge upstream. Co-Authored-By: Claude Opus 5.5 Signed-off-by: Øyvind Harboe --- .gitignore | 2 ++ etc/kepler-formal/.bazelrc | 9 ++++++++ etc/kepler-formal/.bazelversion | 1 + etc/kepler-formal/BUILD.bazel | 5 +++++ etc/kepler-formal/MODULE.bazel | 29 ++++++++++++++++++++++++ etc/kepler-formal/README.md | 39 +++++++++++++++++++++++++++++++++ 6 files changed, 85 insertions(+) create mode 100644 etc/kepler-formal/.bazelrc create mode 100644 etc/kepler-formal/.bazelversion create mode 100644 etc/kepler-formal/BUILD.bazel create mode 100644 etc/kepler-formal/MODULE.bazel create mode 100644 etc/kepler-formal/README.md diff --git a/.gitignore b/.gitignore index 84d1e39569..afa12adbe8 100644 --- a/.gitignore +++ b/.gitignore @@ -104,6 +104,8 @@ bazel-out bazel-OpenROAD-flow-scripts bazel-testlogs MODULE.bazel.lock +# etc/kepler-formal +bazel-kepler-formal # python venv venv/ diff --git a/etc/kepler-formal/.bazelrc b/etc/kepler-formal/.bazelrc new file mode 100644 index 0000000000..bfb1b9cd74 --- /dev/null +++ b/etc/kepler-formal/.bazelrc @@ -0,0 +1,9 @@ +common --registry=https://bcr.bazel.build/ + +build --cxxopt=-std=c++20 +build --host_cxxopt=-std=c++20 +build -c opt + +# As kepler-formal's own .bazelrc. +common --enable_platform_specific_config +build:linux --dynamic_mode=off diff --git a/etc/kepler-formal/.bazelversion b/etc/kepler-formal/.bazelversion new file mode 100644 index 0000000000..acd405b1d6 --- /dev/null +++ b/etc/kepler-formal/.bazelversion @@ -0,0 +1 @@ +8.6.0 diff --git a/etc/kepler-formal/BUILD.bazel b/etc/kepler-formal/BUILD.bazel new file mode 100644 index 0000000000..4e4dc28d27 --- /dev/null +++ b/etc/kepler-formal/BUILD.bazel @@ -0,0 +1,5 @@ +# bazelisk run //:install -- +alias( + name = "install", + actual = "@kepler-formal//:install", +) diff --git a/etc/kepler-formal/MODULE.bazel b/etc/kepler-formal/MODULE.bazel new file mode 100644 index 0000000000..975f111008 --- /dev/null +++ b/etc/kepler-formal/MODULE.bazel @@ -0,0 +1,29 @@ +"""Pins the kepler-formal that build_openroad.sh installs. + +ORFS is not a Bazel project: this module exists only to install +kepler-formal into tools/install/kepler-formal. See README.md. +""" + +module(name = "orfs-kepler-formal") + +# To bump kepler-formal, change this version. +bazel_dep(name = "kepler-formal", version = "0.5.0-20261020-0be91596") + +# TODO(keplertech/kepler-formal#292): delete this override once a +# kepler-formal version with the //:install target is on the registry, +# and move the version above to it. +git_override( + module_name = "kepler-formal", + commit = "99d66cac88978312853a10b82657781f8e99d843", + remote = "https://github.com/oharboe/kepler-formal.git", +) + +# kepler-formal builds with a downloaded clang. It registers that +# toolchain for its own builds only, so a module that depends on it +# registers it too. Elsewhere the host compiler is used. +bazel_dep(name = "llvm", version = "0.8.24") + +llvm_toolchains = use_extension("@llvm//extensions:toolchain.bzl", "toolchain") +use_repo(llvm_toolchains, "llvm_toolchains") + +register_toolchains("@llvm_toolchains//:all") diff --git a/etc/kepler-formal/README.md b/etc/kepler-formal/README.md new file mode 100644 index 0000000000..9b7495f429 --- /dev/null +++ b/etc/kepler-formal/README.md @@ -0,0 +1,39 @@ +# kepler-formal + +To bump kepler-formal, change the version in `MODULE.bazel`. + +`build_openroad.sh --local` installs kepler-formal into +`tools/install/kepler-formal/bin/kepler-formal` from this folder: + +```shell +cd etc/kepler-formal +bazelisk run //:install -- "$(pwd)/../../tools/install/kepler-formal" +``` + +ORFS is not a Bazel project. This folder only pins kepler-formal; the +install is kepler-formal's own `//:install` target. + +## How this maps to `DependencyInstaller.sh` + +`DependencyInstaller.sh` downloads a pinned CMake from Kitware when the +one the OS ships is too old, and checks it against a checksum. Bazel +does the same for kepler-formal and every library it needs, from the +[Bazel Central Registry](https://registry.bazel.build/), which keeps the +URL, the checksum and the build file of each version: + +| `DependencyInstaller.sh`, `build_openroad.sh` | Here | +| --- | --- | +| oneTBB and capnproto from the OS, or built from a pinned tarball | `bazel_dep` versions in kepler-formal's `MODULE.bazel` | +| A pinned CMake when the OS's is too old | bazelisk runs the Bazel named in `.bazelversion` | +| `gcc-toolset-13` on EL8, because GCC 8 is too old | A pinned clang is downloaded on x86-64 Linux; elsewhere the host compiler is used | +| `tools/kepler-formal` and the submodules inside it | The version in `MODULE.bazel`; sources are checked against their checksums and cached in `~/.cache/bazel` | +| An RPATH that points at the install's `lib/` | The binary finds its libraries next to itself, in `bin/kepler-formal.runfiles/` | + +## What goes away as upstream merges + +1. When a registry version of kepler-formal has the install target + (keplertech/kepler-formal#292, after + bazelbuild/bazel-central-registry#11201): delete the `git_override` in + `MODULE.bazel` and move the version to it. +2. When kepler-formal registers its compiler for modules that depend on + it: delete the toolchain lines in `MODULE.bazel`. From 513e51069aeb51ba728143ed9e35cb1b5d66720d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98yvind=20Harboe?= Date: Sun, 25 Oct 2026 07:09:32 +0100 Subject: [PATCH 3/5] build_openroad: install kepler-formal from etc/kepler-formal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Instead of building kepler-formal with CMake, run its install target from etc/kepler-formal, as Build.sh already builds OpenROAD with Bazel. This drops the per-architecture -march choice, the EL9 TBB define, the LTO flags, the build and install RPATHs (#4717) and the gcc-toolset-13 setup that only kepler-formal needed. The binary still lands in tools/install/kepler-formal/bin/kepler-formal, and it loads its libraries from next to itself, wherever the install is moved. The Docker builder copies etc/kepler-formal into the image, and the tools image tag covers it. Co-Authored-By: Claude Opus 5.5 Signed-off-by: Øyvind Harboe --- .dockerignore | 3 +++ build_openroad.sh | 45 +++++++++++---------------------------- docker/Dockerfile.builder | 1 + etc/DockerTag.sh | 5 ++++- 4 files changed, 20 insertions(+), 34 deletions(-) diff --git a/.dockerignore b/.dockerignore index e1a31f4e72..8395ed3302 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,6 +1,9 @@ # Build working directories tools/OpenROAD/build/ tools/kepler-formal/build/ +# Local Bazel outputs; the image builds its own. +etc/kepler-formal/bazel-* +etc/kepler-formal/MODULE.bazel.lock # Build files build_openroad.log diff --git a/build_openroad.sh b/build_openroad.sh index c92c0fc9c4..580a6f9ce9 100755 --- a/build_openroad.sh +++ b/build_openroad.sh @@ -385,12 +385,6 @@ __local_build() source /opt/rh/devtoolset-8/enable set -u fi - # EL8: the default GCC 8 is too old for kepler-formal. - if [[ -f "/opt/rh/gcc-toolset-13/enable" ]]; then - set +u - source /opt/rh/gcc-toolset-13/enable - set -u - fi if [ -z "${SKIP_OPENROAD+x}" ]; then echo "[INFO FLW-0018] Compiling OpenROAD." @@ -423,34 +417,19 @@ __local_build() ${YOSYS_ARGS} ${NICE} cmake --build tools/yosys/build --target install -j "${PROC}" - echo "[INFO FLW-0031] Compiling kepler-formal" - # -march=x86-64-v3 is valid only for x86 compilers. On Arm, use the - # Armv8-A baseline, so that the binary runs on any aarch64 machine. - # EL9 ships TBB 2020, where concurrent_map needs - # TBB_PREVIEW_CONCURRENT_ORDERED_CONTAINERS; oneTBB ignores it. - # EL installs libraries in lib64 by default; the RPATH points to lib. - # The RPATH is relative to bin/, so a moved install still loads its - # own libraries (#4717); macOS spells $ORIGIN as @loader_path. - case "$(uname -m)" in - aarch64|arm64) KEPLER_MARCH="-march=armv8-a" ;; - *) KEPLER_MARCH="-march=x86-64-v3" ;; - esac - if [[ "$OSTYPE" == "darwin"* ]]; then - KEPLER_RPATH="@loader_path/../lib" - else - KEPLER_RPATH="\$ORIGIN/../lib" + echo "[INFO FLW-0031] Installing kepler-formal" + # etc/kepler-formal pins kepler-formal; Bazel downloads it, its + # dependencies and the compiler. See etc/kepler-formal/README.md. + if ! command -v bazelisk &> /dev/null; then + echo "[ERROR FLW-0034] kepler-formal needs bazelisk; run etc/DependencyInstaller.sh -common." >&2 + exit 1 fi - ${NICE} cmake -B tools/kepler-formal/build tools/kepler-formal \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_CXX_FLAGS_RELEASE="-Ofast ${KEPLER_MARCH} -ffast-math -flto -DTBB_PREVIEW_CONCURRENT_ORDERED_CONTAINERS=1" \ - -DCMAKE_EXE_LINKER_FLAGS="-flto" \ - -DCMAKE_BUILD_RPATH="${DIR}/tools/kepler-formal/build/thirdparty/naja/src/dnl:${DIR}/tools/kepler-formal/build/thirdparty/naja/src/nl/nl:${DIR}/tools/kepler-formal/build/thirdparty/naja/src/optimization" \ - -DCMAKE_INSTALL_RPATH="${KEPLER_RPATH}" \ - -DCMAKE_INSTALL_LIBDIR=lib \ - -DCMAKE_BUILD_WITH_INSTALL_RPATH=OFF \ - -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF \ - -DCMAKE_INSTALL_PREFIX="${INSTALL_PATH}/kepler-formal" - ${NICE} cmake --build tools/kepler-formal/build --target install -j "${PROC}" + KEPLER_PREFIX="${INSTALL_PATH}/kepler-formal" + if [[ "${KEPLER_PREFIX}" != /* ]]; then + KEPLER_PREFIX="$(pwd)/${KEPLER_PREFIX}" + fi + (cd "${DIR}/etc/kepler-formal" && \ + ${NICE} bazelisk run --jobs="${PROC}" //:install -- "${KEPLER_PREFIX}") if [ ${WITH_VERIFIC} -eq 1 ]; then echo "[INFO FLW-0032] Cleaning up Verific components." diff --git a/docker/Dockerfile.builder b/docker/Dockerfile.builder index 93ef32bec6..8ec79e6c7f 100644 --- a/docker/Dockerfile.builder +++ b/docker/Dockerfile.builder @@ -30,6 +30,7 @@ FROM orfs-builder-base AS orfs-tools-builder # Exclude install so a local build's output (e.g. tools/install/OpenROAD) # cannot leak into the image; the build below starts from an empty install. COPY --link --exclude=OpenROAD --exclude=AutoTuner --exclude=install tools tools +COPY --link etc/kepler-formal etc/kepler-formal ARG numThreads=$(nproc) ARG verificPath="" diff --git a/etc/DockerTag.sh b/etc/DockerTag.sh index 315392c44d..5a4763da8e 100755 --- a/etc/DockerTag.sh +++ b/etc/DockerTag.sh @@ -16,7 +16,8 @@ if [[ "$@" == "-dev" ]]; then elif [[ "$@" == "-tools" ]]; then # Everything the orfs-tools target of Dockerfile.builder depends on: # the dev image, the build scripts, the ignore file that filters the - # build context, and the checked-out tools except OpenROAD. + # build context, the checked-out tools except OpenROAD, and the + # pinned kepler-formal. ignore_file=./docker/Dockerfile.builder.dockerignore if [[ ! -f "${ignore_file}" ]]; then ignore_file=./.dockerignore @@ -29,6 +30,8 @@ elif [[ "$@" == "-tools" ]]; then git submodule status tools/yosys tools/kepler-formal | awk '{print $1, $2}' git ls-tree HEAD tools/ | grep -v -e 'tools/OpenROAD$' -e 'tools/AutoTuner$' \ -e 'tools/yosys$' -e 'tools/kepler-formal$' + # The kepler-formal version and the Bazel settings that install it. + git ls-tree -r HEAD etc/kepler-formal } | sha256sum | awk '{print substr($1, 1, 6)}' elif [[ "$@" == "-master" ]]; then git fetch --tags >&2 From a92b10c151f018fb64fbc22dc6194e8e20db2a09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98yvind=20Harboe?= Date: Sun, 25 Oct 2026 07:09:38 +0100 Subject: [PATCH 4/5] Remove the tools/kepler-formal submodule MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit build_openroad.sh installs kepler-formal from the version pinned in etc/kepler-formal, so the submodule, and the five submodules inside it, are no longer checked out. Its build directory leaves .dockerignore and its commit leaves the tools image tag. Co-Authored-By: Claude Opus 5.5 Signed-off-by: Øyvind Harboe --- .dockerignore | 1 - .gitmodules | 3 --- etc/DockerTag.sh | 4 ++-- tools/kepler-formal | 1 - 4 files changed, 2 insertions(+), 7 deletions(-) delete mode 160000 tools/kepler-formal diff --git a/.dockerignore b/.dockerignore index 8395ed3302..e91e42c822 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,6 +1,5 @@ # Build working directories tools/OpenROAD/build/ -tools/kepler-formal/build/ # Local Bazel outputs; the image builds its own. etc/kepler-formal/bazel-* etc/kepler-formal/MODULE.bazel.lock diff --git a/.gitmodules b/.gitmodules index 20440a806e..bcda953424 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,6 +4,3 @@ [submodule "tools/OpenROAD"] path = tools/OpenROAD url = ../OpenROAD.git -[submodule "tools/kepler-formal"] - path = tools/kepler-formal - url = https://github.com/keplertech/kepler-formal diff --git a/etc/DockerTag.sh b/etc/DockerTag.sh index 5a4763da8e..2f10d8d81f 100755 --- a/etc/DockerTag.sh +++ b/etc/DockerTag.sh @@ -27,9 +27,9 @@ elif [[ "$@" == "-tools" ]]; then cat ./build_openroad.sh ./dev_env.sh ./etc/setup_compiler_wrappers.sh cat "${ignore_file}" # Drop the trailing describe output, which depends on fetched tags. - git submodule status tools/yosys tools/kepler-formal | awk '{print $1, $2}' + git submodule status tools/yosys | awk '{print $1, $2}' git ls-tree HEAD tools/ | grep -v -e 'tools/OpenROAD$' -e 'tools/AutoTuner$' \ - -e 'tools/yosys$' -e 'tools/kepler-formal$' + -e 'tools/yosys$' # The kepler-formal version and the Bazel settings that install it. git ls-tree -r HEAD etc/kepler-formal } | sha256sum | awk '{print substr($1, 1, 6)}' diff --git a/tools/kepler-formal b/tools/kepler-formal deleted file mode 160000 index f70c2e3859..0000000000 --- a/tools/kepler-formal +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f70c2e38592d704c8cccf68433b091e82c8118f0 From 2aa8f0a39cceea483f84889c229eb86f98b93a49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98yvind=20Harboe?= Date: Sun, 25 Oct 2026 07:09:38 +0100 Subject: [PATCH 5/5] DependencyInstaller: drop the packages only kepler-formal needed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit kepler-formal no longer builds against host packages: capnproto and TBB on Ubuntu, EL and Homebrew, the oneTBB source build on EL8 and gcc-toolset-13 on EL8 go. Co-Authored-By: Claude Opus 5.5 Signed-off-by: Øyvind Harboe --- etc/DependencyInstaller.sh | 52 ++++---------------------------------- 1 file changed, 5 insertions(+), 47 deletions(-) diff --git a/etc/DependencyInstaller.sh b/etc/DependencyInstaller.sh index dc3cb17cb3..f09e285369 100755 --- a/etc/DependencyInstaller.sh +++ b/etc/DependencyInstaller.sh @@ -26,7 +26,7 @@ _versionCompare() { test $a "$2" $b } -# Yosys and kepler-formal are built with CMake. Yosys needs CMake >= 3.28, +# Yosys is built with CMake and needs CMake >= 3.28, # newer than Ubuntu 22.04 ships, so fetch a release from Kitware when the # one on PATH is too old. cmakeMinVersion=3.28 @@ -108,36 +108,6 @@ _installBison() { rm -rf "${workDir}" } -# kepler-formal needs oneTBB and its CMake package. EL8 ships TBB 2018, which -# has neither, so build oneTBB there. Build it static, because the -# kepler-formal RPATH does not include the prefix. -tbbVersion=2021.13.0 -tbbChecksum=3ad5dd08954b39d113dc5b3f8a8dc6dc1fd5250032b7c491eb07aed5c94133e1 - -_installTbb() { - local prefix=${PREFIX:-"/usr/local"} - if compgen -G "${prefix}/lib*/cmake/TBB/TBBConfig.cmake" > /dev/null; then - echo "oneTBB found in ${prefix}, skipping install" - return - fi - local tarball="oneTBB-${tbbVersion}.tar.gz" - local workDir - workDir=$(mktemp -d) - ( - # _installCmake may have put CMake in a prefix that is not on PATH. - export PATH="${prefix}/bin:${PATH}" - cd "${workDir}" - wget -q -O "${tarball}" "https://github.com/uxlfoundation/oneTBB/archive/refs/tags/v${tbbVersion}.tar.gz" - sha256sum -c <(echo "${tbbChecksum} ${tarball}") - tar xzf "${tarball}" - cmake -S "oneTBB-${tbbVersion}" -B build -DCMAKE_BUILD_TYPE=Release \ - -DTBB_TEST=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX="${prefix}" - cmake --build build -j "${numThreads}" - cmake --install build - ) - rm -rf "${workDir}" -} - _installORDependencies() { if [[ ${YOSYS_VER} == "" ]]; then YOSYS_VER=v$(grep 'yosys_ver =' tools/yosys/docs/source/conf.py | awk -F'"' '{print $2}') @@ -232,14 +202,12 @@ _install_EL8_EL9_Packages() { # EL8 and EL9 use `dnf`, instead of `yum` dnf -y update - # EPEL has tcl-tclreadline and capnproto. + # EPEL has tcl-tclreadline. dnf -y install "https://dl.fedoraproject.org/pub/epel/epel-release-latest-${elVersion}.noarch.rpm" - # The rest builds Yosys and kepler-formal. + # The rest builds Yosys. dnf -y install \ bison \ boost-devel \ - capnproto \ - capnproto-devel \ findutils \ flex \ gcc \ @@ -260,7 +228,7 @@ _install_EL8_EL9_Packages() { wget \ zlib-devel - # kepler-formal and the pip lock files need Python 3.10 or newer, which + # The pip lock files need Python 3.10 or newer, which # is newer than the EL8 and EL9 defaults. dnf -y install python3.12 python3.12-devel python3.12-pip update-alternatives --install /usr/bin/python3 python3 "$(command -v python3.12)" 50 @@ -272,13 +240,9 @@ _install_EL8_EL9_Packages() { readline-devel \ tcl-tclreadline \ tcl-tclreadline-devel - # The default GCC 8 is too old for kepler-formal. - dnf -y install gcc-toolset-13 fi if [[ "${elVersion}" == "9" ]]; then - # EL8 builds oneTBB instead, in -common. - dnf -y install tbb-devel dnf -y install \ https://mirror.stream.centos.org/9-stream/AppStream/x86_64/os/Packages/readline-devel-8.1-4.el9.x86_64.rpm fi @@ -345,13 +309,11 @@ _installUbuntuPackages() { bison \ build-essential \ ca-certificates \ - capnproto \ curl \ flex \ git \ help2man \ libboost-iostreams-dev \ - libcapnp-dev \ libffi-dev \ libfl-dev \ libfl2 \ @@ -364,7 +326,6 @@ _installUbuntuPackages() { libqt5svg5-dev \ libqt5xmlpatterns5-dev \ libreadline-dev \ - libtbb-dev \ libz-dev \ perl \ pkg-config \ @@ -467,7 +428,7 @@ _installUbuntuPackages() { _installDarwinPackages() { brew install libffi tcl-tk ruby - brew install python libomp doxygen capnp tbb bison flex boost spdlog zlib cmake + brew install python libomp doxygen bison flex boost spdlog zlib cmake brew link --force libomp brew install --cask klayout brew install docker docker-buildx @@ -697,9 +658,6 @@ case "${os}" in if [[ "${option}" == "common" || "${option}" == "all" ]]; then _installCmake _installBison - if [[ "${elVersion}" == "8" ]]; then - _installTbb - fi _installPipCommon fi ;;