From: Thomas Weißschuh Date: Thu, 14 May 2026 12:05:11 +0000 (+0200) Subject: tools/nolibc: split implicit open flags into a macro X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=ced7994fc87d2d1c162d41ff32be876b09c8ad2b;p=thirdparty%2Flinux.git tools/nolibc: split implicit open flags into a macro This logic is duplicated and its current form will be in the way of some upcoming simplificiations. Move it into a macro to avoid the duplication and enable some cleanups. Signed-off-by: Thomas Weißschuh Acked-by: Willy Tarreau Link: https://patch.msgid.link/20260514-nolibc-open-tmpfile-v2-1-b4c6c5efa266@weissschuh.net --- diff --git a/tools/include/nolibc/fcntl.h b/tools/include/nolibc/fcntl.h index 014910a8e928..46f591cf82fd 100644 --- a/tools/include/nolibc/fcntl.h +++ b/tools/include/nolibc/fcntl.h @@ -14,6 +14,8 @@ #include "types.h" #include "sys.h" +#define __nolibc_open_flags(_flags) ((_flags) | O_LARGEFILE) + /* * int openat(int dirfd, const char *path, int flags[, mode_t mode]); */ @@ -29,8 +31,6 @@ int openat(int dirfd, const char *path, int flags, ...) { mode_t mode = 0; - flags |= O_LARGEFILE; - if (flags & O_CREAT) { va_list args; @@ -39,7 +39,7 @@ int openat(int dirfd, const char *path, int flags, ...) va_end(args); } - return __sysret(_sys_openat(dirfd, path, flags, mode)); + return __sysret(_sys_openat(dirfd, path, __nolibc_open_flags(flags), mode)); } /* @@ -57,8 +57,6 @@ int open(const char *path, int flags, ...) { mode_t mode = 0; - flags |= O_LARGEFILE; - if (flags & O_CREAT) { va_list args; @@ -67,7 +65,7 @@ int open(const char *path, int flags, ...) va_end(args); } - return __sysret(_sys_open(path, flags, mode)); + return __sysret(_sys_open(path, __nolibc_open_flags(flags), mode)); } /*