From dac73f4b57a236f60bc414af9f29c910ec3cd88b Mon Sep 17 00:00:00 2001 From: battlmonstr Date: Thu, 7 Dec 2023 17:53:29 +0100 Subject: [PATCH] silkworm: check glibcpp compatibility (#8932) libsilkworm requires libstdc++.so.6.0.30, but Rocky Linux 9.3 has only libstdc++.so.6.0.29, and `make erigon` produces an error about the GLIBCXX Version needed 3.4.30 (available 3.4.29). see: https://stackoverflow.com/questions/10354636/how-do-you-find-what-version-of-libstdc-library-is-installed-on-your-linux-mac https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html --- turbo/silkworm/silkworm_compat_check.sh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/turbo/silkworm/silkworm_compat_check.sh b/turbo/silkworm/silkworm_compat_check.sh index 664d3f6db..80c3d1b3b 100755 --- a/turbo/silkworm/silkworm_compat_check.sh +++ b/turbo/silkworm/silkworm_compat_check.sh @@ -11,6 +11,17 @@ function glibc_version { $cmd | head -1 | awk '{ print $NF }' } +function glibcpp_version { + link_path=$(/sbin/ldconfig -p | grep libstdc++ | awk '{ print $NF }') + if [[ ! -L "$link_path" ]] + then + echo "0" + else + file_name=$(readlink "$link_path") + echo "${file_name##*.}" + fi +} + function version_major { IFS='.' read -a components <<< "$1" echo "${components[0]}" @@ -59,6 +70,13 @@ case $(uname -s) in exit 4 fi + version=$(glibcpp_version) + if (( version < 30 )) + then + echo "not supported glibcpp version: $version" + exit 5 + fi + ;; Darwin) ;;