summaryrefslogtreecommitdiffstats
path: root/meta-oe
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2018-06-21 20:02:34 -0700
committerKhem Raj <raj.khem@gmail.com>2018-06-22 10:52:33 -0700
commiteec73ed7c6441bf87477d8b192613c3452bdcf34 (patch)
tree2b24c68df08e7d0427e3675a6d011cce83c30569 /meta-oe
parent1477cf5460fa1e99abbd1117aa7007c89e173680 (diff)
downloadmeta-openembedded-eec73ed7c6441bf87477d8b192613c3452bdcf34.tar.gz
libhugetlbfs: Fix build on musl
needs more runtime testing Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-oe')
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/0001-include-stddef.h-for-ptrdiff_t.patch25
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/0002-Mark-glibc-specific-code-so.patch39
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/0003-alloc.c-Avoid-sysconf-_SC_LEVEL2_CACHE_LINESIZE-on-l.patch49
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/0004-shm.c-Mark-glibc-specific-changes-so.patch30
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/0005-Include-dirent.h-for-ino_t.patch28
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/0006-include-limits.h-for-PATH_MAX.patch42
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb6
7 files changed, 219 insertions, 0 deletions
diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-include-stddef.h-for-ptrdiff_t.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-include-stddef.h-for-ptrdiff_t.patch
new file mode 100644
index 000000000..bae90b4ed
--- /dev/null
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-include-stddef.h-for-ptrdiff_t.patch
@@ -0,0 +1,25 @@
1From d3c2187716a0a1f9359a869ca383c129603554d9 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 21 Jun 2018 19:25:57 -0700
4Subject: [PATCH 1/6] include stddef.h for ptrdiff_t
5
6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7---
8 morecore.c | 1 +
9 1 file changed, 1 insertion(+)
10
11diff --git a/morecore.c b/morecore.c
12index 62ad252..c5981d2 100644
13--- a/morecore.c
14+++ b/morecore.c
15@@ -19,6 +19,7 @@
16
17 #define _GNU_SOURCE
18
19+#include <stddef.h>
20 #include <stdio.h>
21 #include <stdlib.h>
22 #include <malloc.h>
23--
242.17.1
25
diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/0002-Mark-glibc-specific-code-so.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/0002-Mark-glibc-specific-code-so.patch
new file mode 100644
index 000000000..4354d7861
--- /dev/null
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/0002-Mark-glibc-specific-code-so.patch
@@ -0,0 +1,39 @@
1From b72bf6a81fa879f32a074fe53776fc8291c83b6f Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 21 Jun 2018 19:32:59 -0700
4Subject: [PATCH 2/6] Mark glibc specific code so
5
6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7---
8 morecore.c | 3 ++-
9 1 file changed, 2 insertions(+), 1 deletion(-)
10
11diff --git a/morecore.c b/morecore.c
12index c5981d2..ec9fafa 100644
13--- a/morecore.c
14+++ b/morecore.c
15@@ -347,6 +347,7 @@ void hugetlbfs_setup_morecore(void)
16
17 INFO("setup_morecore(): heapaddr = 0x%lx\n", heapaddr);
18
19+#ifdef __GLIBC__
20 heaptop = heapbase = (void *)heapaddr;
21 if (__hugetlb_opts.thp_morecore)
22 __morecore = &thp_morecore;
23@@ -354,7 +355,6 @@ void hugetlbfs_setup_morecore(void)
24 __morecore = &hugetlbfs_morecore;
25
26 /* Set some allocator options more appropriate for hugepages */
27-
28 if (__hugetlb_opts.shrink_ok)
29 mallopt(M_TRIM_THRESHOLD, hpage_size / 2);
30 else
31@@ -364,4 +364,5 @@ void hugetlbfs_setup_morecore(void)
32 * This doesn't appear to prohibit malloc() from falling back
33 * to mmap() if we run out of hugepages. */
34 mallopt(M_MMAP_MAX, 0);
35+#endif
36 }
37--
382.17.1
39
diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/0003-alloc.c-Avoid-sysconf-_SC_LEVEL2_CACHE_LINESIZE-on-l.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/0003-alloc.c-Avoid-sysconf-_SC_LEVEL2_CACHE_LINESIZE-on-l.patch
new file mode 100644
index 000000000..f6d8a10a9
--- /dev/null
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/0003-alloc.c-Avoid-sysconf-_SC_LEVEL2_CACHE_LINESIZE-on-l.patch
@@ -0,0 +1,49 @@
1From 3d6ab5ea8e23f96ee6fdd915e05acd9a751dd876 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 21 Jun 2018 19:44:26 -0700
4Subject: [PATCH 3/6] alloc.c: Avoid sysconf(_SC_LEVEL2_CACHE_LINESIZE) on
5 linux
6
7musl does not have it
8
9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10---
11 alloc.c | 15 ++++++++++++++-
12 1 file changed, 14 insertions(+), 1 deletion(-)
13
14diff --git a/alloc.c b/alloc.c
15index bce9464..cf7eb40 100644
16--- a/alloc.c
17+++ b/alloc.c
18@@ -245,6 +245,19 @@ void free_huge_pages(void *ptr)
19 __free_huge_pages(ptr, 1);
20 }
21
22+static size_t get_cacheline_size() {
23+#if defined(__linux__)
24+ FILE * fp = fopen("/sys/devices/system/cpu/cpu0/cache/index0/coherency_line_size", "r");
25+ unsigned int line_size = 0;
26+ if (fp) {
27+ fscanf(fp, "%d", &line_size);
28+ fclose(fp);
29+ }
30+ return line_size;
31+#else
32+ return sysconf(_SC_LEVEL2_CACHE_LINESIZE);
33+#endif
34+}
35 /*
36 * Offset the buffer using bytes wasted due to alignment to avoid using the
37 * same cache lines for the start of every buffer returned by
38@@ -261,7 +274,7 @@ void *cachecolor(void *buf, size_t len, size_t color_bytes)
39
40 /* Lookup our cacheline size once */
41 if (cacheline_size == 0) {
42- cacheline_size = sysconf(_SC_LEVEL2_CACHE_LINESIZE);
43+ cacheline_size = get_cacheline_size();
44 linemod = time(NULL);
45 }
46
47--
482.17.1
49
diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/0004-shm.c-Mark-glibc-specific-changes-so.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/0004-shm.c-Mark-glibc-specific-changes-so.patch
new file mode 100644
index 000000000..960e15293
--- /dev/null
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/0004-shm.c-Mark-glibc-specific-changes-so.patch
@@ -0,0 +1,30 @@
1From 7002dec46dae375e8aa1aa8577a5b274c02fc697 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 21 Jun 2018 19:48:04 -0700
4Subject: [PATCH 4/6] shm.c: Mark glibc specific changes so
5
6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7---
8 shm.c | 3 ++-
9 1 file changed, 2 insertions(+), 1 deletion(-)
10
11diff --git a/shm.c b/shm.c
12index 1f82cab..9447b63 100644
13--- a/shm.c
14+++ b/shm.c
15@@ -48,10 +48,11 @@
16 * system shmget() may be performed without worry as there is no dynamic
17 * call chain.
18 */
19+#ifdef __GLIBC__
20 extern void *dlsym (void *__restrict __handle, __const char *__restrict __name)
21 __attribute__((weak)) __THROW __nonnull ((2));
22 extern char *dlerror (void) __attribute__((weak)) __THROW;
23-
24+#endif
25
26 /* call syscall shmget through the generic syscall mechanism */
27 static int syscall_shmget(key_t key, size_t size, int shmflg)
28--
292.17.1
30
diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/0005-Include-dirent.h-for-ino_t.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/0005-Include-dirent.h-for-ino_t.patch
new file mode 100644
index 000000000..543302b13
--- /dev/null
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/0005-Include-dirent.h-for-ino_t.patch
@@ -0,0 +1,28 @@
1From 87ed1706f426ed27fc4eeca7c3b09a4086c9a2a9 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 21 Jun 2018 19:51:02 -0700
4Subject: [PATCH 5/6] Include dirent.h for ino_t
5
6Fixes
7error: unknown type name 'ino_t'; did you mean 'int'?
8
9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10---
11 tests/hugetests.h | 1 +
12 1 file changed, 1 insertion(+)
13
14diff --git a/tests/hugetests.h b/tests/hugetests.h
15index 8b1d8d9..056042c 100644
16--- a/tests/hugetests.h
17+++ b/tests/hugetests.h
18@@ -22,6 +22,7 @@
19
20 #include <errno.h>
21 #include <string.h>
22+#include <dirent.h>
23
24 #include "libhugetlbfs_privutils.h"
25 #include "libhugetlbfs_testprobes.h"
26--
272.17.1
28
diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/0006-include-limits.h-for-PATH_MAX.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/0006-include-limits.h-for-PATH_MAX.patch
new file mode 100644
index 000000000..35dd6e11c
--- /dev/null
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/0006-include-limits.h-for-PATH_MAX.patch
@@ -0,0 +1,42 @@
1From 96c012ea31a2d124528f3b6f3b9857b71b059db3 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 21 Jun 2018 19:58:53 -0700
4Subject: [PATCH 6/6] include limits.h for PATH_MAX
5
6Fixes
7
8error: 'PATH_MAX' undeclared
9
10Signed-off-by: Khem Raj <raj.khem@gmail.com>
11---
12 hugeadm.c | 1 +
13 tests/gethugepagesizes.c | 1 +
14 2 files changed, 2 insertions(+)
15
16diff --git a/hugeadm.c b/hugeadm.c
17index fe4211d..8db274c 100644
18--- a/hugeadm.c
19+++ b/hugeadm.c
20@@ -33,6 +33,7 @@
21 #include <grp.h>
22 #include <pwd.h>
23 #include <fcntl.h>
24+#include <limits.h>
25
26 #include <sys/stat.h>
27 #include <sys/types.h>
28diff --git a/tests/gethugepagesizes.c b/tests/gethugepagesizes.c
29index 9551b38..2645e3f 100644
30--- a/tests/gethugepagesizes.c
31+++ b/tests/gethugepagesizes.c
32@@ -29,6 +29,7 @@
33 #include <fcntl.h>
34 #include <stdarg.h>
35 #include <hugetlbfs.h>
36+#include <limits.h>
37
38 #include "hugetests.h"
39
40--
412.17.1
42
diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb b/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
index ee1b9d050..14c909e75 100644
--- a/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
@@ -19,6 +19,12 @@ SRC_URI = " \
19 file://0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch \ 19 file://0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch \
20 file://libhugetlbfs-elf_i386-avoid-search-host-library-path.patch \ 20 file://libhugetlbfs-elf_i386-avoid-search-host-library-path.patch \
21 file://Force-text-segment-alignment-to-0x08000000-for-i386-.patch \ 21 file://Force-text-segment-alignment-to-0x08000000-for-i386-.patch \
22 file://0001-include-stddef.h-for-ptrdiff_t.patch \
23 file://0002-Mark-glibc-specific-code-so.patch \
24 file://0003-alloc.c-Avoid-sysconf-_SC_LEVEL2_CACHE_LINESIZE-on-l.patch \
25 file://0004-shm.c-Mark-glibc-specific-changes-so.patch \
26 file://0005-Include-dirent.h-for-ino_t.patch \
27 file://0006-include-limits.h-for-PATH_MAX.patch \
22" 28"
23 29
24UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)" 30UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"