123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- From 75437e2253fc70f4e3368c9d030415ce4ae52fa6 Mon Sep 17 00:00:00 2001
- From: Leah Rowe <info@minifree.org>
- Date: Sun, 28 Jul 2024 16:04:30 +0100
- Subject: [PATCH 1/1] common/filesystem: define ACCESSPERMS if undefined
- Normally defined in sys/stat.h on various libc implementations,
- but musl libc doesn't seem to have it, leading to this build
- issue:
- common/filesystem.cpp:86:38: error: 'ACCESSPERMS' was not declared in this scope
- 86 | return (mkdir(dir.toLocal8Bit(), ACCESSPERMS) == 0);
- ACCESSPERMS is typically defined as the result of bitwise OR:
- S_IRWXU | S_IRWXG | S_IRWXO
- This creates the chmod permission 0777, used on the mkdir() call.
- ACCESSPERMS is supported on GNU C Library, for compatibility with
- BSD libc implementations; the latter also implements ALLPERMS
- and DEFFILEMODE, which don't seem to be used by uefitool regardless.
- Do not define it on the Windows builds; only do it for the others,
- such as Linux.
- Signed-off-by: Leah Rowe <info@minifree.org>
- ---
- common/filesystem.cpp | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
- diff --git a/common/filesystem.cpp b/common/filesystem.cpp
- index b2b8d65..af5e537 100644
- --- a/common/filesystem.cpp
- +++ b/common/filesystem.cpp
- @@ -75,6 +75,12 @@ UString getAbsPath(const UString & path)
- #else
- #include <unistd.h>
- #include <stdlib.h>
- +
- +/* musl libc does not define ACCESSPERMS */
- +#ifndef ACCESSPERMS
- +#define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO) /* chmod permission: 0777 */
- +#endif
- +
- bool isExistOnFs(const UString & path)
- {
- struct stat buf;
- @@ -103,4 +109,4 @@ UString getAbsPath(const UString & path) {
- return UString(abs);
- return path;
- }
- -#endif
- \ No newline at end of file
- +#endif
- --
- 2.39.2
|