|
| 1 | +diff -ur libffi-3.4.6-orig/config.sub libffi-3.4.6/config.sub |
| 2 | +--- libffi-3.4.6-orig/config.sub 2023-10-21 13:41:22 |
| 3 | ++++ libffi-3.4.6/config.sub 2025-01-04 11:15:10 |
| 4 | +@@ -127,6 +127,8 @@ |
| 5 | + EOF |
| 6 | + IFS=$saved_IFS |
| 7 | + |
| 8 | ++abi="" |
| 9 | ++ |
| 10 | + # Separate into logical components for further validation |
| 11 | + case $1 in |
| 12 | + *-*-*-*-*) |
| 13 | +@@ -1324,6 +1326,11 @@ |
| 14 | + kernel=nto |
| 15 | + os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` |
| 16 | + ;; |
| 17 | ++ ios-macabi) |
| 18 | ++ kernel= |
| 19 | ++ os=ios |
| 20 | ++ abi="-macabi" |
| 21 | ++ ;; |
| 22 | + *-*) |
| 23 | + # shellcheck disable=SC2162 |
| 24 | + saved_IFS=$IFS |
| 25 | +@@ -1881,7 +1888,7 @@ |
| 26 | + ;; |
| 27 | + esac |
| 28 | + |
| 29 | +-echo "$cpu-$vendor-${kernel:+$kernel-}$os" |
| 30 | ++echo "$cpu-$vendor-${kernel:+$kernel-}$os${abi}" |
| 31 | + exit |
| 32 | + |
| 33 | + # Local variables: |
| 34 | +diff -ur libffi-3.4.6-orig/generate-darwin-source-and-headers.py libffi-3.4.6/generate-darwin-source-and-headers.py |
| 35 | +--- libffi-3.4.6-orig/generate-darwin-source-and-headers.py 2023-10-21 13:41:22 |
| 36 | ++++ libffi-3.4.6/generate-darwin-source-and-headers.py 2025-01-04 09:18:08 |
| 37 | +@@ -8,7 +8,7 @@ |
| 38 | + |
| 39 | + |
| 40 | + class Platform(object): |
| 41 | +- pass |
| 42 | ++ abi = None |
| 43 | + |
| 44 | + |
| 45 | + class i386_platform(Platform): |
| 46 | +@@ -153,7 +153,22 @@ |
| 47 | + arch = 'arm64_32' |
| 48 | + version_min = '-mwatchos-version-min=4.0' |
| 49 | + |
| 50 | ++class macosx_x86_64_platform(x86_64_platform): |
| 51 | ++ target = 'x86_64-apple-ios-macabi' |
| 52 | ++ directory = 'darwin_ios' |
| 53 | ++ sdk = 'macosx' |
| 54 | ++ version_min = '-mios-version-min=14.2' |
| 55 | ++ abi = 'macabi' |
| 56 | + |
| 57 | ++ |
| 58 | ++class macosx_arm64_platform(arm64_platform): |
| 59 | ++ target = 'arm64-apple-ios-macabi' |
| 60 | ++ directory = 'darwin_ios' |
| 61 | ++ sdk = 'macosx' |
| 62 | ++ version_min = '-mios-version-min=14.2' |
| 63 | ++ abi = 'macabi' |
| 64 | ++ |
| 65 | ++ |
| 66 | + def mkdir_p(path): |
| 67 | + try: |
| 68 | + os.makedirs(path) |
| 69 | +@@ -219,7 +234,7 @@ |
| 70 | + "../configure", |
| 71 | + f"--host={platform.target}", |
| 72 | + ] + ( |
| 73 | +- [] if platform.sdk == "macosx" else [f"--build={os.uname().machine}-apple-darwin"] |
| 74 | ++ [] if platform.sdk == "macosx" and platform.abi != "macabi" else [f"--build={os.uname().machine}-apple-darwin"] |
| 75 | + ), |
| 76 | + env=env |
| 77 | + ) |
| 78 | +@@ -243,16 +258,24 @@ |
| 79 | + generate_ios=True, |
| 80 | + generate_tvos=True, |
| 81 | + generate_watchos=True, |
| 82 | ++ enable_maccatalyst=True, |
| 83 | ++ enable_i386=True, |
| 84 | ++ enable_armv7=True, |
| 85 | + ): |
| 86 | + copy_files('src', 'darwin_common/src', pattern='*.c') |
| 87 | + copy_files('include', 'darwin_common/include', pattern='*.h') |
| 88 | + |
| 89 | + if generate_ios: |
| 90 | +- copy_src_platform_files(ios_simulator_i386_platform) |
| 91 | ++ if enable_i386: |
| 92 | ++ copy_src_platform_files(ios_simulator_i386_platform) |
| 93 | + copy_src_platform_files(ios_simulator_x86_64_platform) |
| 94 | + copy_src_platform_files(ios_simulator_arm64_platform) |
| 95 | +- copy_src_platform_files(ios_device_armv7_platform) |
| 96 | ++ if enable_armv7: |
| 97 | ++ copy_src_platform_files(ios_device_armv7_platform) |
| 98 | + copy_src_platform_files(ios_device_arm64_platform) |
| 99 | ++ if enable_maccatalyst: |
| 100 | ++ copy_src_platform_files(macosx_x86_64_platform) |
| 101 | ++ copy_src_platform_files(macosx_arm64_platform) |
| 102 | + if generate_osx: |
| 103 | + copy_src_platform_files(desktop_x86_64_platform) |
| 104 | + copy_src_platform_files(desktop_arm64_platform) |
| 105 | +@@ -261,20 +284,27 @@ |
| 106 | + copy_src_platform_files(tvos_simulator_arm64_platform) |
| 107 | + copy_src_platform_files(tvos_device_arm64_platform) |
| 108 | + if generate_watchos: |
| 109 | +- copy_src_platform_files(watchos_simulator_i386_platform) |
| 110 | ++ if enable_i386: |
| 111 | ++ copy_src_platform_files(watchos_simulator_i386_platform) |
| 112 | + copy_src_platform_files(watchos_simulator_x86_64_platform) |
| 113 | + copy_src_platform_files(watchos_simulator_arm64_platform) |
| 114 | +- copy_src_platform_files(watchos_device_armv7k_platform) |
| 115 | ++ if enable_armv7: |
| 116 | ++ copy_src_platform_files(watchos_device_armv7k_platform) |
| 117 | + copy_src_platform_files(watchos_device_arm64_32_platform) |
| 118 | + |
| 119 | + platform_headers = collections.defaultdict(set) |
| 120 | + |
| 121 | + if generate_ios: |
| 122 | +- build_target(ios_simulator_i386_platform, platform_headers) |
| 123 | ++ if enable_i386: |
| 124 | ++ build_target(ios_simulator_i386_platform, platform_headers) |
| 125 | + build_target(ios_simulator_x86_64_platform, platform_headers) |
| 126 | + build_target(ios_simulator_arm64_platform, platform_headers) |
| 127 | +- build_target(ios_device_armv7_platform, platform_headers) |
| 128 | ++ if enable_armv7: |
| 129 | ++ build_target(ios_device_armv7_platform, platform_headers) |
| 130 | + build_target(ios_device_arm64_platform, platform_headers) |
| 131 | ++ if enable_maccatalyst: |
| 132 | ++ build_target(macosx_x86_64_platform, platform_headers) |
| 133 | ++ build_target(macosx_arm64_platform, platform_headers) |
| 134 | + if generate_osx: |
| 135 | + build_target(desktop_x86_64_platform, platform_headers) |
| 136 | + build_target(desktop_arm64_platform, platform_headers) |
| 137 | +@@ -283,10 +313,12 @@ |
| 138 | + build_target(tvos_simulator_arm64_platform, platform_headers) |
| 139 | + build_target(tvos_device_arm64_platform, platform_headers) |
| 140 | + if generate_watchos: |
| 141 | +- build_target(watchos_simulator_i386_platform, platform_headers) |
| 142 | ++ if enable_i386: |
| 143 | ++ build_target(watchos_simulator_i386_platform, platform_headers) |
| 144 | + build_target(watchos_simulator_x86_64_platform, platform_headers) |
| 145 | + build_target(watchos_simulator_arm64_platform, platform_headers) |
| 146 | +- build_target(watchos_device_armv7k_platform, platform_headers) |
| 147 | ++ if enable_armv7: |
| 148 | ++ build_target(watchos_device_armv7k_platform, platform_headers) |
| 149 | + build_target(watchos_device_arm64_32_platform, platform_headers) |
| 150 | + |
| 151 | + mkdir_p('darwin_common/include') |
| 152 | +@@ -302,6 +334,8 @@ |
| 153 | + parser.add_argument('--only-osx', action='store_true', default=False) |
| 154 | + parser.add_argument('--only-tvos', action='store_true', default=False) |
| 155 | + parser.add_argument('--only-watchos', action='store_true', default=False) |
| 156 | ++ parser.add_argument('--disable-i386', action='store_true', default=False) |
| 157 | ++ parser.add_argument('--disable-armv7', action='store_true', default=False) |
| 158 | + args = parser.parse_args() |
| 159 | + |
| 160 | + generate_source_and_headers( |
| 161 | +@@ -309,4 +343,6 @@ |
| 162 | + generate_ios=not args.only_osx and not args.only_tvos and not args.only_watchos, |
| 163 | + generate_tvos=not args.only_ios and not args.only_osx and not args.only_watchos, |
| 164 | + generate_watchos=not args.only_ios and not args.only_osx and not args.only_tvos, |
| 165 | ++ enable_i386=not args.disable_i386, |
| 166 | ++ enable_armv7=not args.disable_armv7, |
| 167 | + ) |
0 commit comments