@@ -87,6 +87,7 @@ usage() {
87
87
echo " to preload from current dir (possibly insecure, but handy)"
88
88
echo " --fat-binary : build for both i386 and x86_64 architectures on 64-bit Macs"
89
89
echo " --fat-binary-m1 : build for both arm64e and x86_64 architectures on M1 Macs"
90
+ echo " --fat-binary-m2 : build for arm64, arm64e and x86_64 architectures on M2+ Macs"
90
91
echo " --hookmethod=dlsym|dyld hook method for osx. default: auto"
91
92
echo " if OSX >= 12 is detected, dyld method will be used if auto."
92
93
echo " --help : show this text"
@@ -102,6 +103,7 @@ spliteq() {
102
103
103
104
fat_binary=
104
105
fat_binary_m1=
106
+ fat_binary_m2=
105
107
ignore_cve=no
106
108
hookmethod=auto
107
109
@@ -118,6 +120,7 @@ parsearg() {
118
120
--hookmethod=* ) hookmethod=` spliteq $1 ` ;;
119
121
--fat-binary) fat_binary=1;;
120
122
--fat-binary-m1) fat_binary_m1=1;;
123
+ --fat-binary-m2) fat_binary_m2=1;;
121
124
--help) usage;;
122
125
esac
123
126
}
@@ -289,6 +292,12 @@ if ismac ; then
289
292
echo " FAT_LDFLAGS=-arch arm64 -arch arm64e -arch x86_64" >> config.mak
290
293
echo " FAT_BIN_LDFLAGS=-arch arm64 -arch x86_64" >> config.mak
291
294
fi
295
+ if [ " $fat_binary_m2 " = 1 ] ; then
296
+ echo " Configuring a fat binary for arm64[e] and x86_64"
297
+ echo " MAC_CFLAGS+=-arch arm64 -arch arm64e -arch x86_64" >> config.mak
298
+ echo " FAT_LDFLAGS=-arch arm64 -arch arm64e -arch x86_64" >> config.mak
299
+ echo " FAT_BIN_LDFLAGS=-arch arm64 -arch arm64e -arch x86_64" >> config.mak
300
+ fi
292
301
elif isbsd ; then
293
302
echo LIBDL=>> config.mak
294
303
echo " CFLAGS+=-DIS_BSD" >> config.mak
@@ -302,3 +311,6 @@ elif ishaiku ; then
302
311
fi
303
312
304
313
echo " Done, now run $make_cmd && $make_cmd install"
314
+ if [ " $fat_binary_m2 " = 1 ] ; then
315
+ echo " Don't forget to run csrutil disable and sudo nvram boot-args=-arm64e_preview_abi"
316
+ fi
0 commit comments