summaryrefslogtreecommitdiff
path: root/sys-libs/libhugetlbfs/files
diff options
context:
space:
mode:
Diffstat (limited to 'sys-libs/libhugetlbfs/files')
-rw-r--r--sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-allow-building-against-glibc-2.34.patch258
-rw-r--r--sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-ino_t-fix.patch13
-rw-r--r--sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-nonnull-fix.patch31
-rw-r--r--sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-path-max-fix.patch22
-rw-r--r--sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-sc-level2-fix.patch45
-rw-r--r--sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-uncompressed-man-pages.patch34
-rw-r--r--sys-libs/libhugetlbfs/files/libhugetlbfs-2.6-fixup-testsuite.patch31
7 files changed, 0 insertions, 434 deletions
diff --git a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-allow-building-against-glibc-2.34.patch b/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-allow-building-against-glibc-2.34.patch
deleted file mode 100644
index 68e121e240ab..000000000000
--- a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-allow-building-against-glibc-2.34.patch
+++ /dev/null
@@ -1,258 +0,0 @@
-From 959d74fd0fbbff310943096e15024a84e8f5cba4 Mon Sep 17 00:00:00 2001
-From: Matheus Castanho <msc@linux.ibm.com>
-Date: Thu, 12 Aug 2021 16:38:46 -0300
-Subject: [PATCH] Disable hugepage-backed malloc if __morecore is not available
-
-Starting with glibc 2.32, __morecore hook has been marked as deprecated, and was
-completely removed on glibc 2.34, which causes an undefined symbol error during
-the build of libhugetlbfs.
-
-Greater changes are needed in order to keep providing the same functionality
-with future versions of glibc (see issue #52). Meanwhile, we can disable
-hugepage-backed malloc setup if __morecore is not available so users can at
-least keep using the other features provided by the library. Related tests are
-also conditionally disabled, and will show as SKIPPED if __morecore is not
-available.
-
-Tested on powerpc64le and x86_64 with glibc 2.34 and olders.
-
-Signed-off-by: Matheus Castanho <msc@linux.ibm.com>
----
- Makefile | 6 +++++
- morecore.c | 8 ++++++
- tests/run_tests.py | 67 +++++++++++++++++++++++++++++++++++++++-------
- 3 files changed, 71 insertions(+), 10 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 8b73523..35e53e7 100644
---- a/Makefile
-+++ b/Makefile
-@@ -192,6 +192,12 @@ endif
- endif
- endif
-
-+# glibc 2.34 removed __morecore, so it may not be available with recent versions
-+HAS_MORECORE := $(shell /bin/echo -e '\#include <malloc.h>\nvoid * morecore_exists() { return &__morecore; }' | $(CC) -c -xc -o /dev/null - &> /dev/null && /bin/echo yes || /bin/echo no)
-+ifeq ($(HAS_MORECORE),yes)
-+CFLAGS += -DHAS_MORECORE
-+endif
-+
- HEADERDIR = $(PREFIX)/include
- LIBDIR32 = $(PREFIX)/$(LIB32)
- LIBDIR64 = $(PREFIX)/$(LIB64)
-diff --git a/morecore.c b/morecore.c
-index 6563bbd..405c566 100644
---- a/morecore.c
-+++ b/morecore.c
-@@ -33,6 +33,13 @@
-
- #include "libhugetlbfs_internal.h"
-
-+#ifndef HAS_MORECORE
-+void hugetlbfs_setup_morecore(void)
-+{
-+ INFO("Not setting up morecore because it's not available (see issue #52).\n");
-+}
-+#else
-+
- static int heap_fd;
-
- static void *heapbase;
-@@ -381,3 +388,4 @@ void hugetlbfs_setup_morecore(void)
- * to mmap() if we run out of hugepages. */
- mallopt(M_MMAP_MAX, 0);
- }
-+#endif /* HAS_MORECORE */
-diff --git a/tests/run_tests.py b/tests/run_tests.py
-index 018264d..871d04d 100755
---- a/tests/run_tests.py
-+++ b/tests/run_tests.py
-@@ -60,7 +60,7 @@ def snapshot_pool_state():
- l.append((d, tuple(substate)))
- return tuple(l)
-
--def run_test_prog(bits, pagesize, cmd, **env):
-+def run_test_prog(bits, pagesize, cmd, output='stdout', **env):
- if paranoid_pool_check:
- beforepool = snapshot_pool_state()
- print("Pool state: %s" % str(beforepool))
-@@ -73,15 +73,17 @@ def run_test_prog(bits, pagesize, cmd, **env):
- % (bits, bits, local_env.get("LD_LIBRARY_PATH", ""))
- local_env["HUGETLB_DEFAULT_PAGE_SIZE"] = repr(pagesize)
-
-+ popen_args = {'env' : local_env, output : subprocess.PIPE}
-+
- try:
-- p = subprocess.Popen(cmd, env=local_env, stdout=subprocess.PIPE)
-+ p = subprocess.Popen(cmd, **popen_args)
- rc = p.wait()
- except KeyboardInterrupt:
- # Abort and mark this a strange test result
- return (None, "")
- except OSError as e:
- return (-e.errno, "")
-- out = p.stdout.read().decode().strip()
-+ out = getattr(p, output).read().decode().strip()
-
- if paranoid_pool_check:
- afterpool = snapshot_pool_state()
-@@ -309,6 +311,33 @@ def check_linkhuge_tests():
- okbits.add(bits)
- return okbits
-
-+def check_morecore_disabled():
-+ """
-+ Check if support for morecore is available.
-+
-+ Newer glibc versions (>= 2.34) removed the __morecore malloc hook, so tests
-+ relying on that functionality will not work as expected, and should be
-+ disabled.
-+ """
-+ global morecore_disabled, wordsizes, pagesizes
-+
-+ # Quick and dirty way to get a word and page size. Which one doesn't really
-+ # matter in this case.
-+ for wsz in wordsizes:
-+ b = wsz
-+ break
-+ for psz in pagesizes:
-+ p = psz
-+ break
-+
-+ # Run an arbitrary program and check stderr for the "morecore disabled"
-+ # message
-+ (rc, out) = run_test_prog(b, p, "gethugepagesize", output='stderr',
-+ HUGETLB_MORECORE="yes",
-+ HUGETLB_VERBOSE="3")
-+
-+ morecore_disabled = "Not setting up morecore" in out
-+
- def print_cmd(pagesize, bits, cmd, env):
- if env:
- print(' '.join(['%s=%s' % (k, v) for k, v in env.items()]), end=" ")
-@@ -357,14 +386,17 @@ def skip_test(pagesize, bits, cmd, **env):
- print_cmd(pagesize, bits, cmd, env)
- print("SKIPPED")
-
--def do_test(cmd, bits=None, **env):
-+def do_test(cmd, bits=None, skip=False, **env):
- """
- Run a test case, testing each page size and each indicated word size.
- """
- if bits == None: bits = wordsizes
- for p in pagesizes:
- for b in (set(bits) & wordsizes_by_pagesize[p]):
-- run_test(p, b, cmd, **env)
-+ if skip:
-+ skip_test(p, b, cmd, **env)
-+ else:
-+ run_test(p, b, cmd, **env)
-
- def do_test_with_rlimit(rtype, limit, cmd, bits=None, **env):
- """
-@@ -375,7 +407,7 @@ def do_test_with_rlimit(rtype, limit, cmd, bits=None, **env):
- do_test(cmd, bits, **env)
- resource.setrlimit(rtype, oldlimit)
-
--def do_test_with_pagesize(pagesize, cmd, bits=None, **env):
-+def do_test_with_pagesize(pagesize, cmd, bits=None, skip=False, **env):
- """
- Run a test case, testing with a specified huge page size and
- each indicated word size.
-@@ -383,7 +415,10 @@ def do_test_with_pagesize(pagesize, cmd, bits=None, **env):
- if bits == None:
- bits = wordsizes
- for b in (set(bits) & wordsizes_by_pagesize[pagesize]):
-- run_test(pagesize, b, cmd, **env)
-+ if skip:
-+ skip_test(pagesize, b, cmd, **env)
-+ else:
-+ run_test(pagesize, b, cmd, **env)
-
- def do_elflink_test(cmd, **env):
- """
-@@ -533,7 +568,7 @@ def functional_tests():
- """
- Run the set of functional tests.
- """
-- global linkhuge_wordsizes
-+ global linkhuge_wordsizes, morecore_disabled
-
- # Kernel background tests not requiring hugepage support
- do_test("zero_filesize_segment")
-@@ -598,19 +633,24 @@ def functional_tests():
- do_test("fork-cow")
- do_test("direct")
- do_test_with_pagesize(system_default_hpage_size, "malloc")
-+
- do_test_with_pagesize(system_default_hpage_size, "malloc",
-+ skip=morecore_disabled,
- LD_PRELOAD="libhugetlbfs.so",
- HUGETLB_MORECORE="yes")
- do_test_with_pagesize(system_default_hpage_size, "malloc",
-+ skip=morecore_disabled,
- LD_PRELOAD="libhugetlbfs.so",
- HUGETLB_MORECORE="yes",
- HUGETLB_RESTRICT_EXE="unknown:none")
- do_test_with_pagesize(system_default_hpage_size, "malloc",
-+ skip=morecore_disabled,
- LD_PRELOAD="libhugetlbfs.so",
- HUGETLB_MORECORE="yes",
- HUGETLB_RESTRICT_EXE="unknown:malloc")
- do_test_with_pagesize(system_default_hpage_size, "malloc_manysmall")
- do_test_with_pagesize(system_default_hpage_size, "malloc_manysmall",
-+ skip=morecore_disabled,
- LD_PRELOAD="libhugetlbfs.so",
- HUGETLB_MORECORE="yes")
-
-@@ -630,26 +670,32 @@ def functional_tests():
- do_test_with_pagesize(system_default_hpage_size, "heapshrink",
- GLIBC_TUNABLES="glibc.malloc.tcache_count=0",
- LD_PRELOAD="libheapshrink.so")
-+
- do_test_with_pagesize(system_default_hpage_size, "heapshrink",
-+ skip=morecore_disabled,
- GLIBC_TUNABLES="glibc.malloc.tcache_count=0",
- LD_PRELOAD="libhugetlbfs.so",
- HUGETLB_MORECORE="yes")
- do_test_with_pagesize(system_default_hpage_size, "heapshrink",
-+ skip=morecore_disabled,
- GLIBC_TUNABLES="glibc.malloc.tcache_count=0",
- LD_PRELOAD="libhugetlbfs.so libheapshrink.so",
- HUGETLB_MORECORE="yes")
- do_test_with_pagesize(system_default_hpage_size, "heapshrink",
-+ skip=morecore_disabled,
- GLIBC_TUNABLES="glibc.malloc.tcache_count=0",
- LD_PRELOAD="libheapshrink.so",
- HUGETLB_MORECORE="yes",
- HUGETLB_MORECORE_SHRINK="yes")
- do_test_with_pagesize(system_default_hpage_size, "heapshrink",
-+ skip=morecore_disabled,
- GLIBC_TUNABLES="glibc.malloc.tcache_count=0",
- LD_PRELOAD="libhugetlbfs.so libheapshrink.so",
- HUGETLB_MORECORE="yes",
- HUGETLB_MORECORE_SHRINK="yes")
-
-- do_test("heap-overflow", HUGETLB_VERBOSE="1", HUGETLB_MORECORE="yes")
-+ do_test("heap-overflow", skip=morecore_disabled, HUGETLB_VERBOSE="1",
-+ HUGETLB_MORECORE="yes")
-
- # Run the remapping tests' up-front checks
- linkhuge_wordsizes = check_linkhuge_tests()
-@@ -747,7 +793,7 @@ def print_help():
-
- def main():
- global wordsizes, pagesizes, dangerous, paranoid_pool_check, system_default_hpage_size
-- global custom_ldscripts
-+ global custom_ldscripts, morecore_disabled
- testsets = set()
- env_override = {"QUIET_TEST": "1", "HUGETLBFS_MOUNTS": "",
- "HUGETLB_ELFMAP": None, "HUGETLB_MORECORE": None}
-@@ -802,6 +848,7 @@ def main():
- return 1
-
- check_hugetlbfs_path()
-+ check_morecore_disabled()
-
- if "func" in testsets: functional_tests()
- if "stress" in testsets: stress_tests()
diff --git a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-ino_t-fix.patch b/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-ino_t-fix.patch
deleted file mode 100644
index f408f9fd6ac0..000000000000
--- a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-ino_t-fix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-# Include dirent.h for ino_t
-# Fixes error: unknown typename 'ino_t'
-# Closes: https://bugs.gentoo.org/828830
---- a/tests/hugetests.h
-+++ b/tests/hugetests.h
-@@ -22,6 +22,7 @@
-
- #include <errno.h>
- #include <string.h>
-+#include <dirent.h>
- #include <unistd.h>
-
- #include "libhugetlbfs_privutils.h"
diff --git a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-nonnull-fix.patch b/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-nonnull-fix.patch
deleted file mode 100644
index 5e3532e50877..000000000000
--- a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-nonnull-fix.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-# Use __nonnull only on glibc system
-# Closes: https://bugs.gentoo.org/832980
---- a/shm.c
-+++ b/shm.c
-@@ -35,6 +35,12 @@
- #endif
-
- #ifdef HAVE_SHMGET_SYSCALL
-+
-+/* define __THROW to avoid build issue when it's not available from the libc */
-+#ifndef __THROW
-+#define __THROW
-+#endif
-+
- /*
- * The calls to dlsym() and dlerror() in the shmget() wrapper below force
- * a dependency on libdl.so. This does not work for static executables
-@@ -48,8 +54,13 @@
- * system shmget() may be performed without worry as there is no dynamic
- * call chain.
- */
-+#ifdef __GLIBC__
- extern void *dlsym (void *__restrict __handle, __const char *__restrict __name)
- __attribute__((weak)) __THROW __nonnull ((2));
-+#else
-+extern void *dlsym (void *__restrict __handle, __const char *__restrict __name)
-+ __attribute__((weak)) __THROW __attribute__((nonnull((2))));
-+#endif // __GLIBC__
- extern char *dlerror (void) __attribute__((weak)) __THROW;
-
-
diff --git a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-path-max-fix.patch b/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-path-max-fix.patch
deleted file mode 100644
index 883bb3e98fc7..000000000000
--- a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-path-max-fix.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-# Include limits.h for PATH_MAX
-# Closes: https://bugs.gentoo.org/828830
---- a/hugeadm.c
-+++ b/hugeadm.c
-@@ -33,6 +33,7 @@
- #include <grp.h>
- #include <pwd.h>
- #include <fcntl.h>
-+#include <limits.h>
-
- #include <sys/stat.h>
- #include <sys/types.h>
---- a/tests/gethugepagesizes.c
-+++ b/tests/gethugepagesizes.c
-@@ -27,6 +27,7 @@
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <fcntl.h>
-+#include <limits.h>
- #include <stdarg.h>
- #include <hugetlbfs.h>
-
diff --git a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-sc-level2-fix.patch b/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-sc-level2-fix.patch
deleted file mode 100644
index c42e017abec1..000000000000
--- a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-musl-sc-level2-fix.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-# _SC_LEVEL2_CACHE_LINESIZE is most probably Glibc specific define. Hence we
-# cannot use it with other libc's. Check if _SC_LEVEL2_CACHE_LINESIZE is
-# available or use custom function to get CPU cache size
-# Original patch was found here [1]
-# [1]: https://cgit.openembedded.org/meta-openembedded/plain/meta-oe/recipes-benchmark/libhugetlbfs/files/0003-alloc.c-Avoid-sysconf-_SC_LEVEL2_CACHE_LINESIZE-on-l.patch
-# Closes: https://bugs.gentoo.org/828830
---- a/alloc.c
-+++ b/alloc.c
-@@ -245,6 +245,24 @@ void free_huge_pages(void *ptr)
- __free_huge_pages(ptr, 1);
- }
-
-+/*
-+ * Avoid sysconf(_SC_LEVEL2_CACHE_LINESIZE) on linux
-+ * Taken from the folling patch [1]
-+ *
-+ * [1]: https://cgit.openembedded.org/meta-openembedded/plain/meta-oe/recipes-benchmark/libhugetlbfs/files/0003-alloc.c-Avoid-sysconf-_SC_LEVEL2_CACHE_LINESIZE-on-l.patch
-+ */
-+#if !defined(_SC_LEVEL2_CACHE_LINESIZE)
-+static size_t get_cacheline_size() {
-+ FILE * fp = fopen("/sys/devices/system/cpu/cpu0/cache/index0/coherency_line_size", "r");
-+ unsigned int line_size = 0;
-+ if (fp) {
-+ fscanf(fp, "%d", &line_size);
-+ fclose(fp);
-+ }
-+ return line_size;
-+}
-+#endif
-+
- /*
- * Offset the buffer using bytes wasted due to alignment to avoid using the
- * same cache lines for the start of every buffer returned by
-@@ -261,7 +279,11 @@ void *cachecolor(void *buf, size_t len, size_t color_bytes)
-
- /* Lookup our cacheline size once */
- if (cacheline_size == 0) {
-+#if defined(_SC_LEVEL2_CACHE_LINESIZE)
- cacheline_size = sysconf(_SC_LEVEL2_CACHE_LINESIZE);
-+#else
-+ cacheline_size = get_cacheline_size();
-+#endif
- linemod = time(NULL);
- }
-
diff --git a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-uncompressed-man-pages.patch b/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-uncompressed-man-pages.patch
deleted file mode 100644
index c0ca6a398e70..000000000000
--- a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-uncompressed-man-pages.patch
+++ /dev/null
@@ -1,34 +0,0 @@
---- a/Makefile
-+++ b/Makefile
-@@ -436,27 +436,19 @@ install-man:
- $(INSTALL) -d $(DESTDIR)$(MANDIR8)
- for x in $(INSTALL_MAN1); do \
- $(INSTALL) -m 444 man/$$x $(DESTDIR)$(MANDIR1); \
-- gzip -f $(DESTDIR)$(MANDIR1)/$$x; \
- done
- for x in $(INSTALL_MAN3); do \
- $(INSTALL) -m 444 man/$$x $(DESTDIR)$(MANDIR3); \
-- gzip -f $(DESTDIR)$(MANDIR3)/$$x; \
- done
-- rm -f $(DESTDIR)$(MANDIR3)/free_huge_pages.3.gz
-- rm -f $(DESTDIR)$(MANDIR3)/free_hugepage_region.3.gz
-- rm -f $(DESTDIR)$(MANDIR3)/hugetlbfs_unlinked_fd_for_size.3.gz
-- rm -f $(DESTDIR)$(MANDIR3)/hugetlbfs_find_path_for_size.3.gz
-- ln -s get_huge_pages.3.gz $(DESTDIR)$(MANDIR3)/free_huge_pages.3.gz
-- ln -s get_hugepage_region.3.gz $(DESTDIR)$(MANDIR3)/free_hugepage_region.3.gz
-- ln -s hugetlbfs_unlinked_fd.3.gz $(DESTDIR)$(MANDIR3)/hugetlbfs_unlinked_fd_for_size.3.gz
-- ln -s hugetlbfs_find_path.3.gz $(DESTDIR)$(MANDIR3)/hugetlbfs_find_path_for_size.3.gz
-+ ln -s get_huge_pages.3 $(DESTDIR)$(MANDIR3)/free_huge_pages.3
-+ ln -s get_hugepage_region.3 $(DESTDIR)$(MANDIR3)/free_hugepage_region.3
-+ ln -s hugetlbfs_unlinked_fd.3 $(DESTDIR)$(MANDIR3)/hugetlbfs_unlinked_fd_for_size.3
-+ ln -s hugetlbfs_find_path.3 $(DESTDIR)$(MANDIR3)/hugetlbfs_find_path_for_size.3
- for x in $(INSTALL_MAN7); do \
- $(INSTALL) -m 444 man/$$x $(DESTDIR)$(MANDIR7); \
-- gzip -f $(DESTDIR)$(MANDIR7)/$$x; \
- done
- for x in $(INSTALL_MAN8); do \
- $(INSTALL) -m 444 man/$$x $(DESTDIR)$(MANDIR8); \
-- gzip -f $(DESTDIR)$(MANDIR8)/$$x; \
- done
-
- install-bin:
diff --git a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.6-fixup-testsuite.patch b/sys-libs/libhugetlbfs/files/libhugetlbfs-2.6-fixup-testsuite.patch
deleted file mode 100644
index 12548a884a6f..000000000000
--- a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.6-fixup-testsuite.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff -Nuar --exclude '*.S' --exclude Makefile libhugetlbfs-2.6.orig/tests/run_tests.py libhugetlbfs-2.6/tests/run_tests.py
---- libhugetlbfs-2.6.orig/tests/run_tests.py 2009-08-24 05:56:07.000000000 -0700
-+++ libhugetlbfs-2.6/tests/run_tests.py 2009-10-31 00:40:28.520387427 -0700
-@@ -56,6 +56,11 @@
- local_env["LD_LIBRARY_PATH"] = "../obj%d:obj%d:%s" \
- % (bits, bits, local_env.get("LD_LIBRARY_PATH", ""))
- local_env["HUGETLB_DEFAULT_PAGE_SIZE"] = repr(pagesize)
-+ if isinstance(cmd, types.StringType):
-+ cmd = 'obj%d/%s' % (bits, cmd)
-+ else:
-+ s = 'obj%d/%s' % (bits, cmd[0])
-+ cmd = (s,)+(cmd[1:])
-
- p = subprocess.Popen(cmd, env=local_env, stdout=subprocess.PIPE)
- try:
-@@ -523,10 +528,11 @@
- elfshare_test("linkshare")
- elflink_and_share_test("linkhuge")
-
-- # elflink_rw tests
-- elflink_rw_test("linkhuge_rw")
-- # elflink_rw sharing tests
-- elflink_rw_and_share_test("linkhuge_rw")
-+ if 32 in wordsizes:
-+ # elflink_rw tests
-+ elflink_rw_test("linkhuge_rw")
-+ # elflink_rw sharing tests
-+ elflink_rw_and_share_test("linkhuge_rw")
-
- # Accounting bug tests
- # reset free hpages because sharing will have held some