Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bootstrap on Apple Silicon M1 arm64 #4

Open
lloeki opened this issue May 17, 2021 · 11 comments
Open

Bootstrap on Apple Silicon M1 arm64 #4

lloeki opened this issue May 17, 2021 · 11 comments

Comments

@lloeki
Copy link
Contributor

lloeki commented May 17, 2021

fakeroot fails to build because of a deprecation on x86_64 coming in full effect on arm64.

Skipping fakeroot, the remainder is building fine, but fakeroot is a runtime requirement for makepkg and stage 2.

gcc -DHAVE_CONFIG_H -I.     -g -O2 -c -o faked.o faked.c
In file included from faked.c:91:
./communicate.h:54:32: warning: extra tokens at end of #ifndef directive [-Wextra-tokens]
# ifndef MAC_OS_X_VERSION_10_5 1050
                               ^
                               //
./communicate.h:57:32: warning: extra tokens at end of #ifndef directive [-Wextra-tokens]
# ifndef MAC_OS_X_VERSION_10_6 1060
                               ^
                               //
In file included from faked.c:91:
In file included from ./communicate.h:84:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/types.h:75:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:555:8: error: "Can't define _DARWIN_NO_64_BIT_INODE when only 64-bit inodes are available."
#      error "Can't define _DARWIN_NO_64_BIT_INODE when only 64-bit inodes are available."
       ^
In file included from faked.c:91:
In file included from ./communicate.h:164:
./message.h:32:10: warning: 'htonll' macro redefined [-Wmacro-redefined]
# define htonll(n)  (n)
         ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h:141:9: note: previous definition is here
#define htonll(x)       __DARWIN_OSSwapInt64(x)
        ^
In file included from faked.c:91:
In file included from ./communicate.h:164:
./message.h:33:10: warning: 'ntohll' macro redefined [-Wmacro-redefined]
# define ntohll(n)  (n)
         ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h:140:9: note: previous definition is here
#define ntohll(x)       __DARWIN_OSSwapInt64(x)
        ^
In file included from faked.c:91:
./communicate.h:208:38: warning: declaration of 'struct stat64' will not be visible outside of this function [-Wvisibility]
extern void send_stat64(const struct stat64 *st, func_id_t f);
                                     ^
./communicate.h:209:36: warning: declaration of 'struct stat64' will not be visible outside of this function [-Wvisibility]
extern void send_get_stat64(struct stat64 *buf);
                                   ^
./communicate.h:210:37: warning: declaration of 'struct stat64' will not be visible outside of this function [-Wvisibility]
extern void send_get_xattr64(struct stat64 *st, xattr_args *xattr);
                                    ^
./communicate.h:216:33: warning: declaration of 'struct stat64' will not be visible outside of this function [-Wvisibility]
extern void stat64from32(struct stat64 *s64, const struct stat *s32);
                                ^
./communicate.h:217:57: warning: declaration of 'struct stat64' will not be visible outside of this function [-Wvisibility]
extern void stat32from64(struct stat *s32, const struct stat64 *s64);
                                                        ^
faked.c:790:47: warning: logical not is only applied to the left hand side of this bitwise operator [-Wlogical-not-parentheses]
        ((buf->st.mode&S_IFMT) != S_IFREG || (!st->mode&(S_IFBLK|S_IFCHR)))) {
                                              ^        ~
faked.c:790:47: note: add parentheses after the '!' to evaluate the bitwise operator first
        ((buf->st.mode&S_IFMT) != S_IFREG || (!st->mode&(S_IFBLK|S_IFCHR)))) {
                                              ^
                                               (                         )
faked.c:790:47: note: add parentheses around left hand side expression to silence this warning
        ((buf->st.mode&S_IFMT) != S_IFREG || (!st->mode&(S_IFBLK|S_IFCHR)))) {
                                              ^
                                              (        )
faked.c:1081:82: warning: format specifies type 'long' but the argument has type 'int64_t' (aka 'long long') [-Wformat]
      fprintf(stderr,"FAKEROOT: r=%i, received message type=%li, message=%i\n",r,buf.mtype,buf.id);
                                                            ~~~                  ^~~~~~~~~
                                                            %lli
11 warnings and 1 error generated.
@lloeki
Copy link
Contributor Author

lloeki commented May 17, 2021

The source has a bunch of these:

#ifdef __APPLE__
/*
   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
#endif

Locations:

$ rg DARWIN_NO_64_BIT_INODE
libfakeroot_unix2003.c
21:#define _DARWIN_NO_64_BIT_INODE

libfakeroot.c
41:#define _DARWIN_NO_64_BIT_INODE

communicate.c
27:#define _DARWIN_NO_64_BIT_INODE

faked.c
87:#define _DARWIN_NO_64_BIT_INODE

@lloeki
Copy link
Contributor Author

lloeki commented May 17, 2021

The output on x86_64 complais loudly at some deprecations dating back from 10.6:

/bin/sh ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.     -g -O2 -c -o libfakeroot.lo libfakeroot.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -g -O2 -c libfakeroot.c  -fno-common -DPIC -o .libs/libfakeroot.o
In file included from libfakeroot.c:60:
./communicate.h:54:32: warning: extra tokens at end of #ifndef directive [-Wextra-tokens]
# ifndef MAC_OS_X_VERSION_10_5 1050
                               ^
                               //
./communicate.h:57:32: warning: extra tokens at end of #ifndef directive [-Wextra-tokens]
# ifndef MAC_OS_X_VERSION_10_6 1060
                               ^
                               //
In file included from libfakeroot.c:60:
In file included from ./communicate.h:164:
./message.h:32:10: warning: 'htonll' macro redefined [-Wmacro-redefined]
# define htonll(n)  (n)
         ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h:141:9: note: previous definition is here
#define htonll(x)       __DARWIN_OSSwapInt64(x)
        ^
In file included from libfakeroot.c:60:
In file included from ./communicate.h:164:
./message.h:33:10: warning: 'ntohll' macro redefined [-Wmacro-redefined]
# define ntohll(n)  (n)
         ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h:140:9: note: previous definition is here
#define ntohll(x)       __DARWIN_OSSwapInt64(x)
        ^
In file included from libfakeroot.c:261:
./wraptmpf.h:37:10: warning: 'lstat64' is deprecated: first deprecated in macOS 10.6 [-Wdeprecated-declarations]
  return WRAP_LSTAT64 LSTAT64_ARG(ver, file_name, buf);
         ^
./config.h:323:22: note: expanded from macro 'WRAP_LSTAT64'
#define WRAP_LSTAT64 lstat64
                     ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h:426:9: note: 'lstat64' has been explicitly marked deprecated here
int     lstat64(const char *, struct stat64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
        ^
In file included from libfakeroot.c:261:
./wraptmpf.h:43:10: warning: 'stat64' is deprecated: first deprecated in macOS 10.6 [-Wdeprecated-declarations]
  return WRAP_STAT64 STAT64_ARG(ver, file_name, buf);
         ^
./config.h:317:21: note: expanded from macro 'WRAP_STAT64'
#define WRAP_STAT64 stat64
                    ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h:427:9: note: 'stat64' has been explicitly marked deprecated here
int     stat64(const char *, struct stat64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
        ^
In file included from libfakeroot.c:261:
./wraptmpf.h:49:10: warning: 'fstat64' is deprecated: first deprecated in macOS 10.6 [-Wdeprecated-declarations]
  return WRAP_FSTAT64 FSTAT64_ARG(ver, fd, buf);
         ^
./config.h:329:22: note: expanded from macro 'WRAP_FSTAT64'
#define WRAP_FSTAT64 fstat64
                     ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h:425:9: note: 'fstat64' has been explicitly marked deprecated here
int     fstat64(int, struct stat64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
        ^
In file included from libfakeroot.c:263:
./wrapstruct.h:22:36: warning: 'lstat64' is deprecated: first deprecated in macOS 10.6 [-Wdeprecated-declarations]
INTERPOSE(MY_DEF(WRAP_LSTAT64_RAW),WRAP_LSTAT64_RAW);
                                   ^
./config.h:324:26: note: expanded from macro 'WRAP_LSTAT64_RAW'
#define WRAP_LSTAT64_RAW lstat64
                         ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h:426:9: note: 'lstat64' has been explicitly marked deprecated here
int     lstat64(const char *, struct stat64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
        ^
In file included from libfakeroot.c:263:
./wrapstruct.h:23:35: warning: 'stat64' is deprecated: first deprecated in macOS 10.6 [-Wdeprecated-declarations]
INTERPOSE(MY_DEF(WRAP_STAT64_RAW),WRAP_STAT64_RAW);
                                  ^
./config.h:318:25: note: expanded from macro 'WRAP_STAT64_RAW'
#define WRAP_STAT64_RAW stat64
                        ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h:427:9: note: 'stat64' has been explicitly marked deprecated here
int     stat64(const char *, struct stat64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
        ^
In file included from libfakeroot.c:263:
./wrapstruct.h:24:36: warning: 'fstat64' is deprecated: first deprecated in macOS 10.6 [-Wdeprecated-declarations]
INTERPOSE(MY_DEF(WRAP_FSTAT64_RAW),WRAP_FSTAT64_RAW);
                                   ^
./config.h:330:26: note: expanded from macro 'WRAP_FSTAT64_RAW'
#define WRAP_FSTAT64_RAW fstat64
                         ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h:425:9: note: 'fstat64' has been explicitly marked deprecated here
int     fstat64(int, struct stat64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
        ^
10 warnings generated.
/bin/sh ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.     -g -O2 -c -o libfakeroot_inode64.lo libfakeroot_inode64.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -g -O2 -c libfakeroot_inode64.c  -fno-common -DPIC -o .libs/libfakeroot_inode64.o
In file included from libfakeroot_inode64.c:26:
./communicate.h:54:32: warning: extra tokens at end of #ifndef directive [-Wextra-tokens]
# ifndef MAC_OS_X_VERSION_10_5 1050
                               ^
                               //
./communicate.h:57:32: warning: extra tokens at end of #ifndef directive [-Wextra-tokens]
# ifndef MAC_OS_X_VERSION_10_6 1060
                               ^
                               //
In file included from libfakeroot_inode64.c:26:
In file included from ./communicate.h:164:
./message.h:32:10: warning: 'htonll' macro redefined [-Wmacro-redefined]
# define htonll(n)  (n)
         ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h:141:9: note: previous definition is here
#define htonll(x)       __DARWIN_OSSwapInt64(x)
        ^
In file included from libfakeroot_inode64.c:26:
In file included from ./communicate.h:164:
./message.h:33:10: warning: 'ntohll' macro redefined [-Wmacro-redefined]
# define ntohll(n)  (n)
         ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/_endian.h:140:9: note: previous definition is here
#define ntohll(x)       __DARWIN_OSSwapInt64(x)
        ^
In file included from libfakeroot_inode64.c:40:
./wraptmpf.h:37:10: warning: 'lstat64' is deprecated: first deprecated in macOS 10.6 [-Wdeprecated-declarations]
  return WRAP_LSTAT64 LSTAT64_ARG(ver, file_name, buf);
         ^
./config.h:323:22: note: expanded from macro 'WRAP_LSTAT64'
#define WRAP_LSTAT64 lstat64
                     ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h:426:9: note: 'lstat64' has been explicitly marked deprecated here
int     lstat64(const char *, struct stat64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
        ^
In file included from libfakeroot_inode64.c:40:
./wraptmpf.h:43:10: warning: 'stat64' is deprecated: first deprecated in macOS 10.6 [-Wdeprecated-declarations]
  return WRAP_STAT64 STAT64_ARG(ver, file_name, buf);
         ^
./config.h:317:21: note: expanded from macro 'WRAP_STAT64'
#define WRAP_STAT64 stat64
                    ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h:427:9: note: 'stat64' has been explicitly marked deprecated here
int     stat64(const char *, struct stat64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
        ^
In file included from libfakeroot_inode64.c:40:
./wraptmpf.h:49:10: warning: 'fstat64' is deprecated: first deprecated in macOS 10.6 [-Wdeprecated-declarations]
  return WRAP_FSTAT64 FSTAT64_ARG(ver, fd, buf);
         ^
./config.h:329:22: note: expanded from macro 'WRAP_FSTAT64'
#define WRAP_FSTAT64 fstat64
                     ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/stat.h:425:9: note: 'fstat64' has been explicitly marked deprecated here
int     fstat64(int, struct stat64 *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_NA, __IPHONE_NA);
        ^
7 warnings generated.

@lloeki
Copy link
Contributor Author

lloeki commented May 17, 2021

Ah, so that's about the deprecations:

The stat64 and friends functions may be deprecated as of 10.6, but they still need to be interecepted and we don't need to see the warnings about them hence the use of -Wno-deprecated-declarations.

@lloeki
Copy link
Contributor Author

lloeki commented May 17, 2021

Got fakeroot to build on arm64, with a set of lousy "what if" patches, but it then crashes with an Abort trap 6.

==> Entering fakeroot environment...
dyld: dyld std::__terminate()

/Users/lloeki/Source/github.com/archmac/bootstrap/stage1/bin/fakeroot: line 178: 21534 Abort trap: 6           FAKEROOTKEY=$FAKEROOTKEY DYLD_INSERT_LIBRARIES="$FAKEROOT_LIB" "$@"

The brutal patches:

--- communicate.h   2021-05-17 12:47:56.000000000 +0200
+++ -   2021-05-17 12:49:31.000000000 +0200
@@ -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 */
--- faked.c 2021-05-17 12:52:15.000000000 +0200
+++ -   2021-05-17 12:52:17.000000000 +0200
@@ -84,7 +84,7 @@
    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
+#define _DARWIN_USE_64_BIT_INODE
 #endif

 #include "config.h"
--- libfakeroot.c   2021-05-17 12:54:12.000000000 +0200
+++ -   2021-05-17 12:54:14.000000000 +0200
@@ -38,7 +38,7 @@
    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
+#define _DARWIN_USE_64_BIT_INODE

 /* 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
--- communicate.c   2021-05-17 12:55:13.000000000 +0200
+++ -   2021-05-17 12:55:16.000000000 +0200
@@ -24,7 +24,7 @@
    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
+#define _DARWIN_USE_64_BIT_INODE
 #endif
 
 #include "communicate.h"
--- libfakeroot_unix2003.c  2021-05-17 12:56:33.000000000 +0200
+++ -   2021-05-17 12:56:36.000000000 +0200
@@ -18,7 +18,7 @@
    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
+#define _DARWIN_USE_64_BIT_INODE
 
 /*
    This file is for 32-bit symbols which have the "$UNIX2003" version, i.e.

The macOS Console shows a Termination Reason: DYLD, [0x4] Symbol missing:

Process:               bash [21534]
Path:                  /Users/USER/*/bash
Identifier:            bash
Version:               0
Code Type:             ARM-64 (Native)
Parent Process:        bash [21519]
User ID:               501

Date/Time:             2021-05-17 13:05:49.132 +0200
OS Version:            macOS 11.3.1 (20E241)
Report Version:        12
Anonymous UUID:        3EDE24CD-5AA1-DF10-93C9-E396FECF248C


Time Awake Since Boot: 1100000 seconds

System Integrity Protection: enabled

Crashed Thread:        0

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Reason:    DYLD, [0x4] Symbol missing

Application Specific Information:
dyld: launch, loading dependent libraries
DYLD_INSERT_LIBRARIES=/Users/lloeki/Source/github.com/archmac/bootstrap/stage1/lib/libfakeroot/libfakeroot.dylib

Dyld Error Message:
  dyld std::__terminate()

Binary Images:
       0x104c44000 -        0x104d1bfff +bash (0) <E25A184C-5BFA-3CC7-A911-5517AE67F289> /Users/USER/*/bash
       0x104db0000 -        0x104db7fff +libfakeroot-0.dylib (0) <DB573396-2831-36AC-879F-C77A323D33FB> /Users/USER/*/libfakeroot-0.dylib
       0x10517c000 -        0x1051fbfff  dyld (851.27) <DB836223-E7A0-3E2C-9632-58BB44DB56E9> /usr/lib/dyld

@grawlinson
Copy link

If you need an additional tester with a M1, I can provide a bit of my time.

@lloeki
Copy link
Contributor Author

lloeki commented May 20, 2021

Thanks, not at the moment though, because it just doesn't work yet ;) But when it does, that will be quite welcome!

@xiufeiwu
Copy link

Got fakeroot to build on arm64, with a set of lousy "what if" patches, but it then crashes with an Abort trap 6.

==> Entering fakeroot environment...
dyld: dyld std::__terminate()

/Users/lloeki/Source/github.com/archmac/bootstrap/stage1/bin/fakeroot: line 178: 21534 Abort trap: 6           FAKEROOTKEY=$FAKEROOTKEY DYLD_INSERT_LIBRARIES="$FAKEROOT_LIB" "$@"

The brutal patches:

--- communicate.h   2021-05-17 12:47:56.000000000 +0200
+++ -   2021-05-17 12:49:31.000000000 +0200
@@ -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 */
--- faked.c 2021-05-17 12:52:15.000000000 +0200
+++ -   2021-05-17 12:52:17.000000000 +0200
@@ -84,7 +84,7 @@
    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
+#define _DARWIN_USE_64_BIT_INODE
 #endif

 #include "config.h"
--- libfakeroot.c   2021-05-17 12:54:12.000000000 +0200
+++ -   2021-05-17 12:54:14.000000000 +0200
@@ -38,7 +38,7 @@
    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
+#define _DARWIN_USE_64_BIT_INODE

 /* 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
--- communicate.c   2021-05-17 12:55:13.000000000 +0200
+++ -   2021-05-17 12:55:16.000000000 +0200
@@ -24,7 +24,7 @@
    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
+#define _DARWIN_USE_64_BIT_INODE
 #endif
 
 #include "communicate.h"
--- libfakeroot_unix2003.c  2021-05-17 12:56:33.000000000 +0200
+++ -   2021-05-17 12:56:36.000000000 +0200
@@ -18,7 +18,7 @@
    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
+#define _DARWIN_USE_64_BIT_INODE
 
 /*
    This file is for 32-bit symbols which have the "$UNIX2003" version, i.e.

The macOS Console shows a Termination Reason: DYLD, [0x4] Symbol missing:

Process:               bash [21534]
Path:                  /Users/USER/*/bash
Identifier:            bash
Version:               0
Code Type:             ARM-64 (Native)
Parent Process:        bash [21519]
User ID:               501

Date/Time:             2021-05-17 13:05:49.132 +0200
OS Version:            macOS 11.3.1 (20E241)
Report Version:        12
Anonymous UUID:        3EDE24CD-5AA1-DF10-93C9-E396FECF248C


Time Awake Since Boot: 1100000 seconds

System Integrity Protection: enabled

Crashed Thread:        0

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Reason:    DYLD, [0x4] Symbol missing

Application Specific Information:
dyld: launch, loading dependent libraries
DYLD_INSERT_LIBRARIES=/Users/lloeki/Source/github.com/archmac/bootstrap/stage1/lib/libfakeroot/libfakeroot.dylib

Dyld Error Message:
  dyld std::__terminate()

Binary Images:
       0x104c44000 -        0x104d1bfff +bash (0) <E25A184C-5BFA-3CC7-A911-5517AE67F289> /Users/USER/*/bash
       0x104db0000 -        0x104db7fff +libfakeroot-0.dylib (0) <DB573396-2831-36AC-879F-C77A323D33FB> /Users/USER/*/libfakeroot-0.dylib
       0x10517c000 -        0x1051fbfff  dyld (851.27) <DB836223-E7A0-3E2C-9632-58BB44DB56E9> /usr/lib/dyld

works for me when compiling openwrt on apple m1 Homebrew,many thanks.

@aparcar
Copy link

aparcar commented Nov 30, 2021

Was this sent to the upstream fakeroot repository?

@lloeki
Copy link
Contributor Author

lloeki commented Nov 30, 2021

I tried to reach out to the last known maintainer but had no answer

jow- pushed a commit to openwrt/openwrt that referenced this issue Dec 2, 2021
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>
Vladdrako pushed a commit to Vladdrako/openwrt that referenced this issue Dec 2, 2021
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>
Boos4721 pushed a commit to Boos4721/openwrt that referenced this issue Dec 3, 2021
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>
Signed-off-by: boos4721 <3.1415926535boos@gmail.com>
@svlobanov
Copy link

svlobanov commented Dec 4, 2021

@xiufeiwu @aparcar @lloeki I have prepared a patch to upstream based on this discussion: https://salsa.debian.org/clint/fakeroot/-/merge_requests/13

the PR has been merged

mackyle pushed a commit to mackyle/fakeroot that referenced this issue Dec 5, 2021
Added compatibility 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>
aiamadeus pushed a commit to immortalwrt/immortalwrt that referenced this issue Dec 5, 2021
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>
@lloeki
Copy link
Contributor Author

lloeki commented Dec 17, 2021

@svlobanov much appreciated!

jow- pushed a commit to openwrt/openwrt that referenced this issue Feb 16, 2022
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>
(cherry-picked from commit 8fedc17)
Beginner-Go pushed a commit to coolsnowwolf/lede that referenced this issue Mar 3, 2022
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>
Boos4721 pushed a commit to Boos4721/openwrt that referenced this issue Mar 5, 2022
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>
Signed-off-by: boos4721 <3.1415926535boos@gmail.com>
ArtelMike pushed a commit to ArtelMike/openwrt-1 that referenced this issue Jan 31, 2023
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>
(cherry-picked from commit ace7bd0)
mackyle pushed a commit to mackyle/fakeroot that referenced this issue Jul 13, 2023
Added compatibility 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants