1 |
commit: 6df00c69826babb358006a8ca5f6936385ca8a1c |
2 |
Author: Lars Wendler <polynomial-c <AT> gentoo <DOT> org> |
3 |
AuthorDate: Wed Sep 19 09:35:50 2018 +0000 |
4 |
Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Sep 19 09:35:50 2018 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6df00c69 |
7 |
|
8 |
sys-libs/libhugetlbfs: Bump to version 2.21 |
9 |
|
10 |
Package-Manager: Portage-2.3.49, Repoman-2.3.10 |
11 |
|
12 |
sys-libs/libhugetlbfs/Manifest | 1 + |
13 |
sys-libs/libhugetlbfs/libhugetlbfs-2.21.ebuild | 157 +++++++++++++++++++++++++ |
14 |
2 files changed, 158 insertions(+) |
15 |
|
16 |
diff --git a/sys-libs/libhugetlbfs/Manifest b/sys-libs/libhugetlbfs/Manifest |
17 |
index 7184c0e8ae9..2d7527a8693 100644 |
18 |
--- a/sys-libs/libhugetlbfs/Manifest |
19 |
+++ b/sys-libs/libhugetlbfs/Manifest |
20 |
@@ -1,3 +1,4 @@ |
21 |
DIST libhugetlbfs-2.18.tar.gz 181275 BLAKE2B 1f0ca8d73d9bdf05eb08706be4854f110b8cbe5b0c7554fdddb437fc9644e69d0bc42d9d8bedf23bf2dda4901977f093d0f46ed039304f8b5184b2fcac157d47 SHA512 6dcdbf571d6a723a40c15e10b24533f16d65f67fe149aa2d25bee48a034d003419d4cf4b6e55fcd385e1214fc4f6b4dda72ba429b9eea9b38be9b1a393528746 |
22 |
DIST libhugetlbfs-2.19.tar.gz 181504 BLAKE2B 27d5e5729e48b82311d6f4317f8c0bb5a04054242bca6fd9745265e2590f18ec49de6a9cdfa7ea28be47f794e91e70c5fcecdb418bf8e8cb0cb5b78d0948e563 SHA512 d21781fe68736eb3bbafeb8f36f4f34d30f290f2f6744b52c1a40161caf2e28b823cd8e9b9c74ec4e6d11f7d398d909f80eb736cc39a64ecc7bf571018bfec7c |
23 |
DIST libhugetlbfs-2.20.tar.gz 186750 BLAKE2B 758482a41254d6d14795efdfb2959248af2ff00bc6cafbae9b2002b7eaa50921a72ef928910bc0d2061a414e9c73346848eead108af077c96429870c734495aa SHA512 817fca3f8e3b127b9b877e0a03d0a94bf0c3ec481d3becf995986ce6ae0532629c5460100eb9f2ef3452ed59a3b9d3ac8362df8f87b387803c36d35ab7af0902 |
24 |
+DIST libhugetlbfs-2.21.tar.gz 173052 BLAKE2B a65fdeee3ed9ad8cb69f772847646befbf5deef0b82d6cb7338e5ff448d5c2461ceb1e381b9515e79f4243482589bb0203874cc52e5c8c6d98667df4eacffa8b SHA512 87fd95a826bedc2c53b1aa440f5db7ff3ece482d520545b597d4d1231cf84276103c312899b812166872444331bc7b6f1692f0d3b7cbff691efdcf9c2e99b1d0 |
25 |
|
26 |
diff --git a/sys-libs/libhugetlbfs/libhugetlbfs-2.21.ebuild b/sys-libs/libhugetlbfs/libhugetlbfs-2.21.ebuild |
27 |
new file mode 100644 |
28 |
index 00000000000..e7aae65f605 |
29 |
--- /dev/null |
30 |
+++ b/sys-libs/libhugetlbfs/libhugetlbfs-2.21.ebuild |
31 |
@@ -0,0 +1,157 @@ |
32 |
+# Copyright 1999-2018 Gentoo Foundation |
33 |
+# Distributed under the terms of the GNU General Public License v2 |
34 |
+ |
35 |
+EAPI=6 |
36 |
+ |
37 |
+PYTHON_COMPAT=( python2_7 ) |
38 |
+ |
39 |
+inherit multilib toolchain-funcs python-any-r1 |
40 |
+ |
41 |
+DESCRIPTION="easy hugepage access" |
42 |
+HOMEPAGE="https://github.com/libhugetlbfs/libhugetlbfs" |
43 |
+SRC_URI="https://github.com/libhugetlbfs/libhugetlbfs/archive/${PV}.tar.gz -> ${P}.tar.gz" |
44 |
+ |
45 |
+LICENSE="GPL-2" |
46 |
+SLOT="0" |
47 |
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~s390 ~x86" |
48 |
+IUSE="static-libs test" |
49 |
+ |
50 |
+DEPEND="test? ( ${PYTHON_DEPS} )" |
51 |
+ |
52 |
+PATCHES=( |
53 |
+ "${FILESDIR}"/${PN}-2.6-fixup-testsuite.patch |
54 |
+) |
55 |
+ |
56 |
+src_prepare() { |
57 |
+ default |
58 |
+ sed -i \ |
59 |
+ -e '/^PREFIX/s:/local::' \ |
60 |
+ -e '1iBUILDTYPE = NATIVEONLY' \ |
61 |
+ -e '1iV = 1' \ |
62 |
+ -e '/gzip.*MANDIR/d' \ |
63 |
+ -e "/^LIB\(32\)/s:=.*:= $(get_libdir):" \ |
64 |
+ -e '/^CC\(32\|64\)/s:=.*:= $(CC):' \ |
65 |
+ -e 's@^\(ARCH\) ?=@\1 =@' \ |
66 |
+ Makefile || die "sed failed" |
67 |
+ if [ "$(get_libdir)" == "lib64" ]; then |
68 |
+ sed -i \ |
69 |
+ -e "/^LIB\(32\)/s:=.*:= lib32:" \ |
70 |
+ Makefile |
71 |
+ fi |
72 |
+ |
73 |
+ # Tarballs from github don't have the version set. |
74 |
+ # https://github.com/libhugetlbfs/libhugetlbfs/issues/7 |
75 |
+ [[ -f version ]] || echo "${PV}" > version |
76 |
+} |
77 |
+ |
78 |
+src_compile() { |
79 |
+ tc-export AR |
80 |
+ emake CC="$(tc-getCC)" libs tools |
81 |
+} |
82 |
+ |
83 |
+src_install() { |
84 |
+ default |
85 |
+ use static-libs || rm -f "${ED%/}"/usr/$(get_libdir)/*.a |
86 |
+} |
87 |
+ |
88 |
+src_test_alloc_one() { |
89 |
+ hugeadm="$1" |
90 |
+ sign="$2" |
91 |
+ pagesize="$3" |
92 |
+ pagecount="$4" |
93 |
+ ${hugeadm} \ |
94 |
+ --pool-pages-max ${pagesize}:${sign}${pagecount} \ |
95 |
+ && \ |
96 |
+ ${hugeadm} \ |
97 |
+ --pool-pages-min ${pagesize}:${sign}${pagecount} |
98 |
+ return $? |
99 |
+} |
100 |
+ |
101 |
+# die is NOT allowed in this src_test block after the marked point, so that we |
102 |
+# can clean up memory allocation. You'll leak at LEAST 64MiB per run otherwise. |
103 |
+src_test() { |
104 |
+ [[ $UID -eq 0 ]] || die "Need FEATURES=-userpriv to run this testsuite" |
105 |
+ einfo "Building testsuite" |
106 |
+ emake -j1 tests || die "Failed to build tests" |
107 |
+ |
108 |
+ hugeadm='obj/hugeadm' |
109 |
+ allocated='' |
110 |
+ rc=0 |
111 |
+ # the testcases need 64MiB per pagesize. |
112 |
+ MIN_HUGEPAGE_RAM=$((64*1024*1024)) |
113 |
+ |
114 |
+ einfo "Planning allocation" |
115 |
+ PAGESIZES="$(${hugeadm} --page-sizes-all)" |
116 |
+ |
117 |
+ # Need to do this before we can create the mountpoints. |
118 |
+ for pagesize in ${PAGESIZES} ; do |
119 |
+ # The kernel depends on the location :-( |
120 |
+ mkdir -p /var/lib/hugetlbfs/pagesize-${pagesize} |
121 |
+ addwrite /var/lib/hugetlbfs/pagesize-${pagesize} |
122 |
+ done |
123 |
+ addwrite /proc/sys/vm/ |
124 |
+ addwrite /proc/sys/kernel/shmall |
125 |
+ addwrite /proc/sys/kernel/shmmax |
126 |
+ addwrite /proc/sys/kernel/shmmni |
127 |
+ |
128 |
+ einfo "Checking HugeTLB mountpoints" |
129 |
+ ${hugeadm} --create-mounts || die "Failed to set up hugetlb mountpoints." |
130 |
+ |
131 |
+ # ----------------------------------------------------- |
132 |
+ # --------- die is unsafe after this point. ----------- |
133 |
+ # ----------------------------------------------------- |
134 |
+ |
135 |
+ einfo "Starting allocation" |
136 |
+ for pagesize in ${PAGESIZES} ; do |
137 |
+ pagecount=$((${MIN_HUGEPAGE_RAM}/${pagesize})) |
138 |
+ einfo " ${pagecount} @ ${pagesize}" |
139 |
+ addwrite /var/lib/hugetlbfs/pagesize-${pagesize} |
140 |
+ src_test_alloc_one "$hugeadm" "+" "${pagesize}" "${pagecount}" |
141 |
+ rc=$? |
142 |
+ if [[ $rc -eq 0 ]]; then |
143 |
+ allocated="${allocated} ${pagesize}:${pagecount}" |
144 |
+ else |
145 |
+ eerror "Failed to add ${pagecount} pages of size ${pagesize}" |
146 |
+ fi |
147 |
+ done |
148 |
+ |
149 |
+ einfo "Allocation status" |
150 |
+ ${hugeadm} --pool-list |
151 |
+ |
152 |
+ if [[ -n "${allocated}" ]]; then |
153 |
+ # All our allocations worked, so time to run. |
154 |
+ einfo "Starting tests" |
155 |
+ cd "${S}"/tests |
156 |
+ TESTOPTS="-t func" |
157 |
+ case $ARCH in |
158 |
+ amd64|ppc64) |
159 |
+ TESTOPTS="${TESTOPTS} -b 64" |
160 |
+ ;; |
161 |
+ x86) |
162 |
+ TESTOPTS="${TESTOPTS} -b 32" |
163 |
+ ;; |
164 |
+ esac |
165 |
+ # This needs a bit of work to give a nice exit code still. |
166 |
+ ./run_tests.py ${TESTOPTS} |
167 |
+ rc=$? |
168 |
+ else |
169 |
+ eerror "Failed to make HugeTLB allocations." |
170 |
+ rc=1 |
171 |
+ fi |
172 |
+ |
173 |
+ einfo "Cleaning up memory" |
174 |
+ cd "${S}" |
175 |
+ # Cleanup memory allocation |
176 |
+ for alloc in ${allocated} ; do |
177 |
+ pagesize="${alloc/:*}" |
178 |
+ pagecount="${alloc/*:}" |
179 |
+ einfo " ${pagecount} @ ${pagesize}" |
180 |
+ src_test_alloc_one "$hugeadm" "-" "${pagesize}" "${pagecount}" |
181 |
+ done |
182 |
+ |
183 |
+ # --------------------------------------------------------- |
184 |
+ # --------- die is safe again after this point. ----------- |
185 |
+ # --------------------------------------------------------- |
186 |
+ |
187 |
+ return $rc |
188 |
+} |