summaryrefslogtreecommitdiff
path: root/eclass/tcversym.eclass
diff options
context:
space:
mode:
Diffstat (limited to 'eclass/tcversym.eclass')
-rw-r--r--eclass/tcversym.eclass51
1 files changed, 51 insertions, 0 deletions
diff --git a/eclass/tcversym.eclass b/eclass/tcversym.eclass
new file mode 100644
index 00000000..f660b21f
--- /dev/null
+++ b/eclass/tcversym.eclass
@@ -0,0 +1,51 @@
+# By eroen, 2015
+# Distributed under the terms of the ISC licence
+# $Header: $
+
+#
+# Original Author: eroen
+# Purpose: Simplify generating library version requirements for prebuilt binaries
+#
+
+inherit versionator
+
+# http://rpmfind.net/linux/rpm2html/search.php?query=libstdc%2B%2B.so.6%28GLIBCXX_3.4.15%29
+### GLIBCXX:
+# GLIBCXX_3.4.15
+# -> >=sys-devel/gcc-4.6.0[cxx]
+
+get_minver_GLIBCXX() {
+ local sym="$1"
+
+ local verlist=(
+ "3.4.22"
+ "3.4.21 5.1.1"
+ "3.4.20 4.9.2"
+ "3.4.19 4.8.1"
+ "3.4.18 4.8.1"
+ "3.4.17 4.7.0"
+ "3.4.16 4.6.0"
+ "3.4.15 4.6.0"
+ "3.4.14 4.5.1"
+ "3.4.13 4.4.5"
+ )
+
+ if version_is_at_least "${verlist[0]% *}" "$sym"; then
+ die "GLIBCXX_$sym is too recent for this eclass"
+ fi
+ for ver in "${verlist[@]}"; do
+ if version_is_at_least "${ver% *}" "$sym"; then
+ echo ${ver#* }
+ return
+ fi
+ done
+
+ die "Could not match GLIBCXX_$sym"
+}
+
+
+
+# http://rpmfind.net/linux/rpm2html/search.php?query=libc.so.6(GLIBC_2.11)
+### GLIBC:
+# GLIBC_2.18
+# -> >=sys-libs/glibc-2.18