Messages in this thread Patch in this message | | | Date | Wed, 12 Feb 2020 19:14:14 +1100 | From | Aleksa Sarai <> | Subject | Re: Linux 5.6-rc1 kselftest build failures |
| |
On 2020-02-11, shuah <shuah@kernel.org> wrote: > openat2: > > tools/testing/selftests/openat2' > gcc -Wall -O2 -g -fsanitize=address -fsanitize=undefined openat2_test.c > helpers.c -o tools/testing/selftests/openat2/openat2_test > In file included from /usr/include/fcntl.h:301, > from helpers.c:9: > In function ‘openat’, > inlined from ‘touchat’ at helpers.c:49:11: > /usr/include/x86_64-linux-gnu/bits/fcntl2.h:126:4: error: call to > ‘__openat_missing_mode’ declared with attribute error: openat with O_CREAT > or O_TMPFILE in third argument needs 4 arguments > 126 | __openat_missing_mode (); > | ^~~~~~~~~~~~~~~~~~~~~~~~
Yeah, that's a brain-o -- it looks like you have a newer glibc than me which gives you a warning when you don't set the mode. The fix should be just the following:
--8<----------------------------------------------------------------------- Subject: [PATCH] selftests: openat2: fix build error on newer glibc
It appears that newer glibcs check that openat(O_CREAT) was provided a fourth argument (rather than passing garbage), resulting in the following build error:
In file included from /usr/include/fcntl.h:301, from helpers.c:9: In function ‘openat’, inlined from ‘touchat’ at helpers.c:49:11: /usr/include/x86_64-linux-gnu/bits/fcntl2.h:126:4: error: call to ‘__openat_missing_mode’ declared with attribute error: openat with O_CREAT or O_TMPFILE in third argument needs 4 arguments 126 | __openat_missing_mode (); | ^~~~~~~~~~~~~~~~~~~~~~~~
Reported-by: Shuah Khan <shuah@kernel.org> Signed-off-by: Aleksa Sarai <cyphar@cyphar.com> --- tools/testing/selftests/openat2/helpers.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/openat2/helpers.c b/tools/testing/selftests/openat2/helpers.c index e9a6557ab16f..5074681ffdc9 100644 --- a/tools/testing/selftests/openat2/helpers.c +++ b/tools/testing/selftests/openat2/helpers.c @@ -46,7 +46,7 @@ int sys_renameat2(int olddirfd, const char *oldpath, int touchat(int dfd, const char *path) { - int fd = openat(dfd, path, O_CREAT); + int fd = openat(dfd, path, O_CREAT, 0700); if (fd >= 0) close(fd); return fd; -- 2.25.0 [unhandled content-type:application/pgp-signature] | |