On Thu, 2008-11-20 at 18:13 +0900, Masatake YAMATO wrote:
> - Type definitions defined in header files included from sys/signalfd.h
> and type definitions defined in sys/signalfd.h are conflicted.
>
> - s/SIGNALFD_REFIX/SIGNALFD_PREFIX/
> - if HAVE_SIGNALFD is not defined, use stub.
> - if HAVE_LINUX_TYPES_H is defined, use our own implemention to call signalfd
> syscall.
>
>
> Signed-of-by: Masatake YAMATO<[EMAIL PROTECTED]>
Thanks. This fixes the issue well. Tested on i386, x86_64, ppc64 & ia64.
>
>
> diff --git a/testcases/kernel/syscalls/modify_ldt/run-modify_ldt01.sh
> b/testcases/kernel/syscalls/modify_ldt/run-modify_ldt01.sh
> index 083e9ab..112e258 100644
> --- a/m4/ltp-signalfd.m4
> +++ b/m4/ltp-signalfd.m4
> @@ -58,12 +58,13 @@ dnl
> dnl
> AC_DEFUN([_LTP_CHECK_SYSCALL_SIGNALFD_HEADER],
> [dnl
> +AC_CHECK_HEADERS(sys/signalfd.h)
> AC_CHECK_HEADERS_ONCE([linux/types.h])
> -AC_CHECK_HEADERS(sys/signalfd.h linux/signalfd.h signalfd.h,[dnl
> +AC_CHECK_HEADERS(linux/signalfd.h signalfd.h,[dnl
> LTP_SYSCALL_SIGNALFD_HEADER=yes],[],[dnl
> #ifdef HAVE_LINUX_TYPES_H
> #include <linux/types.h>
> -#endif)
> +#endif
This has already been fixed by the earlier patch.
Regards--
Subrata
> ]dnl
> )dnl
> ]dnl
> @@ -77,12 +78,12 @@ AC_DEFUN([_LTP_CHECK_SYSCALL_SIGNALFD_FIELD_PREFIX],
> [dnl
> AC_CHECK_MEMBERS([struct signalfd_siginfo.ssi_signo, struct
> signalfd_siginfo.signo],[dnl
> LTP_SYSCALL_SIGNALFD_FIELD_PREFIX=given],[],[dnl
> -#ifdef HAVE_LINUX_TYPES_H
> -#include <linux/types.h>
> -#endif
> #if defined HAVE_SYS_SIGNALFD_H
> #include <sys/signalfd.h>
> #elif defined HAVE_LINUX_SIGNALFD_H
> +#ifdef HAVE_LINUX_TYPES_H
> +#include <linux/types.h>
> +#endif
> #include <linux/signalfd.h>
> #elif defined HAVE_SIGNALFD_H
> #include <signalfd.h>
> diff --git a/testcases/kernel/syscalls/signalfd/signalfd01.c
> b/testcases/kernel/syscalls/signalfd/signalfd01.c
> index 204794e..5558fe8 100644
> --- a/testcases/kernel/syscalls/signalfd/signalfd01.c
> +++ b/testcases/kernel/syscalls/signalfd/signalfd01.c
> @@ -42,7 +42,6 @@
>
> #include <errno.h>
> #include <signal.h>
> -#include <sys/types.h>
> #include <unistd.h>
> #include <fcntl.h>
>
> @@ -50,44 +49,50 @@ TCID_DEFINE(signalfd01);
> int TST_TOTAL = 1;
> extern int Tst_count;
>
> -#ifdef HAVE_LINUX_TYPES_H
> -#include <linux/types.h>
> -#endif
> +
> +#ifndef HAVE_SIGNALFD
> +#define USE_STUB
> +#endif
>
> #if defined HAVE_SYS_SIGNALFD_H
> #include <sys/signalfd.h>
> #elif defined HAVE_LINUX_SIGNALFD_H
> +# if defined HAVE_LINUX_TYPES_H
> +# include <linux/types.h>
> +# endif
> #include <linux/signalfd.h>
> +#define USE_OWNIMPL
> #elif defined HAVE_SIGNALFD_H
> #include <signalfd.h>
> #else
> #define USE_STUB
> #endif
>
> -#if defined HAVE_SIGNALFD_SIGINFO_SSI_SIGNO
> +#if defined HAVE_STRUCT_SIGNALFD_SIGINFO_SSI_SIGNO
> # define SIGNALFD_PREFIX(FIELD) ssi_##FIELD
> -#elif defined HAVE_SIGNALFD_SIGINFO_SIGNO
> +#elif defined HAVE_STRUCT_SIGNALFD_SIGINFO_SIGNO
> # define SIGNALFD_PREFIX(FIELD) FIELD
> #else
> -# define USE_STUB
> +# define USE_STUB
> #endif
>
> +
> +
> #ifdef USE_STUB
> int main(int argc, char **argv)
> {
> tst_resm(TCONF, "System doesn't support execution of the test");
> return 0;
> }
> -#else
>
> -#ifndef HAVE_SIGNALFD
> +#elif USE_OWNIMPL
> #include "linux_syscall_numbers.h"
> int signalfd(int fd, const sigset_t * mask, int flags)
> {
> /* Taken from GLIBC. */
> return (syscall(__NR_signalfd, fd, mask, _NSIG / 8));
> }
> -#endif
> +#else
>
> void cleanup(void);
> void setup(void);
> @@ -174,7 +179,7 @@ int do_test1(int ntst, int sig)
> goto out;
> } else {
> tst_resm(TFAIL, "got unexpected signal: signal=%d : %s",
> - fdsi.SIGNALFD_REFIX(signo),
> + fdsi.SIGNALFD_PREFIX(signo),
> strsignal(fdsi.SIGNALFD_PREFIX(signo)));
> sfd_for_next = -1;
> close(sfd);
> [EMAIL PROTECTED] ltp-git]$
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Ltp-list mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ltp-list
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list