commit: 41c0b3b8700137df6640c50ada488dc2daa26233
Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 13 21:26:45 2015 +0000
Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Tue Oct 13 21:26:45 2015 +0000
URL: https://gitweb.gentoo.org/proj/musl.git/commit/?id=41c0b3b8
sys-fs/lvm2: avoid using mallinfo().
sys-fs/lvm2/Manifest | 3 +-
sys-fs/lvm2/files/lvm2-avoid-mallinfo.patch | 71 +++++++++++++++++++++++++++++
sys-fs/lvm2/lvm2-2.02.116-r99.ebuild | 1 +
3 files changed, 74 insertions(+), 1 deletion(-)
diff --git a/sys-fs/lvm2/Manifest b/sys-fs/lvm2/Manifest
index 48dec37..47b0b2b 100644
--- a/sys-fs/lvm2/Manifest
+++ b/sys-fs/lvm2/Manifest
@@ -22,9 +22,10 @@ AUX lvm2-2.02.70-asneeded.patch 326 SHA256
b0f84dadc213a9daaa97ae7815f624f0bcdc8
AUX lvm2-2.02.92-dynamic-static-ldflags.patch 3031 SHA256
90b880572186d4d1abf049d39e5f11e4cfedb3707c29eeb9740ceccdb3b62468 SHA512
edb78081d12bebaccd31c2474cb531563b729f1ad966afaff7892556177ee7a68217cc699c65383318066139ba62183adc8334f46f8f8933d62b6b5dcd11a023
WHIRLPOOL
6880a29dfb6747f167c41506e1472c0d48ef7af3a545238c733949f85f3f8f36110fb6908c6f626260f7ed975e56a4e8ccf42ece4d758fa3570154cbe970f2a3
AUX lvm2-2.02.99-example.conf.in.patch 1489 SHA256
55273a2bc6df33057f4efdd947b75f0282a7993acd5e57f0019f8ca57ca7df38 SHA512
0c92a0e454505219653500d4fb2ee57626bb30375782be941bda17d7b841cb05eeebb87bfc4f7aa397b26fb4908bcbd0f69d2c07e63bf4f070756a1894851869
WHIRLPOOL
3f6c94dd63fcf5e2d1406aa074aee27997fa6d58da3db9d22281b3080ec36277bc5225c3b62f042b38f5d0870fb1e3e19433f218f01e03323c7ad1210d45d4b3
AUX lvm2-2.02.99-locale-muck.patch 395 SHA256
14e7c65fd9aa71b7f09cc1aecfaccb3048dbb09dd4eb4c342556708aa6adba77 SHA512
4014abbaeb1106dbaa360e2573340651adc0cccc6c0c05cc57695e74e7a3d0b5a73e2b72242bab0d0a10c2506a7c30c2a4de0275c0f81a14dfb068ec91492497
WHIRLPOOL
3383e94ca4dbaefd2c628d3a95b17a14602481c98425caf48f490185289eb3f1af2ef234ff5b5c431ea4624edd8e48764252bdf5b7159ab3bbbad699c3f936ab
+AUX lvm2-avoid-mallinfo.patch 2772 SHA256
d4faa07ecbc6e0fe324f8d5ca65e0dab6e65dd42e871a95e52186c00f390e7e3 SHA512
55e5118aae081863acdb7cda1b9b10955545420a6a7a8048ec0f2b6759d9f1a4fdb21c6445597d43b7aef3b5db8123cc784fb1e897c89242e1d5541e58798280
WHIRLPOOL
5cbd2623c984ec3b66f57d904a9eb0814e192f214b12bc80cdc54498f5d318580dbfa33d7a9da7bbef5216553a2b33d8f2ad791d83336ba2c27453b8e80b13b3
AUX lvm2-fix-stdio-usage.patch 3666 SHA256
79c5379cbf660f8dabd45359463c77a40b5a83153b54c67ce36049260dac9071 SHA512
c4d55b366a60926baadf431dd382012eb808490c0bb514e01503d526cfd7ae573efa2d60a92bd5f6f451b54b11fb5cf827f45cec35cfcdee6aa291674cc776dd
WHIRLPOOL
48be6a1205c2293fda51bb8b103db0eebe4b28794a6983c910e5761bb50712da4552eb339a485258f0f79032e10aa7589f65411de282f83ab910881c52a356ed
AUX lvm2-musl-fixes.patch 1537 SHA256
6516f64faeccaf87641f7c29823344baea0f3af9ac14701e98fa768cbccb703d SHA512
87bd64a0c7525cbf5d49f1fbdd4a86f23bade065362580a1f2ef3b73b5e76e865e620800c922aa6819ace78daf3d4e2ce96b7990c63dcdbf504d03e636d26c00
WHIRLPOOL
9aeabec1f8b0e3487cad583e359c729b5c45ecbc426b48c19260d1f3a8e377fe5e8f09297d893dc2588b9ee11537148558a372c029ac84c02282011cc07440fe
AUX lvmetad.initd-2.02.105-r2 405 SHA256
60accb4b6114753232f2db0adf3fc3f46d4459bfedf79b888801a13c55d79fa9 SHA512
d9c6f6c68a83b8f391ded7ebe900009a61ff06e92eb68ccb3dcdc8f41e61bbcdf47246e523ea8cfd6e71790376b316b219d4afaf66cf11477e2b54d526b74998
WHIRLPOOL
d959d8c8b5f4ef84c26f8e585fe1761ef9bfd37f590e783e937679a863982e7cc4a4e320c3e2e3bd635dbd3486c15baf7c24e1a21325521f4320e643a57fb0e7
DIST LVM2.2.02.116.tgz 1538340 SHA256
2479d6ea61c405efcfcd8a78390d00c1d2e9c92c0262f3ed599f2c0fb6f0b767 SHA512
992541339637d597257850b4ff7f5348fb7cdcccf806ac8d986a3be1ad1edc5f6bfaedeed5128690c541d1a485cdc75742e90a766363c39867901003518fb84d
WHIRLPOOL
1e89ec941882fddba62c9649be46eb5bc6c9cb899669d4bbe4a4a1023c8bf7d8264c4815ef88bb39dedcb9637815411feb826aa102e629d77b80e45e099e398d
-EBUILD lvm2-2.02.116-r99.ebuild 9329 SHA256
635df4a4a52fa30655ffc5b3936e9fa4e071c056f826c4c4191a3802c5e44dab SHA512
aae8e7a8f5e78d1d026253db9b3ec9a309270d887c99b223d8f756331f50b7ac0b429c31cb39b16fc526c53aa8505c553232d22857fde33290c09a53f41f7a48
WHIRLPOOL
4cb7ac35e2c7a65fcf9477fe6dbd2a9757e0450c7157648a1916efa6957ee3c2d1d1e30f594c551f20511e9661957a5992cc37635eced5119ed592a95fb3d834
+EBUILD lvm2-2.02.116-r99.ebuild 9378 SHA256
53b161f6ed5850ba38a9cdac1ab300da94c5fdb65f0d5f499d80918ee0d55e1d SHA512
e8e5082a83e3d12620ef5c1d71f68c9fb83a67077e6cd924b64fbacbb6e8fd7f1c86dabc04d5fe92723b9bd5e80d16548c6498f16e7ceefaab4178543467b362
WHIRLPOOL
0b7577c0156df5354f56933db3b906a0a49bec80f63664b85e55b9a108953b12b01747d7d9ced35c1be6d22403bb777965064d1a4af9a870a8f4e77817045698
MISC metadata.xml 995 SHA256
a2be36b695dab8ef65772af8d808cdc7a5c5855e2c9104060e7232e21b984216 SHA512
642abe2a196ffeaf3a67530befa8dc123f1e3e1238bf55d38c0affea82ab5b2f9e56da6b303410845c625494a59323ac8570f40e0f8a406db76295059958361a
WHIRLPOOL
cba3a6dd12fafc4719050082ee740d03ef0ed68e074b556a0c1f15f4a7b328d9b826d2b7ab3d3f19546de92e907a3fd466792db67423cb8630d5313154d5b6f2
diff --git a/sys-fs/lvm2/files/lvm2-avoid-mallinfo.patch
b/sys-fs/lvm2/files/lvm2-avoid-mallinfo.patch
new file mode 100644
index 0000000..b7da941
--- /dev/null
+++ b/sys-fs/lvm2/files/lvm2-avoid-mallinfo.patch
@@ -0,0 +1,71 @@
+File lvm2-2.02.116-r99.orig/.ipc_in is a fifo while file
lvm2-2.02.116-r99/.ipc_in is a fifo
+File lvm2-2.02.116-r99.orig/.ipc_out is a fifo while file
lvm2-2.02.116-r99/.ipc_out is a fifo
+diff -Naur lvm2-2.02.116-r99.orig/work/LVM2.2.02.116/lib/mm/memlock.c
lvm2-2.02.116-r99/work/LVM2.2.02.116/lib/mm/memlock.c
+--- lvm2-2.02.116-r99.orig/work/LVM2.2.02.116/lib/mm/memlock.c 2015-01-30
16:19:53.000000000 +0000
++++ lvm2-2.02.116-r99/work/LVM2.2.02.116/lib/mm/memlock.c 2015-10-13
21:02:49.385224386 +0000
+@@ -134,10 +134,8 @@
+ static void _allocate_memory(void)
+ {
+ #ifndef VALGRIND_POOL
+- void *stack_mem;
++ void *stack_mem, *temp_malloc_mem;
+ struct rlimit limit;
+- int i, area = 0, missing = _size_malloc_tmp, max_areas = 32, hblks;
+- char *areas[max_areas];
+
+ /* Check if we could preallocate requested stack */
+ if ((getrlimit (RLIMIT_STACK, &limit) == 0) &&
+@@ -146,50 +144,13 @@
+ _touch_memory(stack_mem, _size_stack);
+ /* FIXME else warn user setting got ignored */
+
+- /*
+- * When a brk() fails due to fragmented address space (which
sometimes
+- * happens when we try to grab 8M or so), glibc will make a new
+- * arena. In this arena, the rules for using “direct” mmap are
relaxed,
+- * circumventing the MAX_MMAPs and MMAP_THRESHOLD settings. We can,
+- * however, detect when this happens with mallinfo() and try to
co-opt
+- * malloc into using MMAP as a MORECORE substitute instead of
returning
+- * MMAP'd memory directly. Since MMAP-as-MORECORE does not munmap the
+- * memory on free(), this is good enough for our purposes.
+- */
+- while (missing > 0) {
+- struct mallinfo inf = mallinfo();
+- hblks = inf.hblks;
+-
+- if ((areas[area] = malloc(_size_malloc_tmp)))
+- _touch_memory(areas[area], _size_malloc_tmp);
+-
+- inf = mallinfo();
+-
+- if (hblks < inf.hblks) {
+- /* malloc cheated and used mmap, even though we told it
+- not to; we try with twice as many areas, each half
+- the size, to circumvent the faulty logic in glibc */
+- free(areas[area]);
+- _size_malloc_tmp /= 2;
+- } else {
+- ++ area;
+- missing -= _size_malloc_tmp;
+- }
+-
+- if (area == max_areas && missing > 0) {
+- /* Too bad. Warn the user and proceed, as things are
+- * most likely going to work out anyway. */
+- log_warn("WARNING: Failed to reserve memory, %d bytes
missing.", missing);
+- break;
+- }
+- }
++ if ((temp_malloc_mem = malloc(_size_malloc_tmp)))
++ _touch_memory(temp_malloc_mem, _size_malloc_tmp);
+
+ if ((_malloc_mem = malloc(_size_malloc)))
+ _touch_memory(_malloc_mem, _size_malloc);
+
+- /* free up the reserves so subsequent malloc's can use that memory */
+- for (i = 0; i < area; ++i)
+- free(areas[i]);
++ free(temp_malloc_mem);
+ #endif
+ }
+
diff --git a/sys-fs/lvm2/lvm2-2.02.116-r99.ebuild
b/sys-fs/lvm2/lvm2-2.02.116-r99.ebuild
index a984ae5..11e5e92 100644
--- a/sys-fs/lvm2/lvm2-2.02.116-r99.ebuild
+++ b/sys-fs/lvm2/lvm2-2.02.116-r99.ebuild
@@ -101,6 +101,7 @@ src_prepare() {
# Patches for musl
epatch "${FILESDIR}"/${PN}-fix-stdio-usage.patch # Patch from alpine
linux
epatch "${FILESDIR}"/${PN}-musl-fixes.patch
+ epatch "${FILESDIR}"/${PN}-avoid-mallinfo.patch
# Without thin-privision-tools, there is nothing to install for target
install_man7:
use thin || { sed -i -e '/^install_lvm2/s:install_man7::'
man/Makefile.in || die; }