forked from openwrt/openwrt
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
tools/fakeroot: fix build on MacOS arm64
Added patch for MacOS without 32 bit inodes support (__DARWIN_ONLY_64_BIT_INO_T is true) This patch based on discussion archmac/bootstrap#4 Signed-off-by: Sergey V. Lobanov <sergey@lobanov.in>
- Loading branch information
Showing
1 changed file
with
86 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
diff --git a/communicate.c b/communicate.c | ||
index e2699a2..21e5366 100644 | ||
--- a/communicate.c | ||
+++ b/communicate.c | ||
@@ -24,7 +24,12 @@ | ||
In this file, we want 'struct stat' to have a 32-bit 'ino_t'. | ||
We use 'struct stat64' when we need a 64-bit 'ino_t'. | ||
*/ | ||
-#define _DARWIN_NO_64_BIT_INODE | ||
+# include <sys/types.h> | ||
+# if __DARWIN_ONLY_64_BIT_INO_T | ||
+# define _DARWIN_USE_64_BIT_INODE | ||
+# else | ||
+# define _DARWIN_NO_64_BIT_INODE | ||
+# endif | ||
#endif | ||
|
||
#include "communicate.h" | ||
diff --git a/communicate.h b/communicate.h | ||
index 3f9ca39..a586108 100644 | ||
--- a/communicate.h | ||
+++ b/communicate.h | ||
@@ -91,6 +91,10 @@ | ||
# include <inttypes.h> | ||
#endif | ||
|
||
+#if __DARWIN_ONLY_64_BIT_INO_T | ||
+struct stat64 __DARWIN_STRUCT_STAT64; | ||
+#endif | ||
+ | ||
#ifndef FAKEROOT_FAKENET | ||
# define FAKEROOTKEY_ENV "FAKEROOTKEY" | ||
#endif /* ! FAKEROOT_FAKENET */ | ||
diff --git a/faked.c b/faked.c | ||
index a970184..ea51a23 100644 | ||
--- a/faked.c | ||
+++ b/faked.c | ||
@@ -84,7 +84,12 @@ | ||
In this file, we want 'struct stat' to have a 32-bit 'ino_t'. | ||
We use 'struct stat64' when we need a 64-bit 'ino_t'. | ||
*/ | ||
-#define _DARWIN_NO_64_BIT_INODE | ||
+# include <sys/types.h> | ||
+# if __DARWIN_ONLY_64_BIT_INO_T | ||
+# define _DARWIN_USE_64_BIT_INODE | ||
+# else | ||
+# define _DARWIN_NO_64_BIT_INODE | ||
+# endif | ||
#endif | ||
|
||
#include "config.h" | ||
diff --git a/libfakeroot.c b/libfakeroot.c | ||
index c967d5d..836337d 100644 | ||
--- a/libfakeroot.c | ||
+++ b/libfakeroot.c | ||
@@ -38,7 +38,12 @@ | ||
In this file, we want 'struct stat' to have a 32-bit 'ino_t'. | ||
We use 'struct stat64' when we need a 64-bit 'ino_t'. | ||
*/ | ||
-#define _DARWIN_NO_64_BIT_INODE | ||
+# include <sys/types.h> | ||
+# if __DARWIN_ONLY_64_BIT_INO_T | ||
+# define _DARWIN_USE_64_BIT_INODE | ||
+# else | ||
+# define _DARWIN_NO_64_BIT_INODE | ||
+# endif | ||
|
||
/* The helper _unix2003 version of this file calls a few functions in this file | ||
that are marked with static_nonapple so that needs to become private instead | ||
diff --git a/libfakeroot_unix2003.c b/libfakeroot_unix2003.c | ||
index e1e19b6..f32bfec 100644 | ||
--- a/libfakeroot_unix2003.c | ||
+++ b/libfakeroot_unix2003.c | ||
@@ -18,7 +18,11 @@ | ||
In this file, we want 'struct stat' to have a 32-bit 'ino_t'. | ||
We use 'struct stat64' when we need a 64-bit 'ino_t'. | ||
*/ | ||
-#define _DARWIN_NO_64_BIT_INODE | ||
+# if __DARWIN_ONLY_64_BIT_INO_T | ||
+# define _DARWIN_USE_64_BIT_INODE | ||
+# else | ||
+# define _DARWIN_NO_64_BIT_INODE | ||
+# endif | ||
|
||
/* | ||
This file is for 32-bit symbols which have the "$UNIX2003" version, i.e. |