Re: [PATCH] selftests: filesystems: add missing stddef header

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 4/19/24 18:45, Muhammad Usama Anjum wrote:
> On 4/17/24 9:16 PM, Amer Al Shanawany wrote:
>> fix compiler warning and errors when compiling statmount test.
> The error description or the compiler with version is required to reproduce
> the error easily. I'm unable to reproduce the error by gcc 12 and clang 17.
I'm using gcc 12.3 (Ubuntu 12.3.0-1ubuntu1~22.04), for the error please see the attached log file (statmount.txt)
I was wondering if it's worth adding this include to kselftest.h
>>
>> Signed-off-by: Amer Al Shanawany <amer.shanawany@xxxxxxxxx>
>> ---
>>  tools/testing/selftests/filesystems/statmount/statmount_test.c | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/tools/testing/selftests/filesystems/statmount/statmount_test.c b/tools/testing/selftests/filesystems/statmount/statmount_test.c
>> index 3eafd7da58e2..e6d7c4f1c85b 100644
>> --- a/tools/testing/selftests/filesystems/statmount/statmount_test.c
>> +++ b/tools/testing/selftests/filesystems/statmount/statmount_test.c
>> @@ -3,6 +3,7 @@
>>  #define _GNU_SOURCE
>>  
>>  #include <assert.h>
>> +#include <stddef.h>
>>  #include <stdint.h>
>>  #include <sched.h>
>>  #include <fcntl.h>
> 

Thanks

Amer
gcc (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

make --no-print-directory -C /home/amer/Desktop/linux-next \
-f /home/amer/Desktop/linux-next/Makefile kselftest
set -e; mkdir -p include/generated/uapi/linux/; trap "rm -f include/generated/uapi/linux/.tmp_version.h" EXIT; { 	if [ 0 -gt 255 ]; then echo \#define LINUX_VERSION_CODE 395775; else echo \#define LINUX_VERSION_CODE 395520; fi; echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + ((c) > 255 ? 255 : (c)))'; echo \#define LINUX_VERSION_MAJOR 6; echo \#define LINUX_VERSION_PATCHLEVEL 9; echo \#define LINUX_VERSION_SUBLEVEL 0; } > include/generated/uapi/linux/.tmp_version.h; if [ ! -r include/generated/uapi/linux/version.h ] || ! cmp -s include/generated/uapi/linux/version.h include/generated/uapi/linux/.tmp_version.h; then : '  UPD     include/generated/uapi/linux/version.h'; mv -f include/generated/uapi/linux/.tmp_version.h include/generated/uapi/linux/version.h; fi
make -f ./scripts/Makefile.build obj=scripts/basic
make -f ./scripts/Makefile.build obj=scripts scripts/unifdef
make -f ./scripts/Makefile.asm-generic obj=arch/x86/include/generated/uapi/asm \
generic=include/uapi/asm-generic
make -f ./scripts/Makefile.build obj=arch/x86/entry/syscalls all
make -f ./scripts/Makefile.build obj=arch/x86/tools relocs
make -f ./scripts/Makefile.headersinst obj=include/uapi
make -f ./scripts/Makefile.headersinst obj=arch/x86/include/uapi
make -C ./tools/testing/selftests run_tests
make[3]: Entering directory '/home/amer/Desktop/linux-next/tools/testing/selftests/filesystems/statmount'
gcc -Wall -O2 -g -isystem /home/amer/Desktop/linux-next/usr/include     statmount_test.c  -o /home/amer/Desktop/linux-next/tools/testing/selftests/filesystems/statmount/statmount_test
statmount_test.c: In function ‘main’:
statmount_test.c:572:24: warning: implicit declaration of function ‘offsetof’ [-Wimplicit-function-declaration]
  572 | #define str_off(memb) (offsetof(struct statmount, memb) / sizeof(uint32_t))
      |                        ^~~~~~~~
statmount_test.c:598:51: note: in expansion of macro ‘str_off’
  598 |         test_statmount_string(STATMOUNT_MNT_ROOT, str_off(mnt_root), "mount root");
      |                                                   ^~~~~~~
statmount_test.c:18:1: note: ‘offsetof’ is defined in header ‘<stddef.h>’; did you forget to ‘#include <stddef.h>’?
   17 | #include "../../kselftest.h"
  +++ |+#include <stddef.h>
   18 | 
statmount_test.c:572:33: error: expected expression before ‘struct’
  572 | #define str_off(memb) (offsetof(struct statmount, memb) / sizeof(uint32_t))
      |                                 ^~~~~~
statmount_test.c:598:51: note: in expansion of macro ‘str_off’
  598 |         test_statmount_string(STATMOUNT_MNT_ROOT, str_off(mnt_root), "mount root");
      |                                                   ^~~~~~~
statmount_test.c:572:33: error: expected expression before ‘struct’
  572 | #define str_off(memb) (offsetof(struct statmount, memb) / sizeof(uint32_t))
      |                                 ^~~~~~
statmount_test.c:599:52: note: in expansion of macro ‘str_off’
  599 |         test_statmount_string(STATMOUNT_MNT_POINT, str_off(mnt_point), "mount point");
      |                                                    ^~~~~~~
statmount_test.c:572:33: error: expected expression before ‘struct’
  572 | #define str_off(memb) (offsetof(struct statmount, memb) / sizeof(uint32_t))
      |                                 ^~~~~~
statmount_test.c:600:50: note: in expansion of macro ‘str_off’
  600 |         test_statmount_string(STATMOUNT_FS_TYPE, str_off(fs_type), "fs type");
      |                                                  ^~~~~~~
statmount_test.c:572:33: error: expected expression before ‘struct’
  572 | #define str_off(memb) (offsetof(struct statmount, memb) / sizeof(uint32_t))
      |                                 ^~~~~~
statmount_test.c:601:41: note: in expansion of macro ‘str_off’
  601 |         test_statmount_string(all_mask, str_off(mnt_root), "mount root & all");
      |                                         ^~~~~~~
statmount_test.c:572:33: error: expected expression before ‘struct’
  572 | #define str_off(memb) (offsetof(struct statmount, memb) / sizeof(uint32_t))
      |                                 ^~~~~~
statmount_test.c:602:41: note: in expansion of macro ‘str_off’
  602 |         test_statmount_string(all_mask, str_off(mnt_point), "mount point & all");
      |                                         ^~~~~~~
statmount_test.c:572:33: error: expected expression before ‘struct’
  572 | #define str_off(memb) (offsetof(struct statmount, memb) / sizeof(uint32_t))
      |                                 ^~~~~~
statmount_test.c:603:41: note: in expansion of macro ‘str_off’
  603 |         test_statmount_string(all_mask, str_off(fs_type), "fs type & all");
      |                                         ^~~~~~~
statmount_test.c: In function ‘cleanup_namespace’:
statmount_test.c:127:9: warning: ignoring return value of ‘fchdir’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  127 |         fchdir(orig_root);
      |         ^~~~~~~~~~~~~~~~~
statmount_test.c:128:9: warning: ignoring return value of ‘chroot’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
  128 |         chroot(".");
      |         ^~~~~~~~~~~
make[3]: *** [../../lib.mk:203: /home/amer/Desktop/linux-next/tools/testing/selftests/filesystems/statmount/statmount_test] Error 1
make[3]: Leaving directory '/home/amer/Desktop/linux-next/tools/testing/selftests/filesystems/statmount'
make[2]: *** [Makefile:191: all] Error 2
make[1]: *** [/home/amer/Desktop/linux-next/Makefile:1370: kselftest] Error 2
make: *** [Makefile:240: __sub-make] Error 2

[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux