mirror of
https://git.yoctoproject.org/poky
synced 2026-07-21 05:27:01 +00:00
ltp: Fix build with glibc 2.30
(From OE-Core rev: b129e1b8d19e790b8176bbb390ee9b7745773286) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
+72
@@ -0,0 +1,72 @@
|
|||||||
|
From 404dfeb4faef213b0450f173b60cd7080edec349 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Khem Raj <raj.khem@gmail.com>
|
||||||
|
Date: Fri, 26 Jul 2019 10:32:29 -0700
|
||||||
|
Subject: [PATCH 1/2] Add configure time check for getdents/getdents64 APIs
|
||||||
|
|
||||||
|
glibc 2.30 has added wrapper for getdents64 this will help in detecting
|
||||||
|
right condition to use fallback
|
||||||
|
|
||||||
|
Check for getdents API as well while here
|
||||||
|
|
||||||
|
Upstream-Status: Submitted [http://lists.linux.it/pipermail/ltp/2019-July/012954.html]
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
---
|
||||||
|
configure.ac | 2 ++
|
||||||
|
testcases/kernel/syscalls/getdents/getdents.h | 8 ++++++--
|
||||||
|
2 files changed, 8 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -65,6 +65,8 @@ AC_CHECK_FUNCS([ \
|
||||||
|
fallocate \
|
||||||
|
fchownat \
|
||||||
|
fstatat \
|
||||||
|
+ getdents \
|
||||||
|
+ getdents64 \
|
||||||
|
kcmp \
|
||||||
|
mkdirat \
|
||||||
|
mknodat \
|
||||||
|
--- a/testcases/kernel/syscalls/getdents/getdents.h
|
||||||
|
+++ b/testcases/kernel/syscalls/getdents/getdents.h
|
||||||
|
@@ -23,7 +23,7 @@
|
||||||
|
#include <stdint.h>
|
||||||
|
#include "test.h"
|
||||||
|
#include "lapi/syscalls.h"
|
||||||
|
-
|
||||||
|
+#include "config.h"
|
||||||
|
/*
|
||||||
|
* See fs/compat.c struct compat_linux_dirent
|
||||||
|
*/
|
||||||
|
@@ -34,12 +34,17 @@ struct linux_dirent {
|
||||||
|
char d_name[];
|
||||||
|
};
|
||||||
|
|
||||||
|
+#if HAVE_GETDENTS
|
||||||
|
+#include <unistd.h>
|
||||||
|
+#else
|
||||||
|
static inline int
|
||||||
|
getdents(unsigned int fd, struct linux_dirent *dirp, unsigned int size)
|
||||||
|
{
|
||||||
|
return ltp_syscall(__NR_getdents, fd, dirp, size);
|
||||||
|
}
|
||||||
|
|
||||||
|
+#endif /* HAVE_GETDENTS */
|
||||||
|
+
|
||||||
|
struct linux_dirent64 {
|
||||||
|
uint64_t d_ino;
|
||||||
|
int64_t d_off;
|
||||||
|
@@ -48,10 +53,13 @@ struct linux_dirent64 {
|
||||||
|
char d_name[];
|
||||||
|
};
|
||||||
|
|
||||||
|
+#if HAVE_GETDENTS64
|
||||||
|
+#include <unistd.h>
|
||||||
|
+#else
|
||||||
|
static inline int
|
||||||
|
getdents64(unsigned int fd, struct linux_dirent64 *dirp64, unsigned int size)
|
||||||
|
{
|
||||||
|
return ltp_syscall(__NR_getdents64, fd, dirp64, size);
|
||||||
|
}
|
||||||
|
-
|
||||||
|
+#endif /* HAVE_GETDENTS64 */
|
||||||
|
#endif /* GETDENTS_H */
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
From 7bc134545b7beb09717a60541530c20a1a5740d3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Khem Raj <raj.khem@gmail.com>
|
||||||
|
Date: Fri, 26 Jul 2019 10:55:28 -0700
|
||||||
|
Subject: [PATCH 2/2] check for RES_USE_INET6 during configure
|
||||||
|
|
||||||
|
glibc 2.30 has remove RES_USE_INET6 define which has been on its way out
|
||||||
|
since 2.26 release, this check ensures that we detect it before using it
|
||||||
|
|
||||||
|
Upstream-Status: Submitted [http://lists.linux.it/pipermail/ltp/2019-July/012955.html]
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
---
|
||||||
|
configure.ac | 13 +++++++++++++
|
||||||
|
testcases/network/multicast/mc_gethost/mc_gethost.c | 6 ++++++
|
||||||
|
2 files changed, 19 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index 2255b5c181..ed7acccb01 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -91,6 +91,19 @@ AC_CHECK_FUNCS([ \
|
||||||
|
vmsplice \
|
||||||
|
])
|
||||||
|
|
||||||
|
+#check defines
|
||||||
|
+AC_MSG_CHECKING([for RES_USE_INET6])
|
||||||
|
+AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <resolv.h>]],
|
||||||
|
+ [[char dummy[RES_USE_INET6];]])],
|
||||||
|
+ [
|
||||||
|
+ AC_MSG_RESULT([yes])
|
||||||
|
+ AC_DEFINE_UNQUOTED([HAVE_RES_USE_INET6], 1, [Define to 1 if you have the RES_USE_INET6 macro.])
|
||||||
|
+ ],
|
||||||
|
+ [
|
||||||
|
+ AC_MSG_RESULT([no])
|
||||||
|
+ AC_DEFINE_UNQUOTED([HAVE_RES_USE_INET6], 0, [Define to 1 if you have the RES_USE_INET6 macro.])
|
||||||
|
+ ]
|
||||||
|
+)
|
||||||
|
# Tools knobs
|
||||||
|
|
||||||
|
# Expect
|
||||||
|
diff --git a/testcases/network/multicast/mc_gethost/mc_gethost.c b/testcases/network/multicast/mc_gethost/mc_gethost.c
|
||||||
|
index 9cc15d086b..d1cae5441a 100644
|
||||||
|
--- a/testcases/network/multicast/mc_gethost/mc_gethost.c
|
||||||
|
+++ b/testcases/network/multicast/mc_gethost/mc_gethost.c
|
||||||
|
@@ -17,6 +17,8 @@
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
+#include "config.h"
|
||||||
|
+
|
||||||
|
#ifndef LOG_PERROR
|
||||||
|
#define LOG_PERROR 0
|
||||||
|
#endif
|
||||||
|
@@ -50,8 +52,12 @@ usage:
|
||||||
|
argv++, argc--;
|
||||||
|
}
|
||||||
|
if (argc >= 1 && !strcmp(*argv, "-6")) {
|
||||||
|
+#if HAVE_RES_USE_INET6
|
||||||
|
af = AF_INET6, size = IN6ADDRSZ;
|
||||||
|
_res.options |= RES_USE_INET6;
|
||||||
|
+#else
|
||||||
|
+ af = AF_INET, size = INADDRSZ;
|
||||||
|
+#endif
|
||||||
|
argv++, argc--;
|
||||||
|
}
|
||||||
|
if (argc >= 1 && !strcmp(*argv, "-f")) {
|
||||||
|
--
|
||||||
|
2.22.0
|
||||||
|
|
||||||
-50
@@ -1,50 +0,0 @@
|
|||||||
From b996b2480fe3a800ffbdc4a0fdc5e8775c575449 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Khem Raj <raj.khem@gmail.com>
|
|
||||||
Date: Fri, 8 Jan 2016 06:57:04 +0000
|
|
||||||
Subject: [PATCH] getdents: define getdents/getdents64 only for glibc
|
|
||||||
|
|
||||||
getdents/getdents64 are implemented in musl and when we define static
|
|
||||||
functions with same name, it errors out.
|
|
||||||
|
|
||||||
Upstream-Status: Pending
|
|
||||||
|
|
||||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
||||||
---
|
|
||||||
testcases/kernel/syscalls/getdents/getdents.h | 6 ++++--
|
|
||||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/testcases/kernel/syscalls/getdents/getdents.h b/testcases/kernel/syscalls/getdents/getdents.h
|
|
||||||
index 702b0bd..860b22e 100644
|
|
||||||
--- a/testcases/kernel/syscalls/getdents/getdents.h
|
|
||||||
+++ b/testcases/kernel/syscalls/getdents/getdents.h
|
|
||||||
@@ -34,12 +34,13 @@ struct linux_dirent {
|
|
||||||
char d_name[];
|
|
||||||
};
|
|
||||||
|
|
||||||
+#ifdef __GLIBC__
|
|
||||||
static inline int
|
|
||||||
getdents(unsigned int fd, struct linux_dirent *dirp, unsigned int size)
|
|
||||||
{
|
|
||||||
return ltp_syscall(__NR_getdents, fd, dirp, size);
|
|
||||||
}
|
|
||||||
-
|
|
||||||
+#endif
|
|
||||||
struct linux_dirent64 {
|
|
||||||
uint64_t d_ino;
|
|
||||||
int64_t d_off;
|
|
||||||
@@ -48,10 +49,11 @@ struct linux_dirent64 {
|
|
||||||
char d_name[];
|
|
||||||
};
|
|
||||||
|
|
||||||
+#ifdef __GLIBC__
|
|
||||||
static inline int
|
|
||||||
getdents64(unsigned int fd, struct linux_dirent64 *dirp64, unsigned int size)
|
|
||||||
{
|
|
||||||
return ltp_syscall(__NR_getdents64, fd, dirp64, size);
|
|
||||||
}
|
|
||||||
-
|
|
||||||
+#endif
|
|
||||||
#endif /* GETDENTS_H */
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
||||||
@@ -34,7 +34,6 @@ SRC_URI = "git://github.com/linux-test-project/ltp.git \
|
|||||||
file://0002-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch \
|
file://0002-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch \
|
||||||
file://0003-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch \
|
file://0003-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch \
|
||||||
file://0004-guard-mallocopt-with-__GLIBC__.patch \
|
file://0004-guard-mallocopt-with-__GLIBC__.patch \
|
||||||
file://0005-getdents-define-getdents-getdents64-only-for-glibc.patch \
|
|
||||||
file://0006-rt_tgsigqueueinfo-disable-test-on-musl.patch \
|
file://0006-rt_tgsigqueueinfo-disable-test-on-musl.patch \
|
||||||
file://0007-Fix-test_proc_kill-hanging.patch \
|
file://0007-Fix-test_proc_kill-hanging.patch \
|
||||||
file://0008-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch \
|
file://0008-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch \
|
||||||
@@ -42,6 +41,8 @@ SRC_URI = "git://github.com/linux-test-project/ltp.git \
|
|||||||
file://0010-shmctl01-don-t-use-hardcoded-index-0-for-SHM_STAT-te.patch \
|
file://0010-shmctl01-don-t-use-hardcoded-index-0-for-SHM_STAT-te.patch \
|
||||||
file://0011-direct_io-diotest4-drop-MAP_FIXED.patch \
|
file://0011-direct_io-diotest4-drop-MAP_FIXED.patch \
|
||||||
file://0012-getrlimit03-adjust-a-bit-of-code-to-compatiable-with.patch \
|
file://0012-getrlimit03-adjust-a-bit-of-code-to-compatiable-with.patch \
|
||||||
|
file://0001-Add-configure-time-check-for-getdents-getdents64-API.patch \
|
||||||
|
file://0002-check-for-RES_USE_INET6-during-configure.patch \
|
||||||
"
|
"
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
S = "${WORKDIR}/git"
|
||||||
|
|||||||
Reference in New Issue
Block a user