Hello,
kernel test robot noticed kernel-selftests.mount_setattr.make.fail due to commit (built with gcc-11):
commit: d8e45bf1aed2e5fddd8985b5bb1aaf774a97aba8 ("selftests/mount_setattr: fix redefine struct mount_attr build error")
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git master
[test failed on linux-next/master 73f2c2a7e1d2b31fdd5faa6dfa151c437a6c0a5a]
in testcase: kernel-selftests
version: kernel-selftests-i386-75776cf2-1_20221008
with following parameters:
group: group-02
test-description: The kernel contains a set of "self tests" under the tools/testing/selftests/ directory. These are intended to be small unit tests to exercise individual code paths in the kernel.
test-url: https://www.kernel.org/doc/Documentation/kselftest.txt
on test machine: 8 threads Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz (Skylake) with 16G memory
caused below changes (please refer to attached dmesg/kmsg for entire log/backtrace):
2023-03-20 06:15:43 make -C mount_setattr
make: Entering directory '/usr/src/perf_selftests-i386-debian-10.3-kselftests-d8e45bf1aed2e5fddd8985b5bb1aaf774a97aba8/tools/testing/selftests/mount_setattr'
gcc -g -isystem /usr/src/perf_selftests-i386-debian-10.3-kselftests-d8e45bf1aed2e5fddd8985b5bb1aaf774a97aba8/tools/testing/selftests/../../../usr/include -Wall -O2 -pthread mount_setattr_test.c -o /usr/src/perf_selftests-i386-debian-10.3-kselftests-d8e45bf1aed2e5fddd8985b5bb1aaf774a97aba8/tools/testing/selftests/mount_setattr/mount_setattr_test
mount_setattr_test.c:137:16: warning: ‘struct mount_attr’ declared inside parameter list will not be visible outside of this definition or declaration
137 | struct mount_attr *attr, size_t size)
| ^~~~~~~~~~
mount_setattr_test.c: In function ‘mount_setattr_thread’:
mount_setattr_test.c:343:9: error: variable ‘attr’ has initializer but incomplete type
343 | struct mount_attr attr = {
| ^~~~~~~~~~
mount_setattr_test.c:344:4: error: ‘struct mount_attr’ has no member named ‘attr_set’
344 | .attr_set = MOUNT_ATTR_RDONLY | MOUNT_ATTR_NOSUID,
| ^~~~~~~~
mount_setattr_test.c:45:27: warning: excess elements in struct initializer
45 | #define MOUNT_ATTR_RDONLY 0x00000001
| ^~~~~~~~~~
mount_setattr_test.c:344:15: note: in expansion of macro ‘MOUNT_ATTR_RDONLY’
344 | .attr_set = MOUNT_ATTR_RDONLY | MOUNT_ATTR_NOSUID,
| ^~~~~~~~~~~~~~~~~
mount_setattr_test.c:45:27: note: (near initialization for ‘attr’)
45 | #define MOUNT_ATTR_RDONLY 0x00000001
| ^~~~~~~~~~
mount_setattr_test.c:344:15: note: in expansion of macro ‘MOUNT_ATTR_RDONLY’
344 | .attr_set = MOUNT_ATTR_RDONLY | MOUNT_ATTR_NOSUID,
| ^~~~~~~~~~~~~~~~~
mount_setattr_test.c:345:4: error: ‘struct mount_attr’ has no member named ‘attr_clr’
345 | .attr_clr = 0,
| ^~~~~~~~
mount_setattr_test.c:345:15: warning: excess elements in struct initializer
345 | .attr_clr = 0,
| ^
mount_setattr_test.c:345:15: note: (near initialization for ‘attr’)
mount_setattr_test.c:346:4: error: ‘struct mount_attr’ has no member named ‘propagation’
346 | .propagation = MS_SHARED,
| ^~~~~~~~~~~
mount_setattr_test.c:346:18: warning: excess elements in struct initializer
346 | .propagation = MS_SHARED,
| ^~~~~~~~~
mount_setattr_test.c:346:18: note: (near initialization for ‘attr’)
mount_setattr_test.c:343:20: error: storage size of ‘attr’ isn’t known
343 | struct mount_attr attr = {
| ^~~~
mount_setattr_test.c:343:20: warning: unused variable ‘attr’ [-Wunused-variable]
mount_setattr_test.c: In function ‘mount_setattr_invalid_attributes’:
mount_setattr_test.c:441:9: error: variable ‘invalid_attr’ has initializer but incomplete type
441 | struct mount_attr invalid_attr = {
| ^~~~~~~~~~
mount_setattr_test.c:442:4: error: ‘struct mount_attr’ has no member named ‘attr_set’
442 | .attr_set = (1U << 31),
| ^~~~~~~~
mount_setattr_test.c:442:15: warning: excess elements in struct initializer
442 | .attr_set = (1U << 31),
| ^
mount_setattr_test.c:442:15: note: (near initialization for ‘invalid_attr’)
mount_setattr_test.c:441:20: error: storage size of ‘invalid_attr’ isn’t known
441 | struct mount_attr invalid_attr = {
| ^~~~~~~~~~~~
mount_setattr_test.c:441:20: warning: unused variable ‘invalid_attr’ [-Wunused-variable]
mount_setattr_test.c: In function ‘mount_setattr_extensibility’:
mount_setattr_test.c:475:9: error: variable ‘invalid_attr’ has initializer but incomplete type
475 | struct mount_attr invalid_attr = {};
| ^~~~~~~~~~
mount_setattr_test.c:475:20: error: storage size of ‘invalid_attr’ isn’t known
475 | struct mount_attr invalid_attr = {};
| ^~~~~~~~~~~~
mount_setattr_test.c:477:21: error: field ‘attr1’ has incomplete type
477 | struct mount_attr attr1;
| ^~~~~
mount_setattr_test.c:478:21: error: field ‘attr2’ has incomplete type
478 | struct mount_attr attr2;
| ^~~~~
mount_setattr_test.c:479:21: error: field ‘attr3’ has incomplete type
479 | struct mount_attr attr3;
| ^~~~~
mount_setattr_test.c:475:20: warning: unused variable ‘invalid_attr’ [-Wunused-variable]
475 | struct mount_attr invalid_attr = {};
| ^~~~~~~~~~~~
mount_setattr_test.c: In function ‘mount_setattr_basic’:
mount_setattr_test.c:538:9: error: variable ‘attr’ has initializer but incomplete type
538 | struct mount_attr attr = {
| ^~~~~~~~~~
mount_setattr_test.c:539:4: error: ‘struct mount_attr’ has no member named ‘attr_set’
539 | .attr_set = MOUNT_ATTR_RDONLY | MOUNT_ATTR_NOEXEC | MOUNT_ATTR_RELATIME,
| ^~~~~~~~
mount_setattr_test.c:45:27: warning: excess elements in struct initializer
45 | #define MOUNT_ATTR_RDONLY 0x00000001
| ^~~~~~~~~~
mount_setattr_test.c:539:15: note: in expansion of macro ‘MOUNT_ATTR_RDONLY’
539 | .attr_set = MOUNT_ATTR_RDONLY | MOUNT_ATTR_NOEXEC | MOUNT_ATTR_RELATIME,
| ^~~~~~~~~~~~~~~~~
mount_setattr_test.c:45:27: note: (near initialization for ‘attr’)
45 | #define MOUNT_ATTR_RDONLY 0x00000001
| ^~~~~~~~~~
mount_setattr_test.c:539:15: note: in expansion of macro ‘MOUNT_ATTR_RDONLY’
539 | .attr_set = MOUNT_ATTR_RDONLY | MOUNT_ATTR_NOEXEC | MOUNT_ATTR_RELATIME,
| ^~~~~~~~~~~~~~~~~
mount_setattr_test.c:540:4: error: ‘struct mount_attr’ has no member named ‘attr_clr’
540 | .attr_clr = MOUNT_ATTR__ATIME,
| ^~~~~~~~
mount_setattr_test.c:61:27: warning: excess elements in struct initializer
61 | #define MOUNT_ATTR__ATIME 0x00000070
| ^~~~~~~~~~
mount_setattr_test.c:540:15: note: in expansion of macro ‘MOUNT_ATTR__ATIME’
540 | .attr_clr = MOUNT_ATTR__ATIME,
| ^~~~~~~~~~~~~~~~~
mount_setattr_test.c:61:27: note: (near initialization for ‘attr’)
61 | #define MOUNT_ATTR__ATIME 0x00000070
| ^~~~~~~~~~
mount_setattr_test.c:540:15: note: in expansion of macro ‘MOUNT_ATTR__ATIME’
540 | .attr_clr = MOUNT_ATTR__ATIME,
| ^~~~~~~~~~~~~~~~~
mount_setattr_test.c:538:20: error: storage size of ‘attr’ isn’t known
538 | struct mount_attr attr = {
| ^~~~
mount_setattr_test.c:538:20: warning: unused variable ‘attr’ [-Wunused-variable]
mount_setattr_test.c: In function ‘mount_setattr_basic_recursive’:
mount_setattr_test.c:574:9: error: variable ‘attr’ has initializer but incomplete type
574 | struct mount_attr attr = {
| ^~~~~~~~~~
mount_setattr_test.c:575:4: error: ‘struct mount_attr’ has no member named ‘attr_set’
575 | .attr_set = MOUNT_ATTR_RDONLY | MOUNT_ATTR_NOEXEC | MOUNT_ATTR_RELATIME,
| ^~~~~~~~
mount_setattr_test.c:45:27: warning: excess elements in struct initializer
45 | #define MOUNT_ATTR_RDONLY 0x00000001
| ^~~~~~~~~~
mount_setattr_test.c:575:15: note: in expansion of macro ‘MOUNT_ATTR_RDONLY’
575 | .attr_set = MOUNT_ATTR_RDONLY | MOUNT_ATTR_NOEXEC | MOUNT_ATTR_RELATIME,
| ^~~~~~~~~~~~~~~~~
mount_setattr_test.c:45:27: note: (near initialization for ‘attr’)
45 | #define MOUNT_ATTR_RDONLY 0x00000001
| ^~~~~~~~~~
mount_setattr_test.c:575:15: note: in expansion of macro ‘MOUNT_ATTR_RDONLY’
575 | .attr_set = MOUNT_ATTR_RDONLY | MOUNT_ATTR_NOEXEC | MOUNT_ATTR_RELATIME,
| ^~~~~~~~~~~~~~~~~
mount_setattr_test.c:576:4: error: ‘struct mount_attr’ has no member named ‘attr_clr’
576 | .attr_clr = MOUNT_ATTR__ATIME,
| ^~~~~~~~
mount_setattr_test.c:61:27: warning: excess elements in struct initializer
61 | #define MOUNT_ATTR__ATIME 0x00000070
| ^~~~~~~~~~
mount_setattr_test.c:576:15: note: in expansion of macro ‘MOUNT_ATTR__ATIME’
576 | .attr_clr = MOUNT_ATTR__ATIME,
| ^~~~~~~~~~~~~~~~~
mount_setattr_test.c:61:27: note: (near initialization for ‘attr’)
61 | #define MOUNT_ATTR__ATIME 0x00000070
| ^~~~~~~~~~
mount_setattr_test.c:576:15: note: in expansion of macro ‘MOUNT_ATTR__ATIME’
576 | .attr_clr = MOUNT_ATTR__ATIME,
| ^~~~~~~~~~~~~~~~~
mount_setattr_test.c:574:20: error: storage size of ‘attr’ isn’t known
574 | struct mount_attr attr = {
| ^~~~
mount_setattr_test.c:574:20: warning: unused variable ‘attr’ [-Wunused-variable]
mount_setattr_test.c: In function ‘mount_setattr_mount_has_writers’:
mount_setattr_test.c:668:9: error: variable ‘attr’ has initializer but incomplete type
668 | struct mount_attr attr = {
| ^~~~~~~~~~
mount_setattr_test.c:669:4: error: ‘struct mount_attr’ has no member named ‘attr_set’
669 | .attr_set = MOUNT_ATTR_RDONLY | MOUNT_ATTR_NOEXEC | MOUNT_ATTR_RELATIME,
| ^~~~~~~~
mount_setattr_test.c:45:27: warning: excess elements in struct initializer
45 | #define MOUNT_ATTR_RDONLY 0x00000001
| ^~~~~~~~~~
mount_setattr_test.c:669:15: note: in expansion of macro ‘MOUNT_ATTR_RDONLY’
669 | .attr_set = MOUNT_ATTR_RDONLY | MOUNT_ATTR_NOEXEC | MOUNT_ATTR_RELATIME,
| ^~~~~~~~~~~~~~~~~
mount_setattr_test.c:45:27: note: (near initialization for ‘attr’)
45 | #define MOUNT_ATTR_RDONLY 0x00000001
| ^~~~~~~~~~
mount_setattr_test.c:669:15: note: in expansion of macro ‘MOUNT_ATTR_RDONLY’
669 | .attr_set = MOUNT_ATTR_RDONLY | MOUNT_ATTR_NOEXEC | MOUNT_ATTR_RELATIME,
| ^~~~~~~~~~~~~~~~~
mount_setattr_test.c:670:4: error: ‘struct mount_attr’ has no member named ‘attr_clr’
670 | .attr_clr = MOUNT_ATTR__ATIME,
| ^~~~~~~~
mount_setattr_test.c:61:27: warning: excess elements in struct initializer
61 | #define MOUNT_ATTR__ATIME 0x00000070
| ^~~~~~~~~~
mount_setattr_test.c:670:15: note: in expansion of macro ‘MOUNT_ATTR__ATIME’
670 | .attr_clr = MOUNT_ATTR__ATIME,
| ^~~~~~~~~~~~~~~~~
mount_setattr_test.c:61:27: note: (near initialization for ‘attr’)
61 | #define MOUNT_ATTR__ATIME 0x00000070
| ^~~~~~~~~~
mount_setattr_test.c:670:15: note: in expansion of macro ‘MOUNT_ATTR__ATIME’
670 | .attr_clr = MOUNT_ATTR__ATIME,
| ^~~~~~~~~~~~~~~~~
mount_setattr_test.c:671:4: error: ‘struct mount_attr’ has no member named ‘propagation’
671 | .propagation = MS_SHARED,
| ^~~~~~~~~~~
mount_setattr_test.c:671:18: warning: excess elements in struct initializer
671 | .propagation = MS_SHARED,
| ^~~~~~~~~
mount_setattr_test.c:671:18: note: (near initialization for ‘attr’)
mount_setattr_test.c:668:20: error: storage size of ‘attr’ isn’t known
668 | struct mount_attr attr = {
| ^~~~
mount_setattr_test.c:668:20: warning: unused variable ‘attr’ [-Wunused-variable]
mount_setattr_test.c: In function ‘mount_setattr_mixed_mount_options’:
mount_setattr_test.c:725:9: error: variable ‘attr’ has initializer but incomplete type
725 | struct mount_attr attr = {
| ^~~~~~~~~~
mount_setattr_test.c:726:4: error: ‘struct mount_attr’ has no member named ‘attr_clr’
726 | .attr_clr = MOUNT_ATTR_RDONLY | MOUNT_ATTR_NOSUID | MOUNT_ATTR_NOEXEC | MOUNT_ATTR__ATIME,
| ^~~~~~~~
mount_setattr_test.c:45:27: warning: excess elements in struct initializer
45 | #define MOUNT_ATTR_RDONLY 0x00000001
| ^~~~~~~~~~
mount_setattr_test.c:726:15: note: in expansion of macro ‘MOUNT_ATTR_RDONLY’
726 | .attr_clr = MOUNT_ATTR_RDONLY | MOUNT_ATTR_NOSUID | MOUNT_ATTR_NOEXEC | MOUNT_ATTR__ATIME,
| ^~~~~~~~~~~~~~~~~
mount_setattr_test.c:45:27: note: (near initialization for ‘attr’)
45 | #define MOUNT_ATTR_RDONLY 0x00000001
| ^~~~~~~~~~
mount_setattr_test.c:726:15: note: in expansion of macro ‘MOUNT_ATTR_RDONLY’
726 | .attr_clr = MOUNT_ATTR_RDONLY | MOUNT_ATTR_NOSUID | MOUNT_ATTR_NOEXEC | MOUNT_ATTR__ATIME,
| ^~~~~~~~~~~~~~~~~
mount_setattr_test.c:727:4: error: ‘struct mount_attr’ has no member named ‘attr_set’
727 | .attr_set = MOUNT_ATTR_RELATIME,
| ^~~~~~~~
mount_setattr_test.c:65:29: warning: excess elements in struct initializer
65 | #define MOUNT_ATTR_RELATIME 0x00000000
| ^~~~~~~~~~
mount_setattr_test.c:727:15: note: in expansion of macro ‘MOUNT_ATTR_RELATIME’
727 | .attr_set = MOUNT_ATTR_RELATIME,
| ^~~~~~~~~~~~~~~~~~~
mount_setattr_test.c:65:29: note: (near initialization for ‘attr’)
65 | #define MOUNT_ATTR_RELATIME 0x00000000
| ^~~~~~~~~~
mount_setattr_test.c:727:15: note: in expansion of macro ‘MOUNT_ATTR_RELATIME’
727 | .attr_set = MOUNT_ATTR_RELATIME,
| ^~~~~~~~~~~~~~~~~~~
mount_setattr_test.c:725:20: error: storage size of ‘attr’ isn’t known
725 | struct mount_attr attr = {
| ^~~~
mount_setattr_test.c:725:20: warning: unused variable ‘attr’ [-Wunused-variable]
mount_setattr_test.c: In function ‘mount_setattr_time_changes’:
mount_setattr_test.c:759:9: error: variable ‘attr’ has initializer but incomplete type
759 | struct mount_attr attr = {
| ^~~~~~~~~~
mount_setattr_test.c:760:4: error: ‘struct mount_attr’ has no member named ‘attr_set’
760 | .attr_set = MOUNT_ATTR_NODIRATIME | MOUNT_ATTR_NOATIME,
| ^~~~~~~~
mount_setattr_test.c:57:31: warning: excess elements in struct initializer
57 | #define MOUNT_ATTR_NODIRATIME 0x00000080
| ^~~~~~~~~~
mount_setattr_test.c:760:15: note: in expansion of macro ‘MOUNT_ATTR_NODIRATIME’
760 | .attr_set = MOUNT_ATTR_NODIRATIME | MOUNT_ATTR_NOATIME,
| ^~~~~~~~~~~~~~~~~~~~~
mount_setattr_test.c:57:31: note: (near initialization for ‘attr’)
57 | #define MOUNT_ATTR_NODIRATIME 0x00000080
| ^~~~~~~~~~
mount_setattr_test.c:760:15: note: in expansion of macro ‘MOUNT_ATTR_NODIRATIME’
760 | .attr_set = MOUNT_ATTR_NODIRATIME | MOUNT_ATTR_NOATIME,
| ^~~~~~~~~~~~~~~~~~~~~
mount_setattr_test.c:759:20: error: storage size of ‘attr’ isn’t known
759 | struct mount_attr attr = {
| ^~~~
mount_setattr_test.c:759:20: warning: unused variable ‘attr’ [-Wunused-variable]
mount_setattr_test.c: In function ‘mount_setattr_wrong_user_namespace’:
mount_setattr_test.c:963:9: error: variable ‘attr’ has initializer but incomplete type
963 | struct mount_attr attr = {
| ^~~~~~~~~~
mount_setattr_test.c:964:4: error: ‘struct mount_attr’ has no member named ‘attr_set’
964 | .attr_set = MOUNT_ATTR_RDONLY,
| ^~~~~~~~
mount_setattr_test.c:45:27: warning: excess elements in struct initializer
45 | #define MOUNT_ATTR_RDONLY 0x00000001
| ^~~~~~~~~~
mount_setattr_test.c:964:15: note: in expansion of macro ‘MOUNT_ATTR_RDONLY’
964 | .attr_set = MOUNT_ATTR_RDONLY,
| ^~~~~~~~~~~~~~~~~
mount_setattr_test.c:45:27: note: (near initialization for ‘attr’)
45 | #define MOUNT_ATTR_RDONLY 0x00000001
| ^~~~~~~~~~
mount_setattr_test.c:964:15: note: in expansion of macro ‘MOUNT_ATTR_RDONLY’
964 | .attr_set = MOUNT_ATTR_RDONLY,
| ^~~~~~~~~~~~~~~~~
mount_setattr_test.c:963:20: error: storage size of ‘attr’ isn’t known
963 | struct mount_attr attr = {
| ^~~~
mount_setattr_test.c:963:20: warning: unused variable ‘attr’ [-Wunused-variable]
mount_setattr_test.c: In function ‘mount_setattr_wrong_mount_namespace’:
mount_setattr_test.c:979:9: error: variable ‘attr’ has initializer but incomplete type
979 | struct mount_attr attr = {
| ^~~~~~~~~~
mount_setattr_test.c:980:4: error: ‘struct mount_attr’ has no member named ‘attr_set’
980 | .attr_set = MOUNT_ATTR_RDONLY,
| ^~~~~~~~
mount_setattr_test.c:45:27: warning: excess elements in struct initializer
45 | #define MOUNT_ATTR_RDONLY 0x00000001
| ^~~~~~~~~~
mount_setattr_test.c:980:15: note: in expansion of macro ‘MOUNT_ATTR_RDONLY’
980 | .attr_set = MOUNT_ATTR_RDONLY,
| ^~~~~~~~~~~~~~~~~
mount_setattr_test.c:45:27: note: (near initialization for ‘attr’)
45 | #define MOUNT_ATTR_RDONLY 0x00000001
| ^~~~~~~~~~
mount_setattr_test.c:980:15: note: in expansion of macro ‘MOUNT_ATTR_RDONLY’
980 | .attr_set = MOUNT_ATTR_RDONLY,
| ^~~~~~~~~~~~~~~~~
mount_setattr_test.c:979:20: error: storage size of ‘attr’ isn’t known
979 | struct mount_attr attr = {
| ^~~~
mount_setattr_test.c:979:20: warning: unused variable ‘attr’ [-Wunused-variable]
mount_setattr_test.c: In function ‘mount_setattr_idmapped_invalid_fd_negative’:
mount_setattr_test.c:1070:9: error: variable ‘attr’ has initializer but incomplete type
1070 | struct mount_attr attr = {
| ^~~~~~~~~~
mount_setattr_test.c:1071:4: error: ‘struct mount_attr’ has no member named ‘attr_set’
1071 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~
mount_setattr_test.c:129:26: warning: excess elements in struct initializer
129 | #define MOUNT_ATTR_IDMAP 0x00100000
| ^~~~~~~~~~
mount_setattr_test.c:1071:15: note: in expansion of macro ‘MOUNT_ATTR_IDMAP’
1071 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~~~~~~~~~
mount_setattr_test.c:129:26: note: (near initialization for ‘attr’)
129 | #define MOUNT_ATTR_IDMAP 0x00100000
| ^~~~~~~~~~
mount_setattr_test.c:1071:15: note: in expansion of macro ‘MOUNT_ATTR_IDMAP’
1071 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~~~~~~~~~
mount_setattr_test.c:1072:4: error: ‘struct mount_attr’ has no member named ‘userns_fd’
1072 | .userns_fd = -EBADF,
| ^~~~~~~~~
mount_setattr_test.c:1072:16: warning: excess elements in struct initializer
1072 | .userns_fd = -EBADF,
| ^
mount_setattr_test.c:1072:16: note: (near initialization for ‘attr’)
mount_setattr_test.c:1070:20: error: storage size of ‘attr’ isn’t known
1070 | struct mount_attr attr = {
| ^~~~
mount_setattr_test.c:1070:20: warning: unused variable ‘attr’ [-Wunused-variable]
mount_setattr_test.c: In function ‘mount_setattr_idmapped_invalid_fd_large’:
mount_setattr_test.c:1088:9: error: variable ‘attr’ has initializer but incomplete type
1088 | struct mount_attr attr = {
| ^~~~~~~~~~
mount_setattr_test.c:1089:4: error: ‘struct mount_attr’ has no member named ‘attr_set’
1089 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~
mount_setattr_test.c:129:26: warning: excess elements in struct initializer
129 | #define MOUNT_ATTR_IDMAP 0x00100000
| ^~~~~~~~~~
mount_setattr_test.c:1089:15: note: in expansion of macro ‘MOUNT_ATTR_IDMAP’
1089 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~~~~~~~~~
mount_setattr_test.c:129:26: note: (near initialization for ‘attr’)
129 | #define MOUNT_ATTR_IDMAP 0x00100000
| ^~~~~~~~~~
mount_setattr_test.c:1089:15: note: in expansion of macro ‘MOUNT_ATTR_IDMAP’
1089 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~~~~~~~~~
mount_setattr_test.c:1090:4: error: ‘struct mount_attr’ has no member named ‘userns_fd’
1090 | .userns_fd = INT64_MAX,
| ^~~~~~~~~
mount_setattr_test.c:1090:16: warning: excess elements in struct initializer
1090 | .userns_fd = INT64_MAX,
| ^~~~~~~~~
mount_setattr_test.c:1090:16: note: (near initialization for ‘attr’)
mount_setattr_test.c:1088:20: error: storage size of ‘attr’ isn’t known
1088 | struct mount_attr attr = {
| ^~~~
mount_setattr_test.c:1088:20: warning: unused variable ‘attr’ [-Wunused-variable]
mount_setattr_test.c: In function ‘mount_setattr_idmapped_invalid_fd_closed’:
mount_setattr_test.c:1107:9: error: variable ‘attr’ has initializer but incomplete type
1107 | struct mount_attr attr = {
| ^~~~~~~~~~
mount_setattr_test.c:1108:4: error: ‘struct mount_attr’ has no member named ‘attr_set’
1108 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~
mount_setattr_test.c:129:26: warning: excess elements in struct initializer
129 | #define MOUNT_ATTR_IDMAP 0x00100000
| ^~~~~~~~~~
mount_setattr_test.c:1108:15: note: in expansion of macro ‘MOUNT_ATTR_IDMAP’
1108 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~~~~~~~~~
mount_setattr_test.c:129:26: note: (near initialization for ‘attr’)
129 | #define MOUNT_ATTR_IDMAP 0x00100000
| ^~~~~~~~~~
mount_setattr_test.c:1108:15: note: in expansion of macro ‘MOUNT_ATTR_IDMAP’
1108 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~~~~~~~~~
mount_setattr_test.c:1107:20: error: storage size of ‘attr’ isn’t known
1107 | struct mount_attr attr = {
| ^~~~
mount_setattr_test.c:1107:20: warning: unused variable ‘attr’ [-Wunused-variable]
mount_setattr_test.c: In function ‘mount_setattr_idmapped_invalid_fd_initial_userns’:
mount_setattr_test.c:1130:9: error: variable ‘attr’ has initializer but incomplete type
1130 | struct mount_attr attr = {
| ^~~~~~~~~~
mount_setattr_test.c:1131:4: error: ‘struct mount_attr’ has no member named ‘attr_set’
1131 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~
mount_setattr_test.c:129:26: warning: excess elements in struct initializer
129 | #define MOUNT_ATTR_IDMAP 0x00100000
| ^~~~~~~~~~
mount_setattr_test.c:1131:15: note: in expansion of macro ‘MOUNT_ATTR_IDMAP’
1131 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~~~~~~~~~
mount_setattr_test.c:129:26: note: (near initialization for ‘attr’)
129 | #define MOUNT_ATTR_IDMAP 0x00100000
| ^~~~~~~~~~
mount_setattr_test.c:1131:15: note: in expansion of macro ‘MOUNT_ATTR_IDMAP’
1131 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~~~~~~~~~
mount_setattr_test.c:1130:20: error: storage size of ‘attr’ isn’t known
1130 | struct mount_attr attr = {
| ^~~~
mount_setattr_test.c:1130:20: warning: unused variable ‘attr’ [-Wunused-variable]
mount_setattr_test.c: In function ‘mount_setattr_idmapped_attached_mount_inside_current_mount_namespace’:
mount_setattr_test.c:1239:9: error: variable ‘attr’ has initializer but incomplete type
1239 | struct mount_attr attr = {
| ^~~~~~~~~~
mount_setattr_test.c:1240:4: error: ‘struct mount_attr’ has no member named ‘attr_set’
1240 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~
mount_setattr_test.c:129:26: warning: excess elements in struct initializer
129 | #define MOUNT_ATTR_IDMAP 0x00100000
| ^~~~~~~~~~
mount_setattr_test.c:1240:15: note: in expansion of macro ‘MOUNT_ATTR_IDMAP’
1240 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~~~~~~~~~
mount_setattr_test.c:129:26: note: (near initialization for ‘attr’)
129 | #define MOUNT_ATTR_IDMAP 0x00100000
| ^~~~~~~~~~
mount_setattr_test.c:1240:15: note: in expansion of macro ‘MOUNT_ATTR_IDMAP’
1240 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~~~~~~~~~
mount_setattr_test.c:1239:20: error: storage size of ‘attr’ isn’t known
1239 | struct mount_attr attr = {
| ^~~~
mount_setattr_test.c:1239:20: warning: unused variable ‘attr’ [-Wunused-variable]
mount_setattr_test.c: In function ‘mount_setattr_idmapped_attached_mount_outside_current_mount_namespace’:
mount_setattr_test.c:1269:9: error: variable ‘attr’ has initializer but incomplete type
1269 | struct mount_attr attr = {
| ^~~~~~~~~~
mount_setattr_test.c:1270:4: error: ‘struct mount_attr’ has no member named ‘attr_set’
1270 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~
mount_setattr_test.c:129:26: warning: excess elements in struct initializer
129 | #define MOUNT_ATTR_IDMAP 0x00100000
| ^~~~~~~~~~
mount_setattr_test.c:1270:15: note: in expansion of macro ‘MOUNT_ATTR_IDMAP’
1270 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~~~~~~~~~
mount_setattr_test.c:129:26: note: (near initialization for ‘attr’)
129 | #define MOUNT_ATTR_IDMAP 0x00100000
| ^~~~~~~~~~
mount_setattr_test.c:1270:15: note: in expansion of macro ‘MOUNT_ATTR_IDMAP’
1270 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~~~~~~~~~
mount_setattr_test.c:1269:20: error: storage size of ‘attr’ isn’t known
1269 | struct mount_attr attr = {
| ^~~~
mount_setattr_test.c:1269:20: warning: unused variable ‘attr’ [-Wunused-variable]
mount_setattr_test.c: In function ‘mount_setattr_idmapped_detached_mount_inside_current_mount_namespace’:
mount_setattr_test.c:1299:9: error: variable ‘attr’ has initializer but incomplete type
1299 | struct mount_attr attr = {
| ^~~~~~~~~~
mount_setattr_test.c:1300:4: error: ‘struct mount_attr’ has no member named ‘attr_set’
1300 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~
mount_setattr_test.c:129:26: warning: excess elements in struct initializer
129 | #define MOUNT_ATTR_IDMAP 0x00100000
| ^~~~~~~~~~
mount_setattr_test.c:1300:15: note: in expansion of macro ‘MOUNT_ATTR_IDMAP’
1300 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~~~~~~~~~
mount_setattr_test.c:129:26: note: (near initialization for ‘attr’)
129 | #define MOUNT_ATTR_IDMAP 0x00100000
| ^~~~~~~~~~
mount_setattr_test.c:1300:15: note: in expansion of macro ‘MOUNT_ATTR_IDMAP’
1300 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~~~~~~~~~
mount_setattr_test.c:1299:20: error: storage size of ‘attr’ isn’t known
1299 | struct mount_attr attr = {
| ^~~~
mount_setattr_test.c:1299:20: warning: unused variable ‘attr’ [-Wunused-variable]
mount_setattr_test.c: In function ‘mount_setattr_idmapped_detached_mount_outside_current_mount_namespace’:
mount_setattr_test.c:1329:9: error: variable ‘attr’ has initializer but incomplete type
1329 | struct mount_attr attr = {
| ^~~~~~~~~~
mount_setattr_test.c:1330:4: error: ‘struct mount_attr’ has no member named ‘attr_set’
1330 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~
mount_setattr_test.c:129:26: warning: excess elements in struct initializer
129 | #define MOUNT_ATTR_IDMAP 0x00100000
| ^~~~~~~~~~
mount_setattr_test.c:1330:15: note: in expansion of macro ‘MOUNT_ATTR_IDMAP’
1330 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~~~~~~~~~
mount_setattr_test.c:129:26: note: (near initialization for ‘attr’)
129 | #define MOUNT_ATTR_IDMAP 0x00100000
| ^~~~~~~~~~
mount_setattr_test.c:1330:15: note: in expansion of macro ‘MOUNT_ATTR_IDMAP’
1330 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~~~~~~~~~
mount_setattr_test.c:1329:20: error: storage size of ‘attr’ isn’t known
1329 | struct mount_attr attr = {
| ^~~~
mount_setattr_test.c:1329:20: warning: unused variable ‘attr’ [-Wunused-variable]
mount_setattr_test.c: In function ‘mount_setattr_idmapped_change_idmapping’:
mount_setattr_test.c:1361:9: error: variable ‘attr’ has initializer but incomplete type
1361 | struct mount_attr attr = {
| ^~~~~~~~~~
mount_setattr_test.c:1362:4: error: ‘struct mount_attr’ has no member named ‘attr_set’
1362 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~
mount_setattr_test.c:129:26: warning: excess elements in struct initializer
129 | #define MOUNT_ATTR_IDMAP 0x00100000
| ^~~~~~~~~~
mount_setattr_test.c:1362:15: note: in expansion of macro ‘MOUNT_ATTR_IDMAP’
1362 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~~~~~~~~~
mount_setattr_test.c:129:26: note: (near initialization for ‘attr’)
129 | #define MOUNT_ATTR_IDMAP 0x00100000
| ^~~~~~~~~~
mount_setattr_test.c:1362:15: note: in expansion of macro ‘MOUNT_ATTR_IDMAP’
1362 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~~~~~~~~~
mount_setattr_test.c:1361:20: error: storage size of ‘attr’ isn’t known
1361 | struct mount_attr attr = {
| ^~~~
mount_setattr_test.c:1361:20: warning: unused variable ‘attr’ [-Wunused-variable]
mount_setattr_test.c: In function ‘mount_setattr_idmapped_idmap_mount_tree_invalid’:
mount_setattr_test.c:1406:9: error: variable ‘attr’ has initializer but incomplete type
1406 | struct mount_attr attr = {
| ^~~~~~~~~~
mount_setattr_test.c:1407:4: error: ‘struct mount_attr’ has no member named ‘attr_set’
1407 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~
mount_setattr_test.c:129:26: warning: excess elements in struct initializer
129 | #define MOUNT_ATTR_IDMAP 0x00100000
| ^~~~~~~~~~
mount_setattr_test.c:1407:15: note: in expansion of macro ‘MOUNT_ATTR_IDMAP’
1407 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~~~~~~~~~
mount_setattr_test.c:129:26: note: (near initialization for ‘attr’)
129 | #define MOUNT_ATTR_IDMAP 0x00100000
| ^~~~~~~~~~
mount_setattr_test.c:1407:15: note: in expansion of macro ‘MOUNT_ATTR_IDMAP’
1407 | .attr_set = MOUNT_ATTR_IDMAP,
| ^~~~~~~~~~~~~~~~
mount_setattr_test.c:1406:20: error: storage size of ‘attr’ isn’t known
1406 | struct mount_attr attr = {
| ^~~~
mount_setattr_test.c:1406:20: warning: unused variable ‘attr’ [-Wunused-variable]
mount_setattr_test.c: In function ‘mount_setattr_mount_attr_nosymfollow’:
mount_setattr_test.c:1441:9: error: variable ‘attr’ has initializer but incomplete type
1441 | struct mount_attr attr = {
| ^~~~~~~~~~
mount_setattr_test.c:1442:4: error: ‘struct mount_attr’ has no member named ‘attr_set’
1442 | .attr_set = MOUNT_ATTR_NOSYMFOLLOW,
| ^~~~~~~~
mount_setattr_test.c:133:32: warning: excess elements in struct initializer
133 | #define MOUNT_ATTR_NOSYMFOLLOW 0x00200000
| ^~~~~~~~~~
mount_setattr_test.c:1442:15: note: in expansion of macro ‘MOUNT_ATTR_NOSYMFOLLOW’
1442 | .attr_set = MOUNT_ATTR_NOSYMFOLLOW,
| ^~~~~~~~~~~~~~~~~~~~~~
mount_setattr_test.c:133:32: note: (near initialization for ‘attr’)
133 | #define MOUNT_ATTR_NOSYMFOLLOW 0x00200000
| ^~~~~~~~~~
mount_setattr_test.c:1442:15: note: in expansion of macro ‘MOUNT_ATTR_NOSYMFOLLOW’
1442 | .attr_set = MOUNT_ATTR_NOSYMFOLLOW,
| ^~~~~~~~~~~~~~~~~~~~~~
mount_setattr_test.c:1441:20: error: storage size of ‘attr’ isn’t known
1441 | struct mount_attr attr = {
| ^~~~
mount_setattr_test.c:1441:20: warning: unused variable ‘attr’ [-Wunused-variable]
make: *** [../lib.mk:145: /usr/src/perf_selftests-i386-debian-10.3-kselftests-d8e45bf1aed2e5fddd8985b5bb1aaf774a97aba8/tools/testing/selftests/mount_setattr/mount_setattr_test] Error 1
make: Leaving directory '/usr/src/perf_selftests-i386-debian-10.3-kselftests-d8e45bf1aed2e5fddd8985b5bb1aaf774a97aba8/tools/testing/selftests/mount_setattr'
We did a quick investigation and found it may be related with the
version of libc headers in the system environment.
When libc v2.35 is installed, it fails when building mount_setattr
selftests.
When libc v2.36 is installed, it builds fine.
If you fix the issue, kindly add following tag
| Reported-by: kernel test robot <[email protected]>
| Link: https://lore.kernel.org/oe-lkp/[email protected]
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests