From 53ebacacf93278c6e71052eb5b3708c599129e55 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Thu, 27 Jan 2022 13:20:15 +0100 Subject: [PATCH] tools/fakeroot: fix unresolved symbols on arm64 macOS The $INODE64 symbol variants are not present, since the base system always uses 64-bit file offsets Signed-off-by: Felix Fietkau --- .../patches/500-macos_arm64_compile_fix.patch | 53 +++++++++++++++---- 1 file changed, 43 insertions(+), 10 deletions(-) diff --git a/tools/fakeroot/patches/500-macos_arm64_compile_fix.patch b/tools/fakeroot/patches/500-macos_arm64_compile_fix.patch index a3731b9e995..271dceef91b 100644 --- a/tools/fakeroot/patches/500-macos_arm64_compile_fix.patch +++ b/tools/fakeroot/patches/500-macos_arm64_compile_fix.patch @@ -1,5 +1,3 @@ -diff --git a/communicate.c b/communicate.c -index e2699a2..21e5366 100644 --- a/communicate.c +++ b/communicate.c @@ -24,7 +24,12 @@ @@ -16,8 +14,6 @@ index e2699a2..21e5366 100644 #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 @@ @@ -31,8 +27,6 @@ index 3f9ca39..a586108 100644 #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 @@ @@ -49,8 +43,6 @@ index a970184..ea51a23 100644 #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 @@ @@ -67,8 +59,6 @@ index c967d5d..836337d 100644 /* 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 @@ @@ -84,3 +74,46 @@ index e1e19b6..f32bfec 100644 /* This file is for 32-bit symbols which have the "$UNIX2003" version, i.e. +--- a/libfakeroot_inode64.c ++++ b/libfakeroot_inode64.c +@@ -25,7 +25,7 @@ + #include "config.h" + #include "communicate.h" + +-#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 ++#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 && !__DARWIN_ONLY_64_BIT_INO_T + + #include + #include +--- a/wrapfunc.inp ++++ b/wrapfunc.inp +@@ -48,9 +48,11 @@ getattrlist$UNIX2003;int;(const char *pa + #endif + #endif + #if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 ++#if !__DARWIN_ONLY_64_BIT_INO_T + lstat$INODE64;int;(const char *file_name, struct stat *buf);(file_name, buf) + stat$INODE64;int;(const char *file_name, struct stat *buf);(file_name, buf) + fstat$INODE64;int;(int fd, struct stat *buf);(fd, buf) ++#endif + posix_spawn;int;(pid_t * __restrict pid, const char * __restrict path, const posix_spawn_file_actions_t *file_actions, const posix_spawnattr_t * __restrict attrp, char *const argv[ __restrict], char *const envp[ __restrict]);(pid, path, file_actions, attrp, argv, envp) + posix_spawnp;int;(pid_t * __restrict pid, const char * __restrict path, const posix_spawn_file_actions_t *file_actions, const posix_spawnattr_t * __restrict attrp, char *const argv[ __restrict], char *const envp[ __restrict]);(pid, path, file_actions, attrp, argv, envp) + #endif +@@ -232,7 +234,7 @@ facl;int;(int fd, int cmd, int cnt, void + #ifdef HAVE_FTS_READ + fts_read;FTSENT *;(FTS *ftsp);(ftsp) + #ifdef __APPLE__ +-#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 ++#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 && !__DARWIN_ONLY_64_BIT_INO_T + fts_read$INODE64;FTSENT *;(FTS *ftsp);(ftsp) + #endif + #endif /* ifdef __APPLE__ */ +@@ -240,7 +242,7 @@ fts_read$INODE64;FTSENT *;(FTS *ftsp);(f + #ifdef HAVE_FTS_CHILDREN + fts_children;FTSENT *;(FTS *ftsp, int options);(ftsp, options) + #ifdef __APPLE__ +-#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 ++#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5 && !__DARWIN_ONLY_64_BIT_INO_T + fts_children$INODE64;FTSENT *;(FTS *ftsp, int options);(ftsp, options) + #endif + #endif /* ifdef __APPLE__ */ -- 2.30.2