[LTP] [PATCH 1/1] lapi: Add wordsize.h and use it

Cyril Hrubis chrubis@suse.cz
Thu Mar 21 17:49:57 CET 2019


Hi!
> not sure if it's a good approach, Cyril suggested to implement it in
> include/lapi/abisize.h, so maybe my changes should be in abisize.h.

Maybe we should use __LP64__ instead.

But I guess that the safest option would be defining new constants
somewhere in lapi/abisize.h that could be then used in tests.

Something as:

#ifdef __LP64__
# define TST_ABI64
#else
# define TST_ABI32
#endif

> 
> PS: I found and fix this error independently and use different approach,
> but first it was reported by Dengke Du in PR #177 [2] and
> used in openembedded-core [3].
> [1] https://github.com/linux-test-project/ltp/pull/177#discussion_r125466352
> [2] https://github.com/linux-test-project/ltp/pull/177/commits/fd65412438526a28813fae403b6d3fb6ec605bde
> [3] http://cgit.openembedded.org/openembedded-core/tree/meta/recipes-extended/ltp/ltp/0009-fix-redefinition-of-struct-msgbuf-error-building-wit.patch?h=sumo
> ---
>  configure.ac                                    |  1 +
>  include/lapi/abisize.h                          |  2 ++
>  include/lapi/sync_file_range.h                  |  1 +
>  include/lapi/wordsize.h                         | 17 +++++++++++++++++
>  testcases/kernel/io/disktest/main.h             |  1 +
>  .../kernel/mem/hugetlb/hugemmap/hugemmap02.c    |  1 +
>  .../kernel/mem/hugetlb/hugemmap/hugemmap04.c    |  1 +
>  .../kernel/mem/hugetlb/hugeshmat/hugeshmat02.c  |  1 +
>  testcases/kernel/mem/mem/mem01.c                |  1 +
>  testcases/kernel/mem/mtest01/mtest01.c          |  1 +
>  testcases/kernel/mem/oom/oom01.c                |  1 +
>  testcases/kernel/mem/oom/oom02.c                |  1 +
>  testcases/kernel/mem/oom/oom03.c                |  1 +
>  testcases/kernel/mem/oom/oom04.c                |  1 +
>  testcases/kernel/mem/oom/oom05.c                |  1 +
>  testcases/kernel/mem/swapping/swapping01.c      |  1 +
>  testcases/kernel/mem/tunable/min_free_kbytes.c  |  1 +
>  .../kernel/mem/tunable/overcommit_memory.c      |  1 +
>  testcases/kernel/mem/vma/vma03.c                |  1 +
>  .../kernel/syscalls/fadvise/posix_fadvise03.c   |  1 +
>  .../kernel/syscalls/fallocate/fallocate02.c     |  1 +
>  testcases/kernel/syscalls/fcntl/fcntl_common.h  |  1 +
>  testcases/kernel/syscalls/fork/fork14.c         |  1 +
>  testcases/kernel/syscalls/ipc/msgrcv/msgrcv08.c |  1 +
>  testcases/kernel/syscalls/mmap/mmap15.c         |  1 +
>  testcases/kernel/syscalls/profil/profil01.c     |  1 +
>  testcases/kernel/syscalls/sbrk/sbrk03.c         |  1 +
>  testcases/kernel/syscalls/sendfile/sendfile09.c |  1 +
>  28 files changed, 45 insertions(+)
>  create mode 100644 include/lapi/wordsize.h
> 
> diff --git a/configure.ac b/configure.ac
> index e73f7d92e..08128e13d 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -33,6 +33,7 @@ AC_PROG_YACC
>  AC_PREFIX_DEFAULT(/opt/ltp)
>  
>  AC_CHECK_HEADERS([ \
> +    bits/wordsize.h \
>      ifaddrs.h \
>      keyutils.h \
>      linux/can.h \
> diff --git a/include/lapi/abisize.h b/include/lapi/abisize.h
> index 897bdfdb6..ae28021d1 100644
> --- a/include/lapi/abisize.h
> +++ b/include/lapi/abisize.h
> @@ -20,6 +20,8 @@
>  #ifndef ABISIZE_H__
>  #define ABISIZE_H__
>  
> +#include "lapi/wordsize.h"
> +
>  /*
>   * Determines if we have to split up 64 bit arguments or not
>   *
> diff --git a/include/lapi/sync_file_range.h b/include/lapi/sync_file_range.h
> index e2d35fcfd..affbb3974 100644
> --- a/include/lapi/sync_file_range.h
> +++ b/include/lapi/sync_file_range.h
> @@ -9,6 +9,7 @@
>  #include <sys/types.h>
>  #include "config.h"
>  #include "lapi/syscalls.h"
> +#include "lapi/wordsize.h"
>  
>  #if !defined(HAVE_SYNC_FILE_RANGE)
>  
> diff --git a/include/lapi/wordsize.h b/include/lapi/wordsize.h
> new file mode 100644
> index 000000000..a3e1ba36d
> --- /dev/null
> +++ b/include/lapi/wordsize.h
> @@ -0,0 +1,17 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later
> +/*
> + * Copyright (c) 2019 Petr Vorel <petr.vorel@gmail.com>
> + */
> +
> +#ifndef WORDSIZE_H__
> +#define WORDSIZE_H__
> +
> +#ifdef HAVE_BITS_WORDSIZE_H
> +# include <bits/wordsize.h>
> +#endif
> +
> +#ifndef __WORDSIZE
> +# include <sys/reg.h>
> +#endif
> +
> +#endif /* WORDSIZE_H__ */
> diff --git a/testcases/kernel/io/disktest/main.h b/testcases/kernel/io/disktest/main.h
> index 41fcd7315..9b619aeb7 100644
> --- a/testcases/kernel/io/disktest/main.h
> +++ b/testcases/kernel/io/disktest/main.h
> @@ -49,6 +49,7 @@
>  #include <time.h>
>  #include <errno.h>
>  #include "defs.h"
> +#include "lapi/wordsize.h"
>  
>  #define VER_STR "v1.4.2"
>  #define BLKGETSIZE _IO(0x12,96)		/* IOCTL for getting the device size */
> diff --git a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap02.c b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap02.c
> index 0be753e0d..6c3defc6a 100644
> --- a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap02.c
> +++ b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap02.c
> @@ -39,6 +39,7 @@
>  #include <sys/mount.h>
>  #include <limits.h>
>  #include <sys/param.h>
> +#include "lapi/wordsize.h"
>  #include "hugetlb.h"
>  
>  #define LOW_ADDR       0x80000000
> diff --git a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap04.c b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap04.c
> index 674d367a4..074efc243 100644
> --- a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap04.c
> +++ b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap04.c
> @@ -38,6 +38,7 @@
>  #include <stdio.h>
>  #include <limits.h>
>  #include <sys/param.h>
> +#include "lapi/wordsize.h"
>  #include "hugetlb.h"
>  
>  static struct tst_option options[] = {
> diff --git a/testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat02.c b/testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat02.c
> index 1c2c978c8..d75e2ea59 100644
> --- a/testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat02.c
> +++ b/testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat02.c
> @@ -36,6 +36,7 @@
>  
>  #include <pwd.h>
>  #include <limits.h>
> +#include "lapi/wordsize.h"
>  #include "hugetlb.h"
>  
>  #if __WORDSIZE == 64
> diff --git a/testcases/kernel/mem/mem/mem01.c b/testcases/kernel/mem/mem/mem01.c
> index f7642ab24..46d2feed0 100644
> --- a/testcases/kernel/mem/mem/mem01.c
> +++ b/testcases/kernel/mem/mem/mem01.c
> @@ -39,6 +39,7 @@
>  #include <time.h>
>  #include <limits.h>
>  
> +#include "lapi/wordsize.h"
>  #include "test.h"
>  
>  /* in KB */
> diff --git a/testcases/kernel/mem/mtest01/mtest01.c b/testcases/kernel/mem/mtest01/mtest01.c
> index df038f50d..d08b9b536 100644
> --- a/testcases/kernel/mem/mtest01/mtest01.c
> +++ b/testcases/kernel/mem/mtest01/mtest01.c
> @@ -28,6 +28,7 @@
>  #include <stdlib.h>
>  #include <unistd.h>
>  
> +#include "lapi/wordsize.h"
>  #include "tst_test.h"
>  
>  #define FIVE_HUNDRED_MB         (500ULL*1024*1024)
> diff --git a/testcases/kernel/mem/oom/oom01.c b/testcases/kernel/mem/oom/oom01.c
> index beb232d45..3ca537144 100644
> --- a/testcases/kernel/mem/oom/oom01.c
> +++ b/testcases/kernel/mem/oom/oom01.c
> @@ -27,6 +27,7 @@
>  #include <stdio.h>
>  #include <stdlib.h>
>  #include <unistd.h>
> +#include "lapi/wordsize.h"
>  #include "mem.h"
>  
>  static void verify_oom(void)
> diff --git a/testcases/kernel/mem/oom/oom02.c b/testcases/kernel/mem/oom/oom02.c
> index 866540def..c893b98d0 100644
> --- a/testcases/kernel/mem/oom/oom02.c
> +++ b/testcases/kernel/mem/oom/oom02.c
> @@ -30,6 +30,7 @@
>  #include <numa.h>
>  #endif
>  
> +#include "lapi/wordsize.h"
>  #include "numa_helper.h"
>  #include "mem.h"
>  
> diff --git a/testcases/kernel/mem/oom/oom03.c b/testcases/kernel/mem/oom/oom03.c
> index b283b5275..978a414af 100644
> --- a/testcases/kernel/mem/oom/oom03.c
> +++ b/testcases/kernel/mem/oom/oom03.c
> @@ -30,6 +30,7 @@
>  #include <numa.h>
>  #endif
>  
> +#include "lapi/wordsize.h"
>  #include "numa_helper.h"
>  #include "mem.h"
>  
> diff --git a/testcases/kernel/mem/oom/oom04.c b/testcases/kernel/mem/oom/oom04.c
> index 98b31c74a..c17f4e3da 100644
> --- a/testcases/kernel/mem/oom/oom04.c
> +++ b/testcases/kernel/mem/oom/oom04.c
> @@ -30,6 +30,7 @@
>  #include <numa.h>
>  #endif
>  
> +#include "lapi/wordsize.h"
>  #include "numa_helper.h"
>  #include "mem.h"
>  
> diff --git a/testcases/kernel/mem/oom/oom05.c b/testcases/kernel/mem/oom/oom05.c
> index c5395b0bb..7a77b590b 100644
> --- a/testcases/kernel/mem/oom/oom05.c
> +++ b/testcases/kernel/mem/oom/oom05.c
> @@ -30,6 +30,7 @@
>  #include <numa.h>
>  #endif
>  
> +#include "lapi/wordsize.h"
>  #include "numa_helper.h"
>  #include "mem.h"
>  
> diff --git a/testcases/kernel/mem/swapping/swapping01.c b/testcases/kernel/mem/swapping/swapping01.c
> index 6ac802b25..07109c80a 100644
> --- a/testcases/kernel/mem/swapping/swapping01.c
> +++ b/testcases/kernel/mem/swapping/swapping01.c
> @@ -44,6 +44,7 @@
>  #include <stdlib.h>
>  #include <string.h>
>  #include <unistd.h>
> +#include "lapi/wordsize.h"
>  #include "mem.h"
>  
>  /* allow swapping 1 * phy_mem in maximum */
> diff --git a/testcases/kernel/mem/tunable/min_free_kbytes.c b/testcases/kernel/mem/tunable/min_free_kbytes.c
> index f114dc493..aae3f00cc 100644
> --- a/testcases/kernel/mem/tunable/min_free_kbytes.c
> +++ b/testcases/kernel/mem/tunable/min_free_kbytes.c
> @@ -34,6 +34,7 @@
>  #include <signal.h>
>  #include <stdio.h>
>  #include <stdlib.h>
> +#include "lapi/wordsize.h"
>  #include "mem.h"
>  
>  #define MAP_SIZE (1UL<<20)
> diff --git a/testcases/kernel/mem/tunable/overcommit_memory.c b/testcases/kernel/mem/tunable/overcommit_memory.c
> index 07f824328..0712ff760 100644
> --- a/testcases/kernel/mem/tunable/overcommit_memory.c
> +++ b/testcases/kernel/mem/tunable/overcommit_memory.c
> @@ -69,6 +69,7 @@
>  #include <stdio.h>
>  #include <stdlib.h>
>  #include <limits.h>
> +#include "lapi/wordsize.h"
>  #include "mem.h"
>  
>  #define DEFAULT_OVER_RATIO	50L
> diff --git a/testcases/kernel/mem/vma/vma03.c b/testcases/kernel/mem/vma/vma03.c
> index 4b34ab0a0..42e233412 100644
> --- a/testcases/kernel/mem/vma/vma03.c
> +++ b/testcases/kernel/mem/vma/vma03.c
> @@ -51,6 +51,7 @@
>  #include "test.h"
>  #include "safe_macros.h"
>  #include "tst_kernel.h"
> +#include "lapi/wordsize.h"
>  
>  char *TCID = "vma03";
>  int TST_TOTAL = 1;
> diff --git a/testcases/kernel/syscalls/fadvise/posix_fadvise03.c b/testcases/kernel/syscalls/fadvise/posix_fadvise03.c
> index 0127a1b04..ad65870d1 100644
> --- a/testcases/kernel/syscalls/fadvise/posix_fadvise03.c
> +++ b/testcases/kernel/syscalls/fadvise/posix_fadvise03.c
> @@ -30,6 +30,7 @@
>  
>  #include "tst_test.h"
>  #include "lapi/syscalls.h"
> +#include "lapi/wordsize.h"
>  
>  char fname[] = "/bin/cat";	/* test executable to open */
>  int fd = -1;			/* initialized in open */
> diff --git a/testcases/kernel/syscalls/fallocate/fallocate02.c b/testcases/kernel/syscalls/fallocate/fallocate02.c
> index 4840eaf28..df5ae217e 100644
> --- a/testcases/kernel/syscalls/fallocate/fallocate02.c
> +++ b/testcases/kernel/syscalls/fallocate/fallocate02.c
> @@ -41,6 +41,7 @@
>  #include "test.h"
>  #include "safe_macros.h"
>  #include "lapi/fallocate.h"
> +#include "lapi/wordsize.h"
>  
>  #define BLOCKS_WRITTEN		12
>  #ifdef TEST_DEFAULT
> diff --git a/testcases/kernel/syscalls/fcntl/fcntl_common.h b/testcases/kernel/syscalls/fcntl/fcntl_common.h
> index 07229a0f8..7738a5258 100644
> --- a/testcases/kernel/syscalls/fcntl/fcntl_common.h
> +++ b/testcases/kernel/syscalls/fcntl/fcntl_common.h
> @@ -1,4 +1,5 @@
>  #include "lapi/syscalls.h"
> +#include "lapi/wordsize.h"
>  
>  /*
>   * glibc commit:
> diff --git a/testcases/kernel/syscalls/fork/fork14.c b/testcases/kernel/syscalls/fork/fork14.c
> index 6ea92e0c2..c660f6a4e 100644
> --- a/testcases/kernel/syscalls/fork/fork14.c
> +++ b/testcases/kernel/syscalls/fork/fork14.c
> @@ -35,6 +35,7 @@
>  #include <unistd.h>
>  #include "test.h"
>  #include "safe_macros.h"
> +#include "lapi/wordsize.h"
>  
>  char *TCID = "fork14";
>  int TST_TOTAL = 1;
> diff --git a/testcases/kernel/syscalls/ipc/msgrcv/msgrcv08.c b/testcases/kernel/syscalls/ipc/msgrcv/msgrcv08.c
> index a757c0d18..2e500ce23 100644
> --- a/testcases/kernel/syscalls/ipc/msgrcv/msgrcv08.c
> +++ b/testcases/kernel/syscalls/ipc/msgrcv/msgrcv08.c
> @@ -42,6 +42,7 @@
>  #include <sys/ipc.h>
>  #include <sys/msg.h>
>  #include "test.h"
> +#include "lapi/wordsize.h"
>  
>  const char *TCID = "msgrcv08";
>  const int TST_TOTAL = 1;
> diff --git a/testcases/kernel/syscalls/mmap/mmap15.c b/testcases/kernel/syscalls/mmap/mmap15.c
> index c8a77873a..db5e30bd1 100644
> --- a/testcases/kernel/syscalls/mmap/mmap15.c
> +++ b/testcases/kernel/syscalls/mmap/mmap15.c
> @@ -36,6 +36,7 @@
>  #include <unistd.h>
>  #include "test.h"
>  #include "safe_macros.h"
> +#include "lapi/wordsize.h"
>  
>  char *TCID = "mmap15";
>  int TST_TOTAL = 1;
> diff --git a/testcases/kernel/syscalls/profil/profil01.c b/testcases/kernel/syscalls/profil/profil01.c
> index f1164021b..1958e1fa4 100644
> --- a/testcases/kernel/syscalls/profil/profil01.c
> +++ b/testcases/kernel/syscalls/profil/profil01.c
> @@ -27,6 +27,7 @@
>  #include <sys/types.h>
>  #include "test.h"
>  #include "safe_macros.h"
> +#include "lapi/wordsize.h"
>  #include "config.h"
>  
>  char *TCID = "profil01";
> diff --git a/testcases/kernel/syscalls/sbrk/sbrk03.c b/testcases/kernel/syscalls/sbrk/sbrk03.c
> index 46fb2d111..5196c3a57 100644
> --- a/testcases/kernel/syscalls/sbrk/sbrk03.c
> +++ b/testcases/kernel/syscalls/sbrk/sbrk03.c
> @@ -46,6 +46,7 @@
>  
>  #include <stdio.h>
>  #include <unistd.h>
> +#include "lapi/wordsize.h"
>  #include "tst_test.h"
>  
>  static void sbrk_test(void)
> diff --git a/testcases/kernel/syscalls/sendfile/sendfile09.c b/testcases/kernel/syscalls/sendfile/sendfile09.c
> index 0a9d2553e..4be3065d0 100644
> --- a/testcases/kernel/syscalls/sendfile/sendfile09.c
> +++ b/testcases/kernel/syscalls/sendfile/sendfile09.c
> @@ -51,6 +51,7 @@
>  #include <inttypes.h>
>  #include "test.h"
>  #include "safe_macros.h"
> +#include "lapi/wordsize.h"
>  
>  #ifndef OFF_T
>  #define OFF_T off_t
> -- 
> 2.21.0
> 

-- 
Cyril Hrubis
chrubis@suse.cz


More information about the ltp mailing list