ltp: Fix for glibc 2.23+
PATCH 1/1 ltp: Fix for glibc 2.23+
glibc 2.23 onwards drops support for the bdflush syscall, which doesn't actually do anything on 2.6 kernels anyway, its handled by a kernel thread.
Therefore drop the test.
Signed-off-by Richard Purdie <[email protected]>
meta/recipes-extended/ltp/ltp/no_bdflush.patch new file +182 -0
@@ -0,0 +1,182 @@ +glibc 2.23 onwards drops support for the bdflush syscall, which doesn't actually +do anything on 2.6 kernels anyway, its handled by a kernel thread. + +Therefore drop the test. + +RP +2016/2/1 +Upstream-Status: Pending + +Index: git/runtest/syscalls +=================================================================== +--- git.orig/runtest/syscalls ++++ git/runtest/syscalls +@@ -31,8 +31,6 @@ asyncio02 asyncio02 + bind01 bind01 + bind02 bind02 + +-bdflush01 bdflush01 +- + brk01 brk01 + + capget01 capget01 +Index: git/testcases/kernel/syscalls/bdflush/Makefile +=================================================================== +--- git.orig/testcases/kernel/syscalls/bdflush/Makefile ++++ /dev/null +@@ -1,23 +0,0 @@ +-# +-# Copyright (c) International Business Machines Corp., 2009 +-# +-# This program is free software; you can redistribute it and/or modify +-# it under the terms of the GNU General Public License as published by +-# the Free Software Foundation; either version 2 of the License, or +-# (at your option) any later version. +-# +-# This program is distributed in the hope that it will be useful, +-# but WITHOUT ANY WARRANTY; without even the implied warranty of +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See +-# the GNU General Public License for more details. +-# +-# You should have received a copy of the GNU General Public License +-# along with this program; if not, write to the Free Software +-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +-# +- +-top_srcdir ?= ../../../.. +- +-include $(top_srcdir)/include/mk/testcases.mk +- +-include $(top_srcdir)/include/mk/generic_leaf_target.mk +Index: git/testcases/kernel/syscalls/bdflush/bdflush01.c +=================================================================== +--- git.orig/testcases/kernel/syscalls/bdflush/bdflush01.c ++++ /dev/null +@@ -1,127 +0,0 @@ +-/******************************************************************************/ +-/* Copyright (c) Crackerjack Project., 2007 */ +-/* */ +-/* This program is free software; you can redistribute it and/or modify */ +-/* it under the terms of the GNU General Public License as published by */ +-/* the Free Software Foundation; either version 2 of the License, or */ +-/* (at your option) any later version. */ +-/* */ +-/* This program is distributed in the hope that it will be useful, */ +-/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +-/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See */ +-/* the GNU General Public License for more details. */ +-/* */ +-/* You should have received a copy of the GNU General Public License */ +-/* along with this program; if not, write to the Free Software */ +-/* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +-/* */ +-/******************************************************************************/ +-/******************************************************************************/ +-/* */ +-/* File: bdflush01.c */ +-/* */ +-/* Description: bdflush() starts, flushes, or tunes the buffer-dirty-flush */ +-/* daemon. Only a privileged process (one with the CAP_SYS_ADMIN */ +-/* capability) may call bdflush(). */ +-/* */ +-/* If func is negative or 0, and no daemon has been started, */ +-/* then bdflush() enters the daemon code and never returns. */ +-/* */ +-/* If func is 1, some dirty buffers are written to disk. */ +-/* If func is 2 or more and is even (low bit is 0), then address */ +-/* is the address of a long word, and the tuning parameter */ +-/* numbered (func-2)/2 is returned to the caller in that address.*/ +-/* */ +-/* If func is 3 or more and is odd (low bit is 1), then data is */ +-/* a long word, and the kernel sets tuning parameter numbered */ +-/* (func-3)/2 to that value. */ +-/* */ +-/* The set of parameters, their values, and their legal ranges */ +-/* are defined in the kernel source file fs/buffer.c. */ +-/* */ +-/* Return Value: */ +-/* If func is negative or 0 and the daemon successfully starts, */ +-/* bdflush() never returns. Otherwise, the return value is 0 on */ +-/* success and -1 on failure, with errno set to indicate the */ +-/* error. */ +-/* */ +-/* Errors: */ +-/* EBUSY */ +-/* An attempt was made to enter the daemon code after*/ +-/* another process has already entered. */ +-/* EFAULT */ +-/* address points outside your accessible address */ +-/* space. */ +-/* EINVAL */ +-/* An attempt was made to read or write an invalid */ +-/* parameter number, or to write an invalid value to */ +-/* a parameter. */ +-/* EPERM */ +-/* Caller does not have the CAP_SYS_ADMIN capability.*/ +-/* */ +-/* Usage: <for command-line> */ +-/* bdflush01 [-c n] [-e][-i n] [-I x] [-p x] [-t] */ +-/* where, -c n : Run n copies concurrently. */ +-/* -e : Turn on errno logging. */ +-/* -i n : Execute test n times. */ +-/* -I x : Execute test for x seconds. */ +-/* -P x : Pause for x seconds between iterations. */ +-/* -t : Turn on syscall timing. */ +-/* */ +-/* Total Tests: 1 */ +-/* */ +-/* Test Name: bdflush01 */ +-/* History: Porting from Crackerjack to LTP is done by */ +-/* Manas Kumar Nayak [email protected]> */ +-/******************************************************************************/ +-#include <stdio.h> +-#include <stdlib.h> +-#include <sys/wait.h> +-#include <sys/types.h> +-#include <unistd.h> +-#include <errno.h> +-#include <sys/stat.h> +-#include <sys/kdaemon.h> +- +-#include "test.h" +-#include "linux_syscall_numbers.h" +- +-char *TCID = "bdflush01"; +-int testno; +-int TST_TOTAL = 1; +- +-void cleanup(void) +-{ +- tst_rmdir(); +-} +- +-void setup(void) +-{ +- TEST_PAUSE; +- tst_tmpdir(); +-} +- +-int main(int ac, char **av) +-{ +- long data; +- +- tst_parse_opts(ac, av, NULL, NULL); +- +- setup(); +- +- /* +- * TODO (garrcoop): add more functional testcases; there are a ton +- * missing. +- */ +- data = 0; +- tst_count = 1; +- for (testno = 0; testno < TST_TOTAL; ++testno) { +- TEST(ltp_syscall(__NR_bdflush, 3, data)); +- if (TEST_RETURN == -1) +- tst_brkm(TFAIL | TTERRNO, cleanup, "bdflush failed"); +- else +- tst_resm(TPASS, "bdflush() = %ld", TEST_RETURN); +- } +- cleanup(); +- tst_exit(); +-}
meta/recipes-extended/ltp/ltp_20150903.bb +1 -0
@@ -30,6 +30,7 @@ SRC_URI = "git://github.com/linux-test-project/ltp.git \ file://add-knob-for-tirpc.patch \ file://0001-ltp-vma03-fix-the-alginment-of-page-size.patch \ file://0001-Fix-compilation-for-gcc-5.x.patch \ + file://no_bdflush.patch \ " S = "${WORKDIR}/git"
Quoted 4 lines · Richard Purdie
glibc 2.23 onwards drops support for the bdflush syscall, which doesn't actually do anything on 2.6 kernels anyway, its handled by a kernel thread.
Therefore drop the test.
I have a patch which upgrade to latest release which fixes this issue and plus it fixes build issues for LTP for musl
the patch is here
Quoted 205 lines
Signed-off-by Richard Purdie <[email protected]>meta/recipes-extended/ltp/ltp/no_bdflush.patch new file +182
-0@@ -0,0 +1,182 @@ +glibc 2.23 onwards drops support for the bdflush syscall, which doesn't actually +do anything on 2.6 kernels anyway, its handled by a kernel thread. + +Therefore drop the test. + +RP +2016/2/1 +Upstream-Status: Pending + +Index: git/runtest/syscalls +=================================================================== +--- git.orig/runtest/syscalls ++++ git/runtest/syscalls +@@ -31,8 +31,6 @@ asyncio02 asyncio02 + bind01 bind01 + bind02 bind02 + +-bdflush01 bdflush01 +- + brk01 brk01 + + capget01 capget01 +Index: git/testcases/kernel/syscalls/bdflush/Makefile +=================================================================== +--- git.orig/testcases/kernel/syscalls/bdflush/Makefile ++++ /dev/null +@@ -1,23 +0,0 @@ +-# +-# Copyright (c) International Business Machines Corp., 2009 +-# +-# This program is free software; you can redistribute it and/or modify +-# it under the terms of the GNU General Public License as published by +-# the Free Software Foundation; either version 2 of the License, or +-# (at your option) any later version. +-# +-# This program is distributed in the hope that it will be useful, +-# but WITHOUT ANY WARRANTY; without even the implied warranty of +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See +-# the GNU General Public License for more details. +-# +-# You should have received a copy of the GNU General Public License +-# along with this program; if not, write to the Free Software +-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +-# +- +-top_srcdir ?= ../../../.. +- +-include $(top_srcdir)/include/mk/testcases.mk +- +-include $(top_srcdir)/include/mk/generic_leaf_target.mk +Index: git/testcases/kernel/syscalls/bdflush/bdflush01.c +=================================================================== +--- git.orig/testcases/kernel/syscalls/bdflush/bdflush01.c ++++ /dev/null +@@ -1,127 +0,0 @@ +-/******************************************************************************/ +-/* Copyright (c) Crackerjack Project., 2007 */ +-/* */ +-/* This program is free software; you can redistribute it and/or modify */ +-/* it under the terms of the GNU General Public License as published by */ +-/* the Free Software Foundation; either version 2 of the License, or */ +-/* (at your option) any later version. */ +-/* */ +-/* This program is distributed in the hope that it will be useful, */ +-/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +-/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See */ +-/* the GNU General Public License for more details. */ +-/* */ +-/* You should have received a copy of the GNU General Public License */ +-/* along with this program; if not, write to the Free Software */ +-/* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +-/* */ +-/******************************************************************************/ +-/******************************************************************************/ +-/* */ +-/* File: bdflush01.c */ +-/* */ +-/* Description: bdflush() starts, flushes, or tunes the buffer-dirty-flush */ +-/* daemon. Only a privileged process (one with the CAP_SYS_ADMIN */ +-/* capability) may call bdflush(). */ +-/* */ +-/* If func is negative or 0, and no daemon has been started, */ +-/* then bdflush() enters the daemon code and never returns. */ +-/* */ +-/* If func is 1, some dirty buffers are written to disk. */ +-/* If func is 2 or more and is even (low bit is 0), then address */ +-/* is the address of a long word, and the tuning parameter */ +-/* numbered (func-2)/2 is returned to the caller in that address.*/ +-/* */ +-/* If func is 3 or more and is odd (low bit is 1), then data is */ +-/* a long word, and the kernel sets tuning parameter numbered */ +-/* (func-3)/2 to that value. */ +-/* */ +-/* The set of parameters, their values, and their legal ranges */ +-/* are defined in the kernel source file fs/buffer.c. */ +-/* */ +-/* Return Value: */ +-/* If func is negative or 0 and the daemon successfully starts, */ +-/* bdflush() never returns. Otherwise, the return value is 0 on */ +-/* success and -1 on failure, with errno set to indicate the */ +-/* error. */ +-/* */ +-/* Errors: */ +-/* EBUSY */ +-/* An attempt was made to enter the daemon code after*/ +-/* another process has already entered. */ +-/* EFAULT */ +-/* address points outside your accessible address */ +-/* space. */ +-/* EINVAL */ +-/* An attempt was made to read or write an invalid */ +-/* parameter number, or to write an invalid value to */ +-/* a parameter. */ +-/* EPERM */ +-/* Caller does not have the CAP_SYS_ADMIN capability.*/ +-/* */ +-/* Usage: <for command-line> */ +-/* bdflush01 [-c n] [-e][-i n] [-I x] [-p x] [-t] */ +-/* where, -c n : Run n copies concurrently. */ +-/* -e : Turn on errno logging. */ +-/* -i n : Execute test n times. */ +-/* -I x : Execute test for x seconds. */ +-/* -P x : Pause for x seconds between iterations. */ +-/* -t : Turn on syscall timing. */ +-/* */ +-/* Total Tests: 1 */ +-/* */ +-/* Test Name: bdflush01 */ +-/* History: Porting from Crackerjack to LTP is done by */ +-/* Manas Kumar Nayak [email protected]> */ +-/******************************************************************************/ +-#include <stdio.h> +-#include <stdlib.h> +-#include <sys/wait.h> +-#include <sys/types.h> +-#include <unistd.h> +-#include <errno.h> +-#include <sys/stat.h> +-#include <sys/kdaemon.h> +- +-#include "test.h" +-#include "linux_syscall_numbers.h" +- +-char *TCID = "bdflush01"; +-int testno; +-int TST_TOTAL = 1; +- +-void cleanup(void) +-{ +- tst_rmdir(); +-} +- +-void setup(void) +-{ +- TEST_PAUSE; +- tst_tmpdir(); +-} +- +-int main(int ac, char **av) +-{ +- long data; +- +- tst_parse_opts(ac, av, NULL, NULL); +- +- setup(); +- +- /* +- * TODO (garrcoop): add more functional testcases; there are a ton +- * missing. +- */ +- data = 0; +- tst_count = 1; +- for (testno = 0; testno < TST_TOTAL; ++testno) { +- TEST(ltp_syscall(__NR_bdflush, 3, data)); +- if (TEST_RETURN == -1) +- tst_brkm(TFAIL | TTERRNO, cleanup, "bdflush failed"); +- else +- tst_resm(TPASS, "bdflush() = %ld", TEST_RETURN); +- } +- cleanup(); +- tst_exit(); +-}meta/recipes-extended/ltp/ltp_20150903.bb +1
-0@@ -30,6 +30,7 @@ SRC_URI = "git://github.com/linux-test-project/ltp.git \ file://add-knob-for-tirpc.patch \ file://0001-ltp-vma03-fix-the-alginment-of-page-size.patch \ file://0001-Fix-compilation-for-gcc-5.x.patch \ + file://no_bdflush.patch \ " S = "${WORKDIR}/git"