frida 16.6.6 → 16.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "frida",
3
- "version": "16.6.6",
3
+ "version": "16.7.0",
4
4
  "authors": [
5
5
  "Frida Developers"
6
6
  ],
package/releng/deps.toml CHANGED
@@ -102,15 +102,6 @@ dependencies = [
102
102
  """ }
103
103
  ]
104
104
 
105
- [elfutils]
106
- when = "machine.os in {'linux', 'android', 'qnx'}"
107
- name = "elfutils"
108
- version = "1284bbc128473aea220337685985d465607fbac8"
109
- url = "https://github.com/frida/elfutils.git"
110
- dependencies = [
111
- "zlib",
112
- ]
113
-
114
105
  [libdwarf]
115
106
  when = "machine.os in {'linux', 'android', 'freebsd', 'qnx'}"
116
107
  name = "libdwarf"
@@ -119,9 +110,6 @@ url = "https://github.com/frida/libdwarf.git"
119
110
  options = [
120
111
  "-Ddecompression=false",
121
112
  ]
122
- dependencies = [
123
- { id = "elfutils", when = "machine.os != 'freebsd'" },
124
- ]
125
113
 
126
114
  [xz]
127
115
  name = "XZ Utils"
@@ -214,6 +214,11 @@ def init_machine_config(machine: MachineSpec,
214
214
  if linker_flavor == "gnu-gold":
215
215
  linker_flags += ["-Wl,--icf=all"]
216
216
 
217
+ if machine.arch == "arm64be":
218
+ common_flags += ["-Wl,-dynamic-linker,/lib64/ld-linux-aarch64_be.so.1"]
219
+ elif machine.arch == "arm64beilp32":
220
+ common_flags += ["-Wl,-dynamic-linker,/libilp32/ld-linux-aarch64_be_ilp32.so.1"]
221
+
217
222
  constants = config["constants"]
218
223
  constants["common_flags"] = strv_to_meson(common_flags)
219
224
  constants["c_like_flags"] = strv_to_meson(c_like_flags)
@@ -2,6 +2,7 @@ from __future__ import annotations
2
2
  from dataclasses import dataclass
3
3
  import platform
4
4
  import re
5
+ import subprocess
5
6
  from typing import Optional
6
7
 
7
8
 
@@ -14,7 +15,22 @@ class MachineSpec:
14
15
 
15
16
  @staticmethod
16
17
  def make_from_local_system() -> MachineSpec:
17
- return MachineSpec(detect_os(), detect_arch())
18
+ os = detect_os()
19
+ arch = detect_arch()
20
+ config = None
21
+
22
+ if os == "linux":
23
+ try:
24
+ output = subprocess.run(["ldd", "--version"],
25
+ stdout=subprocess.PIPE,
26
+ stderr=subprocess.STDOUT,
27
+ encoding="utf-8").stdout
28
+ if "musl" in output:
29
+ config = "musl"
30
+ except:
31
+ pass
32
+
33
+ return MachineSpec(os, arch, config)
18
34
 
19
35
  @staticmethod
20
36
  def parse(raw_spec: str) -> MachineSpec:
@@ -47,6 +63,10 @@ class MachineSpec:
47
63
  arch = "armeabi"
48
64
  elif arch == "aarch64":
49
65
  arch = "arm64"
66
+ elif arch == "aarch64_be":
67
+ arch = "arm64be"
68
+ elif arch == "aarch64_be_ilp32":
69
+ arch = "arm64beilp32"
50
70
 
51
71
  if system.startswith("musl"):
52
72
  config = "musl"
@@ -236,29 +256,33 @@ KERNELS = {
236
256
  }
237
257
 
238
258
  CPU_FAMILIES = {
239
- "armbe8": "arm",
240
- "armeabi": "arm",
241
- "armhf": "arm",
259
+ "armbe8": "arm",
260
+ "armeabi": "arm",
261
+ "armhf": "arm",
242
262
 
243
- "arm64": "aarch64",
244
- "arm64e": "aarch64",
245
- "arm64eoabi": "aarch64",
263
+ "arm64": "aarch64",
264
+ "arm64be": "aarch64",
265
+ "arm64beilp32": "aarch64",
266
+ "arm64e": "aarch64",
267
+ "arm64eoabi": "aarch64",
246
268
 
247
- "mipsel": "mips",
248
- "mips64el": "mips64",
269
+ "mipsel": "mips",
270
+ "mips64el": "mips64",
249
271
 
250
- "powerpc": "ppc"
272
+ "powerpc": "ppc"
251
273
  }
252
274
 
253
275
  CPU_TYPES = {
254
- "arm": "armv7",
255
- "armbe8": "armv6",
256
- "armhf": "armv7hf",
257
- "armeabi": "armv7eabi",
258
-
259
- "arm64": "aarch64",
260
- "arm64e": "aarch64",
261
- "arm64eoabi": "aarch64",
276
+ "arm": "armv7",
277
+ "armbe8": "armv6",
278
+ "armhf": "armv7hf",
279
+ "armeabi": "armv7eabi",
280
+
281
+ "arm64": "aarch64",
282
+ "aarch64_be": "aarch64",
283
+ "aarch64_be_ilp32": "aarch64",
284
+ "arm64e": "aarch64",
285
+ "arm64eoabi": "aarch64",
262
286
  }
263
287
 
264
288
  CPU_TYPES_PER_OS_OVERRIDES = {
@@ -283,6 +307,8 @@ CPU_TYPES_PER_OS_OVERRIDES = {
283
307
  }
284
308
 
285
309
  BIG_ENDIAN_ARCHS = {
310
+ "arm64be",
311
+ "arm64beilp32",
286
312
  "armbe8",
287
313
  "mips",
288
314
  "mips64",
@@ -291,4 +317,4 @@ BIG_ENDIAN_ARCHS = {
291
317
  "s390x",
292
318
  }
293
319
 
294
- TARGET_TRIPLET_ARCH_PATTERN = re.compile(r"^(i.86|x86_64|arm\w*|aarch64|mips\w*|powerpc|s390x)$")
320
+ TARGET_TRIPLET_ARCH_PATTERN = re.compile(r"^(i.86|x86_64|arm\w*|aarch64(_be(_ilp32)?)?|mips\w*|powerpc|s390x)$")
@@ -49,7 +49,7 @@ def main(argv: list[str]):
49
49
  cwd=abidir,
50
50
  check=True)
51
51
 
52
- abi = subprocess.run([node, "-e", f"console.log(require('node-abi').getAbi('{target}', '{runtime}'))"],
52
+ abi = subprocess.run([node, "-e", f"import('node-abi').then(abi => {{ console.log(abi.getAbi('{target}', '{runtime}')); }})"],
53
53
  capture_output=True,
54
54
  encoding="utf-8",
55
55
  cwd=abidir,
@@ -1,6 +1,6 @@
1
1
  [wrap-git]
2
2
  url = https://github.com/frida/frida-core.git
3
- revision = 16.6.6
3
+ revision = 16.7.0
4
4
  depth = 1
5
5
 
6
6
  [provide]