frida 16.6.5 → 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 +1 -1
- package/releng/deps.toml +0 -12
- package/releng/env_generic.py +5 -0
- package/releng/machine_spec.py +45 -19
- package/scripts/fetch-abi-bits.py +1 -1
- package/subprojects/frida-core.wrap +1 -1
package/package.json
CHANGED
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"
|
package/releng/env_generic.py
CHANGED
|
@@ -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)
|
package/releng/machine_spec.py
CHANGED
|
@@ -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
|
-
|
|
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":
|
|
240
|
-
"armeabi":
|
|
241
|
-
"armhf":
|
|
259
|
+
"armbe8": "arm",
|
|
260
|
+
"armeabi": "arm",
|
|
261
|
+
"armhf": "arm",
|
|
242
262
|
|
|
243
|
-
"arm64":
|
|
244
|
-
"
|
|
245
|
-
"
|
|
263
|
+
"arm64": "aarch64",
|
|
264
|
+
"arm64be": "aarch64",
|
|
265
|
+
"arm64beilp32": "aarch64",
|
|
266
|
+
"arm64e": "aarch64",
|
|
267
|
+
"arm64eoabi": "aarch64",
|
|
246
268
|
|
|
247
|
-
"mipsel":
|
|
248
|
-
"mips64el":
|
|
269
|
+
"mipsel": "mips",
|
|
270
|
+
"mips64el": "mips64",
|
|
249
271
|
|
|
250
|
-
"powerpc":
|
|
272
|
+
"powerpc": "ppc"
|
|
251
273
|
}
|
|
252
274
|
|
|
253
275
|
CPU_TYPES = {
|
|
254
|
-
"arm":
|
|
255
|
-
"armbe8":
|
|
256
|
-
"armhf":
|
|
257
|
-
"armeabi":
|
|
258
|
-
|
|
259
|
-
"arm64":
|
|
260
|
-
"
|
|
261
|
-
"
|
|
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
|
|
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"
|
|
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,
|