* [PATCH liburing 0/3] Fix build and add /test/output dir to .gitignore @ 2021-09-15 8:11 Ammar Faizi 2021-09-15 8:11 ` [PATCH liburing 1/3] test/io_uring_setup: Don't use `__errno` as local variable name Ammar Faizi 2021-09-15 12:41 ` [PATCH liburing 0/3] Fix build and add /test/output dir to .gitignore Jens Axboe 0 siblings, 2 replies; 5+ messages in thread From: Ammar Faizi @ 2021-09-15 8:11 UTC (permalink / raw) To: Jens Axboe; +Cc: io-uring - Louvian reported build error (2 fixes from me). - Add `/test/output` dir to .gitignore from me. Ammar Faizi (3): test/io_uring_setup: Don't use `__errno` as local variable name test/send_recv: Use proper cast for (struct sockaddr *) argument .gitignore: add `/test/output/` .gitignore | 1 + test/io_uring_setup.c | 10 +++++----- test/send_recv.c | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH liburing 1/3] test/io_uring_setup: Don't use `__errno` as local variable name 2021-09-15 8:11 [PATCH liburing 0/3] Fix build and add /test/output dir to .gitignore Ammar Faizi @ 2021-09-15 8:11 ` Ammar Faizi 2021-09-15 8:11 ` [PATCH liburing 2/3] test/send_recv: Use proper cast for (struct sockaddr *) argument Ammar Faizi 2021-09-15 8:11 ` [PATCH liburing 3/3] .gitignore: add `/test/output/` Ammar Faizi 2021-09-15 12:41 ` [PATCH liburing 0/3] Fix build and add /test/output dir to .gitignore Jens Axboe 1 sibling, 2 replies; 5+ messages in thread From: Ammar Faizi @ 2021-09-15 8:11 UTC (permalink / raw) To: Jens Axboe; +Cc: io-uring, Ammar Faizi, Louvian Lyndal This commit fixes build for armv8l. On some systems, the macro `errno` is defined as `#define errno (*__errno())` It is clear that `__errno` is a global function on such systems. The problem is, `io_uring_setup.c` uses `int __errno` as a local variable, so it shadows the `__errno` function, result in the following error: ``` CC io_uring_setup io_uring_setup.c:116:12: error: called object type 'int' is not a function or function pointer __errno = errno; ^~~~~ /usr/include/errno.h:58:24: note: expanded from macro 'errno' #define errno (*__errno()) ~~~~~~~^ 1 error generated. make[1]: *** [Makefile:163: io_uring_setup] Error 1 make[1]: *** Waiting for unfinished jobs.... ``` Fix this by not using `__errno` as local variable name. Reported-by: Louvian Lyndal <louvianlyndal@gmail.com> Tested-by: Louvian Lyndal <louvianlyndal@gmail.com> Signed-off-by: Ammar Faizi <ammarfaizi2@gmail.com> --- test/io_uring_setup.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/test/io_uring_setup.c b/test/io_uring_setup.c index a0709a7..94b54fd 100644 --- a/test/io_uring_setup.c +++ b/test/io_uring_setup.c @@ -99,7 +99,7 @@ dump_resv(struct io_uring_params *p) int try_io_uring_setup(unsigned entries, struct io_uring_params *p, int expect, int error) { - int ret, __errno; + int ret, err; printf("io_uring_setup(%u, %p), flags: %s, feat: %s, resv: %s, sq_thread_cpu: %u\n", entries, p, flags_string(p), features_string(p), dump_resv(p), @@ -113,13 +113,13 @@ try_io_uring_setup(unsigned entries, struct io_uring_params *p, int expect, int close(ret); return 1; } - __errno = errno; - if (expect == -1 && error != __errno) { - if (__errno == EPERM && geteuid() != 0) { + err = errno; + if (expect == -1 && error != err) { + if (err == EPERM && geteuid() != 0) { printf("Needs root, not flagging as an error\n"); return 0; } - printf("expected errno %d, got %d\n", error, __errno); + printf("expected errno %d, got %d\n", error, err); return 1; } -- 2.30.2 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH liburing 2/3] test/send_recv: Use proper cast for (struct sockaddr *) argument 2021-09-15 8:11 ` [PATCH liburing 1/3] test/io_uring_setup: Don't use `__errno` as local variable name Ammar Faizi @ 2021-09-15 8:11 ` Ammar Faizi 2021-09-15 8:11 ` [PATCH liburing 3/3] .gitignore: add `/test/output/` Ammar Faizi 1 sibling, 0 replies; 5+ messages in thread From: Ammar Faizi @ 2021-09-15 8:11 UTC (permalink / raw) To: Jens Axboe; +Cc: io-uring, Ammar Faizi, Louvian Lyndal This commit fixes build for armv8l. Sometimes the compiler accepts (struct sockaddr_in *) to be passed to (struct sockaddr *) without cast. But not all compilers agree with that. Louvian found the following warning on armv8l: ``` send_recv.c:203:24: warning: incompatible pointer types passing 'struct sockaddr_in *' to parameter of type 'const struct sockaddr *' [-Wincompatible-pointer-types] ret = connect(sockfd, &saddr, sizeof(saddr)); ^~~~~~ /usr/include/sys/socket.h:308:59: note: passing argument to parameter '__addr' here __socketcall int connect(int __fd, const struct sockaddr* __addr, socklen_t __addr_length); ^ 1 warning generated. ``` Fix this by casting the second argument to (struct sockaddr *). Reported-by: Louvian Lyndal <louvianlyndal@gmail.com> Tested-by: Louvian Lyndal <louvianlyndal@gmail.com> Signed-off-by: Ammar Faizi <ammarfaizi2@gmail.com> --- test/send_recv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/send_recv.c b/test/send_recv.c index 38ae27f..1ee0234 100644 --- a/test/send_recv.c +++ b/test/send_recv.c @@ -200,7 +200,7 @@ static int do_send(void) return 1; } - ret = connect(sockfd, &saddr, sizeof(saddr)); + ret = connect(sockfd, (struct sockaddr *)&saddr, sizeof(saddr)); if (ret < 0) { perror("connect"); return 1; -- 2.30.2 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH liburing 3/3] .gitignore: add `/test/output/` 2021-09-15 8:11 ` [PATCH liburing 1/3] test/io_uring_setup: Don't use `__errno` as local variable name Ammar Faizi 2021-09-15 8:11 ` [PATCH liburing 2/3] test/send_recv: Use proper cast for (struct sockaddr *) argument Ammar Faizi @ 2021-09-15 8:11 ` Ammar Faizi 1 sibling, 0 replies; 5+ messages in thread From: Ammar Faizi @ 2021-09-15 8:11 UTC (permalink / raw) To: Jens Axboe; +Cc: io-uring, Ammar Faizi Signed-off-by: Ammar Faizi <ammarfaizi2@gmail.com> --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 0213bfa..45f3cde 100644 --- a/.gitignore +++ b/.gitignore @@ -131,6 +131,7 @@ /test/submit-link-fail /test/exec-target /test/*.dmesg +/test/output/ config-host.h config-host.mak -- 2.30.2 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH liburing 0/3] Fix build and add /test/output dir to .gitignore 2021-09-15 8:11 [PATCH liburing 0/3] Fix build and add /test/output dir to .gitignore Ammar Faizi 2021-09-15 8:11 ` [PATCH liburing 1/3] test/io_uring_setup: Don't use `__errno` as local variable name Ammar Faizi @ 2021-09-15 12:41 ` Jens Axboe 1 sibling, 0 replies; 5+ messages in thread From: Jens Axboe @ 2021-09-15 12:41 UTC (permalink / raw) To: Ammar Faizi; +Cc: io-uring On 9/15/21 2:11 AM, Ammar Faizi wrote: > - Louvian reported build error (2 fixes from me). > - Add `/test/output` dir to .gitignore from me. > > Ammar Faizi (3): > test/io_uring_setup: Don't use `__errno` as local variable name > test/send_recv: Use proper cast for (struct sockaddr *) argument > .gitignore: add `/test/output/` > > .gitignore | 1 + > test/io_uring_setup.c | 10 +++++----- > test/send_recv.c | 2 +- > 3 files changed, 7 insertions(+), 6 deletions(-) Applied, thanks. -- Jens Axboe ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-09-15 12:41 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-09-15 8:11 [PATCH liburing 0/3] Fix build and add /test/output dir to .gitignore Ammar Faizi 2021-09-15 8:11 ` [PATCH liburing 1/3] test/io_uring_setup: Don't use `__errno` as local variable name Ammar Faizi 2021-09-15 8:11 ` [PATCH liburing 2/3] test/send_recv: Use proper cast for (struct sockaddr *) argument Ammar Faizi 2021-09-15 8:11 ` [PATCH liburing 3/3] .gitignore: add `/test/output/` Ammar Faizi 2021-09-15 12:41 ` [PATCH liburing 0/3] Fix build and add /test/output dir to .gitignore Jens Axboe
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.