diff options
author | Khem Raj <raj.khem@gmail.com> | 2016-03-22 15:54:23 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-03-25 10:29:16 +0000 |
commit | 4aa08b897628ef43adc9c3aa86bdf32499c328c1 (patch) | |
tree | d284df1f9d1fac9fdaff77282c09e4584c8e0388 | |
parent | 959b7f204ea009fcf4ff0de30522ecf17cb64488 (diff) | |
download | poky-4aa08b897628ef43adc9c3aa86bdf32499c328c1.tar.gz |
ltp: Fix build on x86/musl
In last patch it covered out the non-glibc case well
but did not define else case, when __GLIBC__ is not
defined, as a result errors like
| getcpu01.c:107:41: error: use of undeclared identifier 'sys_support'
| if (((tst_kvercmp(2, 6, 20)) < 0) || !(sys_support)) {
appeared, fixed it with this updated patch
(From OE-Core rev: 04cbc4834076fef6b46af4c5c66046862de7634d)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
3 files changed, 71 insertions, 23 deletions
diff --git a/meta/recipes-extended/ltp/ltp/0008-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch b/meta/recipes-extended/ltp/ltp/0008-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch index 59e169e99c..d123074207 100644 --- a/meta/recipes-extended/ltp/ltp/0008-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch +++ b/meta/recipes-extended/ltp/ltp/0008-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch | |||
@@ -1,17 +1,18 @@ | |||
1 | From 714024e4699b28eed866d775f4c715b0e55b76f7 Mon Sep 17 00:00:00 2001 | 1 | From a3cbee31daae2466bc8dcac36b33a01352693346 Mon Sep 17 00:00:00 2001 |
2 | From: Khem Raj <raj.khem@gmail.com> | 2 | From: Khem Raj <raj.khem@gmail.com> |
3 | Date: Thu, 7 Jan 2016 19:40:08 +0000 | 3 | Date: Thu, 7 Jan 2016 19:40:08 +0000 |
4 | Subject: [PATCH 08/32] Check if __GLIBC_PREREQ is defined before using it | 4 | Subject: [PATCH 01/26] Check if __GLIBC_PREREQ is defined before using it |
5 | 5 | ||
6 | __GLIBC_PREREQ is specific to glibc so it should be checked if it is | 6 | __GLIBC_PREREQ is specific to glibc so it should be checked if it is |
7 | defined or not. | 7 | defined or not. |
8 | 8 | ||
9 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | 9 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
10 | |||
10 | --- | 11 | --- |
11 | testcases/kernel/syscalls/accept4/accept4_01.c | 9 ++++++- | 12 | testcases/kernel/syscalls/accept4/accept4_01.c | 9 ++++- |
12 | testcases/kernel/syscalls/getcpu/getcpu01.c | 31 ++++++++++++++++++++++ | 13 | testcases/kernel/syscalls/getcpu/getcpu01.c | 40 +++++++++++++++++++++- |
13 | .../sched_getaffinity/sched_getaffinity01.c | 26 ++++++++++++++++++ | 14 | .../sched_getaffinity/sched_getaffinity01.c | 26 ++++++++++++++ |
14 | 3 files changed, 65 insertions(+), 1 deletion(-) | 15 | 3 files changed, 73 insertions(+), 2 deletions(-) |
15 | 16 | ||
16 | diff --git a/testcases/kernel/syscalls/accept4/accept4_01.c b/testcases/kernel/syscalls/accept4/accept4_01.c | 17 | diff --git a/testcases/kernel/syscalls/accept4/accept4_01.c b/testcases/kernel/syscalls/accept4/accept4_01.c |
17 | index 6072bfa..2b090cb 100644 | 18 | index 6072bfa..2b090cb 100644 |
@@ -58,47 +59,52 @@ index 6072bfa..2b090cb 100644 | |||
58 | acceptfd = accept4(lfd, (struct sockaddr *)&claddr, &addrlen, | 59 | acceptfd = accept4(lfd, (struct sockaddr *)&claddr, &addrlen, |
59 | closeonexec_flag | nonblock_flag); | 60 | closeonexec_flag | nonblock_flag); |
60 | diff --git a/testcases/kernel/syscalls/getcpu/getcpu01.c b/testcases/kernel/syscalls/getcpu/getcpu01.c | 61 | diff --git a/testcases/kernel/syscalls/getcpu/getcpu01.c b/testcases/kernel/syscalls/getcpu/getcpu01.c |
61 | index c927512..6de6362 100644 | 62 | index c927512..921b107 100644 |
62 | --- a/testcases/kernel/syscalls/getcpu/getcpu01.c | 63 | --- a/testcases/kernel/syscalls/getcpu/getcpu01.c |
63 | +++ b/testcases/kernel/syscalls/getcpu/getcpu01.c | 64 | +++ b/testcases/kernel/syscalls/getcpu/getcpu01.c |
64 | @@ -62,6 +62,7 @@ | 65 | @@ -62,6 +62,7 @@ |
65 | #include <dirent.h> | 66 | #include <dirent.h> |
66 | 67 | ||
67 | #if defined(__i386__) || defined(__x86_64__) | 68 | #if defined(__i386__) || defined(__x86_64__) |
68 | +#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) | 69 | +#if defined(__GLIBC__) |
69 | #if __GLIBC_PREREQ(2,6) | 70 | #if __GLIBC_PREREQ(2,6) |
70 | #if defined(__x86_64__) | 71 | #if defined(__x86_64__) |
71 | #include <utmpx.h> | 72 | #include <utmpx.h> |
72 | @@ -72,13 +73,16 @@ int sys_support = 1; | 73 | @@ -75,10 +76,17 @@ int sys_support = 0; |
73 | #else | 74 | #else |
74 | int sys_support = 0; | 75 | int sys_support = 0; |
75 | #endif | 76 | #endif |
77 | +#else | ||
78 | +int sys_support = 0; | ||
76 | +#endif | 79 | +#endif |
77 | #else | ||
78 | int sys_support = 0; | ||
79 | #endif | ||
80 | 80 | ||
81 | +#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) | 81 | +#if defined(__GLIBC__) |
82 | #if !(__GLIBC_PREREQ(2, 7)) | 82 | #if !(__GLIBC_PREREQ(2, 7)) |
83 | #define CPU_FREE(ptr) free(ptr) | 83 | #define CPU_FREE(ptr) free(ptr) |
84 | #endif | 84 | #endif |
85 | +#else | ||
86 | +#define CPU_FREE(ptr) free(ptr) | ||
85 | +#endif | 87 | +#endif |
86 | 88 | ||
87 | void cleanup(void); | 89 | void cleanup(void); |
88 | void setup(void); | 90 | void setup(void); |
89 | @@ -164,9 +168,11 @@ static inline int getcpu(unsigned *cpu_id, unsigned *node_id, | 91 | @@ -164,9 +172,14 @@ static inline int getcpu(unsigned *cpu_id, unsigned *node_id, |
90 | { | 92 | { |
91 | #if defined(__i386__) | 93 | #if defined(__i386__) |
92 | return syscall(318, cpu_id, node_id, cache_struct); | 94 | return syscall(318, cpu_id, node_id, cache_struct); |
93 | +#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) | 95 | -#elif __GLIBC_PREREQ(2,6) |
94 | #elif __GLIBC_PREREQ(2,6) | 96 | +#if defined(__GLIBC__) |
97 | +#if __GLIBC_PREREQ(2,6) | ||
98 | + *cpu_id = sched_getcpu(); | ||
99 | +#endif | ||
100 | +#else | ||
95 | *cpu_id = sched_getcpu(); | 101 | *cpu_id = sched_getcpu(); |
96 | #endif | 102 | #endif |
97 | +#endif | 103 | +#endif |
98 | return 0; | 104 | return 0; |
99 | } | 105 | } |
100 | 106 | ||
101 | @@ -191,15 +197,20 @@ unsigned int set_cpu_affinity(void) | 107 | @@ -191,15 +204,20 @@ unsigned int set_cpu_affinity(void) |
102 | cpu_set_t *set; | 108 | cpu_set_t *set; |
103 | size_t size; | 109 | size_t size; |
104 | int nrcpus = 1024; | 110 | int nrcpus = 1024; |
@@ -119,7 +125,7 @@ index c927512..6de6362 100644 | |||
119 | #if __GLIBC_PREREQ(2, 7) | 125 | #if __GLIBC_PREREQ(2, 7) |
120 | size = CPU_ALLOC_SIZE(nrcpus); | 126 | size = CPU_ALLOC_SIZE(nrcpus); |
121 | CPU_ZERO_S(size, set); | 127 | CPU_ZERO_S(size, set); |
122 | @@ -207,8 +218,13 @@ realloc: | 128 | @@ -207,8 +225,13 @@ realloc: |
123 | size = sizeof(cpu_set_t); | 129 | size = sizeof(cpu_set_t); |
124 | CPU_ZERO(set); | 130 | CPU_ZERO(set); |
125 | #endif | 131 | #endif |
@@ -133,7 +139,7 @@ index c927512..6de6362 100644 | |||
133 | #if __GLIBC_PREREQ(2, 7) | 139 | #if __GLIBC_PREREQ(2, 7) |
134 | if (errno == EINVAL && nrcpus < (1024 << 8)) { | 140 | if (errno == EINVAL && nrcpus < (1024 << 8)) { |
135 | nrcpus = nrcpus << 2; | 141 | nrcpus = nrcpus << 2; |
136 | @@ -220,10 +236,17 @@ realloc: | 142 | @@ -220,10 +243,17 @@ realloc: |
137 | "NR_CPUS of the kernel is more than 1024, so we'd better use a newer glibc(>= 2.7)"); | 143 | "NR_CPUS of the kernel is more than 1024, so we'd better use a newer glibc(>= 2.7)"); |
138 | else | 144 | else |
139 | #endif | 145 | #endif |
@@ -151,7 +157,7 @@ index c927512..6de6362 100644 | |||
151 | #if __GLIBC_PREREQ(2, 7) | 157 | #if __GLIBC_PREREQ(2, 7) |
152 | CPU_ZERO_S(size, set); | 158 | CPU_ZERO_S(size, set); |
153 | CPU_SET_S(cpu_max, size, set); | 159 | CPU_SET_S(cpu_max, size, set); |
154 | @@ -231,6 +254,10 @@ realloc: | 160 | @@ -231,6 +261,10 @@ realloc: |
155 | CPU_ZERO(set); | 161 | CPU_ZERO(set); |
156 | CPU_SET(cpu_max, set); | 162 | CPU_SET(cpu_max, set); |
157 | #endif | 163 | #endif |
@@ -162,7 +168,7 @@ index c927512..6de6362 100644 | |||
162 | if (sched_setaffinity(0, size, set) < 0) { | 168 | if (sched_setaffinity(0, size, set) < 0) { |
163 | CPU_FREE(set); | 169 | CPU_FREE(set); |
164 | tst_brkm(TFAIL, NULL, "sched_setaffinity:errno:%d", errno); | 170 | tst_brkm(TFAIL, NULL, "sched_setaffinity:errno:%d", errno); |
165 | @@ -247,11 +274,15 @@ unsigned int max_cpuid(size_t size, cpu_set_t * set) | 171 | @@ -247,11 +281,15 @@ unsigned int max_cpuid(size_t size, cpu_set_t * set) |
166 | { | 172 | { |
167 | unsigned int index, max = 0; | 173 | unsigned int index, max = 0; |
168 | for (index = 0; index < size * BITS_PER_BYTE; index++) | 174 | for (index = 0; index < size * BITS_PER_BYTE; index++) |
@@ -275,5 +281,5 @@ index 9d6a81a..4ed13b2 100644 | |||
275 | QUICK_TEST(sched_getaffinity(0, len, (cpu_set_t *) - 1)); | 281 | QUICK_TEST(sched_getaffinity(0, len, (cpu_set_t *) - 1)); |
276 | QUICK_TEST(sched_getaffinity(0, 0, mask)); | 282 | QUICK_TEST(sched_getaffinity(0, 0, mask)); |
277 | -- | 283 | -- |
278 | 2.7.0 | 284 | 1.9.1 |
279 | 285 | ||
diff --git a/meta/recipes-extended/ltp/ltp/0033-shmat1-Cover-GNU-specific-code-under-__USE_GNU.patch b/meta/recipes-extended/ltp/ltp/0033-shmat1-Cover-GNU-specific-code-under-__USE_GNU.patch new file mode 100644 index 0000000000..868e1cf1fa --- /dev/null +++ b/meta/recipes-extended/ltp/ltp/0033-shmat1-Cover-GNU-specific-code-under-__USE_GNU.patch | |||
@@ -0,0 +1,41 @@ | |||
1 | From 5e3dea669e5b0b769f322d54a3bb9f320b5327da Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Tue, 22 Mar 2016 15:47:14 +0000 | ||
4 | Subject: [PATCH 26/26] shmat1: Cover GNU specific code under __USE_GNU | ||
5 | |||
6 | on x86, we use uc_mcontext element from sigcontext | ||
7 | which is marked gnu-specific in glibc, this patch | ||
8 | adds this condition around the code | ||
9 | |||
10 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
11 | --- | ||
12 | Upstream-Status: Pending | ||
13 | |||
14 | testcases/kernel/mem/mtest06/shmat1.c | 4 ++-- | ||
15 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
16 | |||
17 | diff --git a/testcases/kernel/mem/mtest06/shmat1.c b/testcases/kernel/mem/mtest06/shmat1.c | ||
18 | index 0d6d7a4..bee69f6 100644 | ||
19 | --- a/testcases/kernel/mem/mtest06/shmat1.c | ||
20 | +++ b/testcases/kernel/mem/mtest06/shmat1.c | ||
21 | @@ -111,7 +111,7 @@ int done_shmat = 0; /* disallow read and writes before shmat */ | ||
22 | static void sig_handler(int signal, /* signal number, set to handle SIGALRM */ | ||
23 | int code, struct ucontext *ut) | ||
24 | { /* contains pointer to sigcontext structure */ | ||
25 | -#ifdef __i386__ | ||
26 | +#if defined(__i386__) && defined(__USE_GNU) | ||
27 | unsigned long except; /* exception type. */ | ||
28 | int ret = 0; /* exit code from signal handler. */ | ||
29 | struct sigcontext *scp = /* pointer to sigcontext structure */ | ||
30 | @@ -122,7 +122,7 @@ static void sig_handler(int signal, /* signal number, set to handle SIGALRM | ||
31 | fprintf(stdout, "Test ended, success\n"); | ||
32 | exit(0); | ||
33 | } | ||
34 | -#ifdef __i386__ | ||
35 | +#if defined(__i386__) && defined(__USE_GNU) | ||
36 | else { | ||
37 | except = scp->trapno; | ||
38 | fprintf(stderr, "signal caught - [%d] ", signal); | ||
39 | -- | ||
40 | 1.9.1 | ||
41 | |||
diff --git a/meta/recipes-extended/ltp/ltp_20160126.bb b/meta/recipes-extended/ltp/ltp_20160126.bb index ac1679382d..720a569ae5 100644 --- a/meta/recipes-extended/ltp/ltp_20160126.bb +++ b/meta/recipes-extended/ltp/ltp_20160126.bb | |||
@@ -59,7 +59,8 @@ SRC_URI = "git://github.com/linux-test-project/ltp.git \ | |||
59 | file://0030-lib-Use-PTHREAD_MUTEX_RECURSIVE-in-place-of-PTHREAD_.patch \ | 59 | file://0030-lib-Use-PTHREAD_MUTEX_RECURSIVE-in-place-of-PTHREAD_.patch \ |
60 | file://0031-vma03-fix-page-size-offset-as-per-page-size-alignmen.patch \ | 60 | file://0031-vma03-fix-page-size-offset-as-per-page-size-alignmen.patch \ |
61 | file://0032-regen.sh-Include-asm-unistd.h-explicitly.patch \ | 61 | file://0032-regen.sh-Include-asm-unistd.h-explicitly.patch \ |
62 | " | 62 | file://0033-shmat1-Cover-GNU-specific-code-under-__USE_GNU.patch \ |
63 | " | ||
63 | 64 | ||
64 | S = "${WORKDIR}/git" | 65 | S = "${WORKDIR}/git" |
65 | 66 | ||