Browse Source

Add arch flag to assembler to fix build on ARM64 macOS / iOS.

bruvzg 3 years ago
parent
commit
b767d2e0fd
3 changed files with 7 additions and 2 deletions
  1. 1 2
      core/SCsub
  2. 4 0
      platform/iphone/detect.py
  3. 2 0
      platform/osx/detect.py

+ 1 - 2
core/SCsub

@@ -129,9 +129,8 @@ if env["builtin_zstd"]:
         "decompress/zstd_decompress_block.c",
         "decompress/zstd_decompress_block.c",
         "decompress/zstd_decompress.c",
         "decompress/zstd_decompress.c",
     ]
     ]
-    if env["platform"] in ["android", "linuxbsd", "osx"]:
+    if env["platform"] in ["android", "iphone", "linuxbsd", "osx"]:
         # Match platforms with ZSTD_ASM_SUPPORTED in common/portability_macros.h
         # Match platforms with ZSTD_ASM_SUPPORTED in common/portability_macros.h
-        # iOS x86_64 should be supported in theory, but it fails arm64 build, seems to use host S_compiler.
         thirdparty_zstd_sources.append("decompress/huf_decompress_amd64.S")
         thirdparty_zstd_sources.append("decompress/huf_decompress_amd64.S")
     thirdparty_zstd_sources = [thirdparty_zstd_dir + file for file in thirdparty_zstd_sources]
     thirdparty_zstd_sources = [thirdparty_zstd_dir + file for file in thirdparty_zstd_sources]
 
 

+ 4 - 0
platform/iphone/detect.py

@@ -98,10 +98,12 @@ def configure(env):
 
 
     if env["ios_simulator"]:
     if env["ios_simulator"]:
         detect_darwin_sdk_path("iphonesimulator", env)
         detect_darwin_sdk_path("iphonesimulator", env)
+        env.Append(ASFLAGS=["-mios-simulator-version-min=13.0"])
         env.Append(CCFLAGS=["-mios-simulator-version-min=13.0"])
         env.Append(CCFLAGS=["-mios-simulator-version-min=13.0"])
         env.extra_suffix = ".simulator" + env.extra_suffix
         env.extra_suffix = ".simulator" + env.extra_suffix
     else:
     else:
         detect_darwin_sdk_path("iphone", env)
         detect_darwin_sdk_path("iphone", env)
+        env.Append(ASFLAGS=["-miphoneos-version-min=11.0"])
         env.Append(CCFLAGS=["-miphoneos-version-min=11.0"])
         env.Append(CCFLAGS=["-miphoneos-version-min=11.0"])
 
 
     if env["arch"] == "x86_64":
     if env["arch"] == "x86_64":
@@ -113,6 +115,7 @@ def configure(env):
                 " -fasm-blocks -isysroot $IPHONESDK"
                 " -fasm-blocks -isysroot $IPHONESDK"
             ).split()
             ).split()
         )
         )
+        env.Append(ASFLAGS=["-arch", "x86_64"])
     elif env["arch"] == "arm64":
     elif env["arch"] == "arm64":
         env.Append(
         env.Append(
             CCFLAGS=(
             CCFLAGS=(
@@ -122,6 +125,7 @@ def configure(env):
                 " -isysroot $IPHONESDK".split()
                 " -isysroot $IPHONESDK".split()
             )
             )
         )
         )
+        env.Append(ASFLAGS=["-arch", "arm64"])
         env.Append(CPPDEFINES=["NEED_LONG_INT"])
         env.Append(CPPDEFINES=["NEED_LONG_INT"])
 
 
     # Disable exceptions on non-tools (template) builds
     # Disable exceptions on non-tools (template) builds

+ 2 - 0
platform/osx/detect.py

@@ -79,10 +79,12 @@ def configure(env):
 
 
     if env["arch"] == "arm64":
     if env["arch"] == "arm64":
         print("Building for macOS 11.0+, platform arm64.")
         print("Building for macOS 11.0+, platform arm64.")
+        env.Append(ASFLAGS=["-arch", "arm64", "-mmacosx-version-min=11.0"])
         env.Append(CCFLAGS=["-arch", "arm64", "-mmacosx-version-min=11.0"])
         env.Append(CCFLAGS=["-arch", "arm64", "-mmacosx-version-min=11.0"])
         env.Append(LINKFLAGS=["-arch", "arm64", "-mmacosx-version-min=11.0"])
         env.Append(LINKFLAGS=["-arch", "arm64", "-mmacosx-version-min=11.0"])
     else:
     else:
         print("Building for macOS 10.12+, platform x86_64.")
         print("Building for macOS 10.12+, platform x86_64.")
+        env.Append(ASFLAGS=["-arch", "x86_64", "-mmacosx-version-min=10.12"])
         env.Append(CCFLAGS=["-arch", "x86_64", "-mmacosx-version-min=10.12"])
         env.Append(CCFLAGS=["-arch", "x86_64", "-mmacosx-version-min=10.12"])
         env.Append(LINKFLAGS=["-arch", "x86_64", "-mmacosx-version-min=10.12"])
         env.Append(LINKFLAGS=["-arch", "x86_64", "-mmacosx-version-min=10.12"])