frida 16.2.1 → 16.2.2

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.
Files changed (386) hide show
  1. package/BSDmakefile +6 -0
  2. package/Makefile +16 -0
  3. package/README.md +14 -11
  4. package/configure +18 -0
  5. package/configure.bat +22 -0
  6. package/dist/native.js +0 -8
  7. package/lib/application.ts +98 -0
  8. package/lib/authentication.ts +3 -0
  9. package/lib/build.py +50 -0
  10. package/lib/bus.ts +30 -0
  11. package/lib/cancellable.ts +33 -0
  12. package/lib/child.ts +15 -0
  13. package/lib/crash.ts +11 -0
  14. package/lib/device.ts +329 -0
  15. package/lib/device_manager.ts +69 -0
  16. package/lib/endpoint_parameters.ts +56 -0
  17. package/lib/icon.ts +15 -0
  18. package/lib/index.ts +311 -0
  19. package/lib/iostream.ts +78 -0
  20. package/lib/meson.build +53 -0
  21. package/lib/native.ts +9 -0
  22. package/lib/portal_membership.ts +10 -0
  23. package/lib/portal_service.ts +105 -0
  24. package/lib/process.ts +57 -0
  25. package/lib/relay.ts +44 -0
  26. package/lib/script.ts +352 -0
  27. package/lib/session.ts +113 -0
  28. package/lib/signals.ts +45 -0
  29. package/lib/socket_address.ts +35 -0
  30. package/lib/spawn.ts +4 -0
  31. package/lib/system_parameters.ts +78 -0
  32. package/make.bat +23 -0
  33. package/meson.build +160 -0
  34. package/meson.options +11 -0
  35. package/package.json +27 -6
  36. package/releng/deps.py +1133 -0
  37. package/releng/deps.toml +391 -0
  38. package/releng/devkit-assets/frida-core-example-unix.c +188 -0
  39. package/releng/devkit-assets/frida-core-example-windows.c +197 -0
  40. package/releng/devkit-assets/frida-core-example.sln +28 -0
  41. package/releng/devkit-assets/frida-core-example.vcxproj +157 -0
  42. package/releng/devkit-assets/frida-core-example.vcxproj.filters +27 -0
  43. package/releng/devkit-assets/frida-gum-example-unix.c +122 -0
  44. package/releng/devkit-assets/frida-gum-example-windows.c +132 -0
  45. package/releng/devkit-assets/frida-gum-example.sln +28 -0
  46. package/releng/devkit-assets/frida-gum-example.vcxproj +157 -0
  47. package/releng/devkit-assets/frida-gum-example.vcxproj.filters +27 -0
  48. package/releng/devkit-assets/frida-gumjs-example-unix.c +84 -0
  49. package/releng/devkit-assets/frida-gumjs-example-windows.c +91 -0
  50. package/releng/devkit-assets/frida-gumjs-example.sln +28 -0
  51. package/releng/devkit-assets/frida-gumjs-example.vcxproj +157 -0
  52. package/releng/devkit-assets/frida-gumjs-example.vcxproj.filters +27 -0
  53. package/releng/devkit.py +535 -0
  54. package/releng/env.py +420 -0
  55. package/releng/env_android.py +150 -0
  56. package/releng/env_apple.py +176 -0
  57. package/releng/env_generic.py +373 -0
  58. package/releng/frida_version.py +69 -0
  59. package/releng/machine_file.py +44 -0
  60. package/releng/machine_spec.py +290 -0
  61. package/releng/meson/meson.py +27 -0
  62. package/releng/meson/mesonbuild/__init__.py +0 -0
  63. package/releng/meson/mesonbuild/_pathlib.py +63 -0
  64. package/releng/meson/mesonbuild/_typing.py +69 -0
  65. package/releng/meson/mesonbuild/arglist.py +321 -0
  66. package/releng/meson/mesonbuild/ast/__init__.py +23 -0
  67. package/releng/meson/mesonbuild/ast/interpreter.py +441 -0
  68. package/releng/meson/mesonbuild/ast/introspection.py +374 -0
  69. package/releng/meson/mesonbuild/ast/postprocess.py +109 -0
  70. package/releng/meson/mesonbuild/ast/printer.py +620 -0
  71. package/releng/meson/mesonbuild/ast/visitor.py +161 -0
  72. package/releng/meson/mesonbuild/backend/__init__.py +0 -0
  73. package/releng/meson/mesonbuild/backend/backends.py +2047 -0
  74. package/releng/meson/mesonbuild/backend/ninjabackend.py +3808 -0
  75. package/releng/meson/mesonbuild/backend/nonebackend.py +26 -0
  76. package/releng/meson/mesonbuild/backend/vs2010backend.py +2078 -0
  77. package/releng/meson/mesonbuild/backend/vs2012backend.py +35 -0
  78. package/releng/meson/mesonbuild/backend/vs2013backend.py +34 -0
  79. package/releng/meson/mesonbuild/backend/vs2015backend.py +35 -0
  80. package/releng/meson/mesonbuild/backend/vs2017backend.py +59 -0
  81. package/releng/meson/mesonbuild/backend/vs2019backend.py +54 -0
  82. package/releng/meson/mesonbuild/backend/vs2022backend.py +54 -0
  83. package/releng/meson/mesonbuild/backend/xcodebackend.py +1781 -0
  84. package/releng/meson/mesonbuild/build.py +3249 -0
  85. package/releng/meson/mesonbuild/cargo/__init__.py +5 -0
  86. package/releng/meson/mesonbuild/cargo/builder.py +238 -0
  87. package/releng/meson/mesonbuild/cargo/cfg.py +274 -0
  88. package/releng/meson/mesonbuild/cargo/interpreter.py +733 -0
  89. package/releng/meson/mesonbuild/cargo/manifest.py +227 -0
  90. package/releng/meson/mesonbuild/cargo/version.py +95 -0
  91. package/releng/meson/mesonbuild/cmake/__init__.py +28 -0
  92. package/releng/meson/mesonbuild/cmake/common.py +331 -0
  93. package/releng/meson/mesonbuild/cmake/data/__init__.py +0 -0
  94. package/releng/meson/mesonbuild/cmake/data/preload.cmake +82 -0
  95. package/releng/meson/mesonbuild/cmake/executor.py +241 -0
  96. package/releng/meson/mesonbuild/cmake/fileapi.py +324 -0
  97. package/releng/meson/mesonbuild/cmake/generator.py +186 -0
  98. package/releng/meson/mesonbuild/cmake/interpreter.py +1267 -0
  99. package/releng/meson/mesonbuild/cmake/toolchain.py +248 -0
  100. package/releng/meson/mesonbuild/cmake/traceparser.py +814 -0
  101. package/releng/meson/mesonbuild/cmake/tracetargets.py +161 -0
  102. package/releng/meson/mesonbuild/compilers/__init__.py +86 -0
  103. package/releng/meson/mesonbuild/compilers/asm.py +307 -0
  104. package/releng/meson/mesonbuild/compilers/c.py +788 -0
  105. package/releng/meson/mesonbuild/compilers/c_function_attributes.py +143 -0
  106. package/releng/meson/mesonbuild/compilers/compilers.py +1388 -0
  107. package/releng/meson/mesonbuild/compilers/cpp.py +1035 -0
  108. package/releng/meson/mesonbuild/compilers/cs.py +136 -0
  109. package/releng/meson/mesonbuild/compilers/cuda.py +806 -0
  110. package/releng/meson/mesonbuild/compilers/cython.py +91 -0
  111. package/releng/meson/mesonbuild/compilers/d.py +861 -0
  112. package/releng/meson/mesonbuild/compilers/detect.py +1396 -0
  113. package/releng/meson/mesonbuild/compilers/fortran.py +523 -0
  114. package/releng/meson/mesonbuild/compilers/java.py +113 -0
  115. package/releng/meson/mesonbuild/compilers/mixins/__init__.py +0 -0
  116. package/releng/meson/mesonbuild/compilers/mixins/arm.py +167 -0
  117. package/releng/meson/mesonbuild/compilers/mixins/ccrx.py +113 -0
  118. package/releng/meson/mesonbuild/compilers/mixins/clang.py +170 -0
  119. package/releng/meson/mesonbuild/compilers/mixins/clike.py +1330 -0
  120. package/releng/meson/mesonbuild/compilers/mixins/compcert.py +117 -0
  121. package/releng/meson/mesonbuild/compilers/mixins/elbrus.py +93 -0
  122. package/releng/meson/mesonbuild/compilers/mixins/emscripten.py +89 -0
  123. package/releng/meson/mesonbuild/compilers/mixins/gnu.py +629 -0
  124. package/releng/meson/mesonbuild/compilers/mixins/intel.py +167 -0
  125. package/releng/meson/mesonbuild/compilers/mixins/islinker.py +120 -0
  126. package/releng/meson/mesonbuild/compilers/mixins/metrowerks.py +279 -0
  127. package/releng/meson/mesonbuild/compilers/mixins/pgi.py +88 -0
  128. package/releng/meson/mesonbuild/compilers/mixins/ti.py +130 -0
  129. package/releng/meson/mesonbuild/compilers/mixins/visualstudio.py +458 -0
  130. package/releng/meson/mesonbuild/compilers/mixins/xc16.py +111 -0
  131. package/releng/meson/mesonbuild/compilers/objc.py +120 -0
  132. package/releng/meson/mesonbuild/compilers/objcpp.py +102 -0
  133. package/releng/meson/mesonbuild/compilers/rust.py +230 -0
  134. package/releng/meson/mesonbuild/compilers/swift.py +131 -0
  135. package/releng/meson/mesonbuild/compilers/vala.py +121 -0
  136. package/releng/meson/mesonbuild/coredata.py +1532 -0
  137. package/releng/meson/mesonbuild/dependencies/__init__.py +252 -0
  138. package/releng/meson/mesonbuild/dependencies/base.py +663 -0
  139. package/releng/meson/mesonbuild/dependencies/boost.py +1083 -0
  140. package/releng/meson/mesonbuild/dependencies/cmake.py +656 -0
  141. package/releng/meson/mesonbuild/dependencies/coarrays.py +80 -0
  142. package/releng/meson/mesonbuild/dependencies/configtool.py +163 -0
  143. package/releng/meson/mesonbuild/dependencies/cuda.py +295 -0
  144. package/releng/meson/mesonbuild/dependencies/data/CMakeLists.txt +102 -0
  145. package/releng/meson/mesonbuild/dependencies/data/CMakeListsLLVM.txt +204 -0
  146. package/releng/meson/mesonbuild/dependencies/data/CMakePathInfo.txt +31 -0
  147. package/releng/meson/mesonbuild/dependencies/data/__init__.py +0 -0
  148. package/releng/meson/mesonbuild/dependencies/detect.py +225 -0
  149. package/releng/meson/mesonbuild/dependencies/dev.py +707 -0
  150. package/releng/meson/mesonbuild/dependencies/dub.py +424 -0
  151. package/releng/meson/mesonbuild/dependencies/factory.py +146 -0
  152. package/releng/meson/mesonbuild/dependencies/framework.py +111 -0
  153. package/releng/meson/mesonbuild/dependencies/hdf5.py +168 -0
  154. package/releng/meson/mesonbuild/dependencies/misc.py +618 -0
  155. package/releng/meson/mesonbuild/dependencies/mpi.py +231 -0
  156. package/releng/meson/mesonbuild/dependencies/pkgconfig.py +570 -0
  157. package/releng/meson/mesonbuild/dependencies/platform.py +52 -0
  158. package/releng/meson/mesonbuild/dependencies/python.py +431 -0
  159. package/releng/meson/mesonbuild/dependencies/qt.py +484 -0
  160. package/releng/meson/mesonbuild/dependencies/scalapack.py +142 -0
  161. package/releng/meson/mesonbuild/dependencies/ui.py +281 -0
  162. package/releng/meson/mesonbuild/depfile.py +82 -0
  163. package/releng/meson/mesonbuild/envconfig.py +480 -0
  164. package/releng/meson/mesonbuild/environment.py +987 -0
  165. package/releng/meson/mesonbuild/interpreter/__init__.py +47 -0
  166. package/releng/meson/mesonbuild/interpreter/compiler.py +900 -0
  167. package/releng/meson/mesonbuild/interpreter/dependencyfallbacks.py +386 -0
  168. package/releng/meson/mesonbuild/interpreter/interpreter.py +3595 -0
  169. package/releng/meson/mesonbuild/interpreter/interpreterobjects.py +1096 -0
  170. package/releng/meson/mesonbuild/interpreter/kwargs.py +479 -0
  171. package/releng/meson/mesonbuild/interpreter/mesonmain.py +487 -0
  172. package/releng/meson/mesonbuild/interpreter/primitives/__init__.py +29 -0
  173. package/releng/meson/mesonbuild/interpreter/primitives/array.py +108 -0
  174. package/releng/meson/mesonbuild/interpreter/primitives/boolean.py +52 -0
  175. package/releng/meson/mesonbuild/interpreter/primitives/dict.py +88 -0
  176. package/releng/meson/mesonbuild/interpreter/primitives/integer.py +86 -0
  177. package/releng/meson/mesonbuild/interpreter/primitives/range.py +38 -0
  178. package/releng/meson/mesonbuild/interpreter/primitives/string.py +247 -0
  179. package/releng/meson/mesonbuild/interpreter/type_checking.py +853 -0
  180. package/releng/meson/mesonbuild/interpreterbase/__init__.py +126 -0
  181. package/releng/meson/mesonbuild/interpreterbase/_unholder.py +25 -0
  182. package/releng/meson/mesonbuild/interpreterbase/baseobjects.py +174 -0
  183. package/releng/meson/mesonbuild/interpreterbase/decorators.py +806 -0
  184. package/releng/meson/mesonbuild/interpreterbase/disabler.py +35 -0
  185. package/releng/meson/mesonbuild/interpreterbase/exceptions.py +22 -0
  186. package/releng/meson/mesonbuild/interpreterbase/helpers.py +67 -0
  187. package/releng/meson/mesonbuild/interpreterbase/interpreterbase.py +665 -0
  188. package/releng/meson/mesonbuild/interpreterbase/operator.py +32 -0
  189. package/releng/meson/mesonbuild/linkers/__init__.py +20 -0
  190. package/releng/meson/mesonbuild/linkers/base.py +39 -0
  191. package/releng/meson/mesonbuild/linkers/detect.py +229 -0
  192. package/releng/meson/mesonbuild/linkers/linkers.py +1614 -0
  193. package/releng/meson/mesonbuild/mcompile.py +380 -0
  194. package/releng/meson/mesonbuild/mconf.py +368 -0
  195. package/releng/meson/mesonbuild/mdevenv.py +234 -0
  196. package/releng/meson/mesonbuild/mdist.py +376 -0
  197. package/releng/meson/mesonbuild/mesondata.py +38 -0
  198. package/releng/meson/mesonbuild/mesonlib.py +23 -0
  199. package/releng/meson/mesonbuild/mesonmain.py +289 -0
  200. package/releng/meson/mesonbuild/minit.py +204 -0
  201. package/releng/meson/mesonbuild/minstall.py +864 -0
  202. package/releng/meson/mesonbuild/mintro.py +667 -0
  203. package/releng/meson/mesonbuild/mlog.py +542 -0
  204. package/releng/meson/mesonbuild/modules/__init__.py +270 -0
  205. package/releng/meson/mesonbuild/modules/cmake.py +442 -0
  206. package/releng/meson/mesonbuild/modules/cuda.py +377 -0
  207. package/releng/meson/mesonbuild/modules/dlang.py +117 -0
  208. package/releng/meson/mesonbuild/modules/external_project.py +306 -0
  209. package/releng/meson/mesonbuild/modules/fs.py +323 -0
  210. package/releng/meson/mesonbuild/modules/gnome.py +2215 -0
  211. package/releng/meson/mesonbuild/modules/hotdoc.py +487 -0
  212. package/releng/meson/mesonbuild/modules/i18n.py +405 -0
  213. package/releng/meson/mesonbuild/modules/icestorm.py +123 -0
  214. package/releng/meson/mesonbuild/modules/java.py +112 -0
  215. package/releng/meson/mesonbuild/modules/keyval.py +65 -0
  216. package/releng/meson/mesonbuild/modules/modtest.py +33 -0
  217. package/releng/meson/mesonbuild/modules/pkgconfig.py +744 -0
  218. package/releng/meson/mesonbuild/modules/python.py +556 -0
  219. package/releng/meson/mesonbuild/modules/python3.py +85 -0
  220. package/releng/meson/mesonbuild/modules/qt.py +621 -0
  221. package/releng/meson/mesonbuild/modules/qt4.py +23 -0
  222. package/releng/meson/mesonbuild/modules/qt5.py +23 -0
  223. package/releng/meson/mesonbuild/modules/qt6.py +22 -0
  224. package/releng/meson/mesonbuild/modules/rust.py +355 -0
  225. package/releng/meson/mesonbuild/modules/simd.py +114 -0
  226. package/releng/meson/mesonbuild/modules/sourceset.py +291 -0
  227. package/releng/meson/mesonbuild/modules/wayland.py +151 -0
  228. package/releng/meson/mesonbuild/modules/windows.py +207 -0
  229. package/releng/meson/mesonbuild/mparser.py +1114 -0
  230. package/releng/meson/mesonbuild/msetup.py +365 -0
  231. package/releng/meson/mesonbuild/msubprojects.py +764 -0
  232. package/releng/meson/mesonbuild/mtest.py +2201 -0
  233. package/releng/meson/mesonbuild/munstable_coredata.py +107 -0
  234. package/releng/meson/mesonbuild/optinterpreter.py +276 -0
  235. package/releng/meson/mesonbuild/programs.py +367 -0
  236. package/releng/meson/mesonbuild/rewriter.py +1075 -0
  237. package/releng/meson/mesonbuild/scripts/__init__.py +10 -0
  238. package/releng/meson/mesonbuild/scripts/clangformat.py +55 -0
  239. package/releng/meson/mesonbuild/scripts/clangtidy.py +30 -0
  240. package/releng/meson/mesonbuild/scripts/cleantrees.py +35 -0
  241. package/releng/meson/mesonbuild/scripts/cmake_run_ctgt.py +103 -0
  242. package/releng/meson/mesonbuild/scripts/cmd_or_ps.ps1 +17 -0
  243. package/releng/meson/mesonbuild/scripts/copy.py +19 -0
  244. package/releng/meson/mesonbuild/scripts/coverage.py +214 -0
  245. package/releng/meson/mesonbuild/scripts/delwithsuffix.py +27 -0
  246. package/releng/meson/mesonbuild/scripts/depfixer.py +495 -0
  247. package/releng/meson/mesonbuild/scripts/depscan.py +198 -0
  248. package/releng/meson/mesonbuild/scripts/dirchanger.py +20 -0
  249. package/releng/meson/mesonbuild/scripts/env2mfile.py +402 -0
  250. package/releng/meson/mesonbuild/scripts/externalproject.py +106 -0
  251. package/releng/meson/mesonbuild/scripts/gettext.py +86 -0
  252. package/releng/meson/mesonbuild/scripts/gtkdochelper.py +286 -0
  253. package/releng/meson/mesonbuild/scripts/hotdochelper.py +40 -0
  254. package/releng/meson/mesonbuild/scripts/itstool.py +77 -0
  255. package/releng/meson/mesonbuild/scripts/meson_exe.py +115 -0
  256. package/releng/meson/mesonbuild/scripts/msgfmthelper.py +29 -0
  257. package/releng/meson/mesonbuild/scripts/pycompile.py +54 -0
  258. package/releng/meson/mesonbuild/scripts/python_info.py +121 -0
  259. package/releng/meson/mesonbuild/scripts/regen_checker.py +55 -0
  260. package/releng/meson/mesonbuild/scripts/run_tool.py +58 -0
  261. package/releng/meson/mesonbuild/scripts/scanbuild.py +57 -0
  262. package/releng/meson/mesonbuild/scripts/symbolextractor.py +322 -0
  263. package/releng/meson/mesonbuild/scripts/tags.py +44 -0
  264. package/releng/meson/mesonbuild/scripts/test_loaded_modules.py +14 -0
  265. package/releng/meson/mesonbuild/scripts/uninstall.py +41 -0
  266. package/releng/meson/mesonbuild/scripts/vcstagger.py +35 -0
  267. package/releng/meson/mesonbuild/scripts/yasm.py +24 -0
  268. package/releng/meson/mesonbuild/templates/__init__.py +0 -0
  269. package/releng/meson/mesonbuild/templates/cpptemplates.py +143 -0
  270. package/releng/meson/mesonbuild/templates/cstemplates.py +90 -0
  271. package/releng/meson/mesonbuild/templates/ctemplates.py +126 -0
  272. package/releng/meson/mesonbuild/templates/cudatemplates.py +143 -0
  273. package/releng/meson/mesonbuild/templates/dlangtemplates.py +109 -0
  274. package/releng/meson/mesonbuild/templates/fortrantemplates.py +101 -0
  275. package/releng/meson/mesonbuild/templates/javatemplates.py +94 -0
  276. package/releng/meson/mesonbuild/templates/mesontemplates.py +70 -0
  277. package/releng/meson/mesonbuild/templates/objcpptemplates.py +126 -0
  278. package/releng/meson/mesonbuild/templates/objctemplates.py +126 -0
  279. package/releng/meson/mesonbuild/templates/rusttemplates.py +79 -0
  280. package/releng/meson/mesonbuild/templates/samplefactory.py +41 -0
  281. package/releng/meson/mesonbuild/templates/sampleimpl.py +160 -0
  282. package/releng/meson/mesonbuild/templates/valatemplates.py +82 -0
  283. package/releng/meson/mesonbuild/utils/__init__.py +0 -0
  284. package/releng/meson/mesonbuild/utils/core.py +166 -0
  285. package/releng/meson/mesonbuild/utils/platform.py +27 -0
  286. package/releng/meson/mesonbuild/utils/posix.py +32 -0
  287. package/releng/meson/mesonbuild/utils/universal.py +2445 -0
  288. package/releng/meson/mesonbuild/utils/vsenv.py +126 -0
  289. package/releng/meson/mesonbuild/utils/win32.py +29 -0
  290. package/releng/meson/mesonbuild/wrap/__init__.py +59 -0
  291. package/releng/meson/mesonbuild/wrap/wrap.py +846 -0
  292. package/releng/meson/mesonbuild/wrap/wraptool.py +198 -0
  293. package/releng/meson-scripts/BSDmakefile +6 -0
  294. package/releng/meson-scripts/Makefile +16 -0
  295. package/releng/meson-scripts/configure +18 -0
  296. package/releng/meson-scripts/configure.bat +22 -0
  297. package/releng/meson-scripts/make.bat +23 -0
  298. package/releng/meson_configure.py +506 -0
  299. package/releng/meson_make.py +131 -0
  300. package/releng/mkdevkit.py +107 -0
  301. package/releng/mkfatmacho.py +54 -0
  302. package/releng/post-process-oabi.py +97 -0
  303. package/releng/progress.py +14 -0
  304. package/releng/sync-from-upstream.py +185 -0
  305. package/releng/tomlkit/tomlkit/__init__.py +59 -0
  306. package/releng/tomlkit/tomlkit/_compat.py +22 -0
  307. package/releng/tomlkit/tomlkit/_types.py +83 -0
  308. package/releng/tomlkit/tomlkit/_utils.py +158 -0
  309. package/releng/tomlkit/tomlkit/api.py +308 -0
  310. package/releng/tomlkit/tomlkit/container.py +875 -0
  311. package/releng/tomlkit/tomlkit/exceptions.py +227 -0
  312. package/releng/tomlkit/tomlkit/items.py +1967 -0
  313. package/releng/tomlkit/tomlkit/parser.py +1141 -0
  314. package/releng/tomlkit/tomlkit/py.typed +0 -0
  315. package/releng/tomlkit/tomlkit/source.py +180 -0
  316. package/releng/tomlkit/tomlkit/toml_char.py +52 -0
  317. package/releng/tomlkit/tomlkit/toml_document.py +7 -0
  318. package/releng/tomlkit/tomlkit/toml_file.py +58 -0
  319. package/releng/winenv.py +140 -0
  320. package/scripts/adjust-version.py +19 -0
  321. package/scripts/detect-version.py +40 -0
  322. package/scripts/fetch-abi-bits.py +343 -0
  323. package/scripts/install.js +23 -0
  324. package/scripts/package.py +15 -0
  325. package/src/addon.cc +76 -0
  326. package/src/application.cc +148 -0
  327. package/src/application.h +31 -0
  328. package/src/authentication.cc +174 -0
  329. package/src/authentication.h +24 -0
  330. package/src/bus.cc +167 -0
  331. package/src/bus.h +33 -0
  332. package/src/cancellable.cc +117 -0
  333. package/src/cancellable.h +31 -0
  334. package/src/child.cc +150 -0
  335. package/src/child.h +32 -0
  336. package/src/crash.cc +122 -0
  337. package/src/crash.h +30 -0
  338. package/src/device.cc +1302 -0
  339. package/src/device.h +55 -0
  340. package/src/device_manager.cc +362 -0
  341. package/src/device_manager.h +35 -0
  342. package/src/endpoint_parameters.cc +171 -0
  343. package/src/endpoint_parameters.h +28 -0
  344. package/src/glib_context.cc +62 -0
  345. package/src/glib_context.h +29 -0
  346. package/src/glib_object.cc +25 -0
  347. package/src/glib_object.h +37 -0
  348. package/src/iostream.cc +247 -0
  349. package/src/iostream.h +30 -0
  350. package/src/meson.build +26 -0
  351. package/src/operation.h +94 -0
  352. package/src/portal_membership.cc +100 -0
  353. package/src/portal_membership.h +26 -0
  354. package/src/portal_service.cc +401 -0
  355. package/src/portal_service.h +40 -0
  356. package/src/process.cc +135 -0
  357. package/src/process.h +30 -0
  358. package/src/relay.cc +139 -0
  359. package/src/relay.h +31 -0
  360. package/src/runtime.cc +443 -0
  361. package/src/runtime.h +64 -0
  362. package/src/script.cc +301 -0
  363. package/src/script.h +36 -0
  364. package/src/session.cc +860 -0
  365. package/src/session.h +42 -0
  366. package/src/signals.cc +334 -0
  367. package/src/signals.h +47 -0
  368. package/src/spawn.cc +95 -0
  369. package/src/spawn.h +27 -0
  370. package/src/usage_monitor.h +117 -0
  371. package/src/uv_context.cc +118 -0
  372. package/src/uv_context.h +40 -0
  373. package/src/win_delay_load_hook.cc +63 -0
  374. package/subprojects/frida-core.wrap +8 -0
  375. package/subprojects/nan.wrap +9 -0
  376. package/subprojects/packagefiles/nan.patch +13 -0
  377. package/test/data/index.ts +13 -0
  378. package/test/data/unixvictim-linux-x86 +0 -0
  379. package/test/data/unixvictim-linux-x86_64 +0 -0
  380. package/test/data/unixvictim-macos +0 -0
  381. package/test/device.ts +27 -0
  382. package/test/device_manager.ts +16 -0
  383. package/test/labrat.ts +32 -0
  384. package/test/script.ts +176 -0
  385. package/test/session.ts +73 -0
  386. package/tsconfig.json +18 -0
@@ -0,0 +1,167 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2012-2020 Meson development team
3
+
4
+ from __future__ import annotations
5
+
6
+ """Representations specific to the arm family of compilers."""
7
+
8
+ import os
9
+ import typing as T
10
+
11
+ from ... import mesonlib
12
+ from ...linkers.linkers import ArmClangDynamicLinker
13
+ from ...mesonlib import OptionKey
14
+ from ..compilers import clike_debug_args
15
+ from .clang import clang_color_args
16
+
17
+ if T.TYPE_CHECKING:
18
+ from ...environment import Environment
19
+ from ...compilers.compilers import Compiler
20
+ else:
21
+ # This is a bit clever, for mypy we pretend that these mixins descend from
22
+ # Compiler, so we get all of the methods and attributes defined for us, but
23
+ # for runtime we make them descend from object (which all classes normally
24
+ # do). This gives up DRYer type checking, with no runtime impact
25
+ Compiler = object
26
+
27
+ arm_optimization_args: T.Dict[str, T.List[str]] = {
28
+ 'plain': [],
29
+ '0': ['-O0'],
30
+ 'g': ['-g'],
31
+ '1': ['-O1'],
32
+ '2': [], # Compiler defaults to -O2
33
+ '3': ['-O3', '-Otime'],
34
+ 's': ['-O3'], # Compiler defaults to -Ospace
35
+ }
36
+
37
+ armclang_optimization_args: T.Dict[str, T.List[str]] = {
38
+ 'plain': [],
39
+ '0': [], # Compiler defaults to -O0
40
+ 'g': ['-g'],
41
+ '1': ['-O1'],
42
+ '2': ['-O2'],
43
+ '3': ['-O3'],
44
+ 's': ['-Oz']
45
+ }
46
+
47
+
48
+ class ArmCompiler(Compiler):
49
+
50
+ """Functionality that is common to all ARM family compilers."""
51
+
52
+ id = 'arm'
53
+
54
+ def __init__(self) -> None:
55
+ if not self.is_cross:
56
+ raise mesonlib.EnvironmentException('armcc supports only cross-compilation.')
57
+ default_warn_args: T.List[str] = []
58
+ self.warn_args = {'0': [],
59
+ '1': default_warn_args,
60
+ '2': default_warn_args + [],
61
+ '3': default_warn_args + [],
62
+ 'everything': default_warn_args + []}
63
+ # Assembly
64
+ self.can_compile_suffixes.add('s')
65
+ self.can_compile_suffixes.add('sx')
66
+
67
+ def get_pic_args(self) -> T.List[str]:
68
+ # FIXME: Add /ropi, /rwpi, /fpic etc. qualifiers to --apcs
69
+ return []
70
+
71
+ # Override CCompiler.get_always_args
72
+ def get_always_args(self) -> T.List[str]:
73
+ return []
74
+
75
+ def get_dependency_gen_args(self, outtarget: str, outfile: str) -> T.List[str]:
76
+ return ['--depend_target', outtarget, '--depend', outfile, '--depend_single_line']
77
+
78
+ def get_pch_use_args(self, pch_dir: str, header: str) -> T.List[str]:
79
+ # FIXME: Add required arguments
80
+ # NOTE from armcc user guide:
81
+ # "Support for Precompiled Header (PCH) files is deprecated from ARM Compiler 5.05
82
+ # onwards on all platforms. Note that ARM Compiler on Windows 8 never supported
83
+ # PCH files."
84
+ return []
85
+
86
+ def get_pch_suffix(self) -> str:
87
+ # NOTE from armcc user guide:
88
+ # "Support for Precompiled Header (PCH) files is deprecated from ARM Compiler 5.05
89
+ # onwards on all platforms. Note that ARM Compiler on Windows 8 never supported
90
+ # PCH files."
91
+ return 'pch'
92
+
93
+ def thread_flags(self, env: 'Environment') -> T.List[str]:
94
+ return []
95
+
96
+ def get_coverage_args(self) -> T.List[str]:
97
+ return []
98
+
99
+ def get_optimization_args(self, optimization_level: str) -> T.List[str]:
100
+ return arm_optimization_args[optimization_level]
101
+
102
+ def get_debug_args(self, is_debug: bool) -> T.List[str]:
103
+ return clike_debug_args[is_debug]
104
+
105
+ def compute_parameters_with_absolute_paths(self, parameter_list: T.List[str], build_dir: str) -> T.List[str]:
106
+ for idx, i in enumerate(parameter_list):
107
+ if i[:2] == '-I' or i[:2] == '-L':
108
+ parameter_list[idx] = i[:2] + os.path.normpath(os.path.join(build_dir, i[2:]))
109
+
110
+ return parameter_list
111
+
112
+
113
+ class ArmclangCompiler(Compiler):
114
+ '''
115
+ This is the Keil armclang.
116
+ '''
117
+
118
+ id = 'armclang'
119
+
120
+ def __init__(self) -> None:
121
+ if not self.is_cross:
122
+ raise mesonlib.EnvironmentException('armclang supports only cross-compilation.')
123
+ # Check whether 'armlink' is available in path
124
+ if not isinstance(self.linker, ArmClangDynamicLinker):
125
+ raise mesonlib.EnvironmentException(f'Unsupported Linker {self.linker.exelist}, must be armlink')
126
+ if not mesonlib.version_compare(self.version, '==' + self.linker.version):
127
+ raise mesonlib.EnvironmentException('armlink version does not match with compiler version')
128
+ self.base_options = {
129
+ OptionKey(o) for o in
130
+ ['b_pch', 'b_lto', 'b_pgo', 'b_sanitize', 'b_coverage',
131
+ 'b_ndebug', 'b_staticpic', 'b_colorout']}
132
+ # Assembly
133
+ self.can_compile_suffixes.add('s')
134
+ self.can_compile_suffixes.add('sx')
135
+
136
+ def get_pic_args(self) -> T.List[str]:
137
+ # PIC support is not enabled by default for ARM,
138
+ # if users want to use it, they need to add the required arguments explicitly
139
+ return []
140
+
141
+ def get_colorout_args(self, colortype: str) -> T.List[str]:
142
+ return clang_color_args[colortype][:]
143
+
144
+ def get_pch_suffix(self) -> str:
145
+ return 'gch'
146
+
147
+ def get_pch_use_args(self, pch_dir: str, header: str) -> T.List[str]:
148
+ # Workaround for Clang bug http://llvm.org/bugs/show_bug.cgi?id=15136
149
+ # This flag is internal to Clang (or at least not documented on the man page)
150
+ # so it might change semantics at any time.
151
+ return ['-include-pch', os.path.join(pch_dir, self.get_pch_name(header))]
152
+
153
+ def get_dependency_gen_args(self, outtarget: str, outfile: str) -> T.List[str]:
154
+ return ['-MD', '-MT', outtarget, '-MF', outfile]
155
+
156
+ def get_optimization_args(self, optimization_level: str) -> T.List[str]:
157
+ return armclang_optimization_args[optimization_level]
158
+
159
+ def get_debug_args(self, is_debug: bool) -> T.List[str]:
160
+ return clike_debug_args[is_debug]
161
+
162
+ def compute_parameters_with_absolute_paths(self, parameter_list: T.List[str], build_dir: str) -> T.List[str]:
163
+ for idx, i in enumerate(parameter_list):
164
+ if i[:2] == '-I' or i[:2] == '-L':
165
+ parameter_list[idx] = i[:2] + os.path.normpath(os.path.join(build_dir, i[2:]))
166
+
167
+ return parameter_list
@@ -0,0 +1,113 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2012-2019 The Meson development team
3
+
4
+ from __future__ import annotations
5
+
6
+ """Representations specific to the Renesas CC-RX compiler family."""
7
+
8
+ import os
9
+ import typing as T
10
+
11
+ from ...mesonlib import EnvironmentException
12
+
13
+ if T.TYPE_CHECKING:
14
+ from ...envconfig import MachineInfo
15
+ from ...environment import Environment
16
+ from ...compilers.compilers import Compiler
17
+ else:
18
+ # This is a bit clever, for mypy we pretend that these mixins descend from
19
+ # Compiler, so we get all of the methods and attributes defined for us, but
20
+ # for runtime we make them descend from object (which all classes normally
21
+ # do). This gives up DRYer type checking, with no runtime impact
22
+ Compiler = object
23
+
24
+ ccrx_optimization_args: T.Dict[str, T.List[str]] = {
25
+ '0': ['-optimize=0'],
26
+ 'g': ['-optimize=0'],
27
+ '1': ['-optimize=1'],
28
+ '2': ['-optimize=2'],
29
+ '3': ['-optimize=max'],
30
+ 's': ['-optimize=2', '-size']
31
+ }
32
+
33
+ ccrx_debug_args: T.Dict[bool, T.List[str]] = {
34
+ False: [],
35
+ True: ['-debug']
36
+ }
37
+
38
+
39
+ class CcrxCompiler(Compiler):
40
+
41
+ if T.TYPE_CHECKING:
42
+ is_cross = True
43
+ can_compile_suffixes: T.Set[str] = set()
44
+
45
+ id = 'ccrx'
46
+
47
+ def __init__(self) -> None:
48
+ if not self.is_cross:
49
+ raise EnvironmentException('ccrx supports only cross-compilation.')
50
+ # Assembly
51
+ self.can_compile_suffixes.add('src')
52
+ default_warn_args: T.List[str] = []
53
+ self.warn_args: T.Dict[str, T.List[str]] = {
54
+ '0': [],
55
+ '1': default_warn_args,
56
+ '2': default_warn_args + [],
57
+ '3': default_warn_args + [],
58
+ 'everything': default_warn_args + []}
59
+
60
+ def get_pic_args(self) -> T.List[str]:
61
+ # PIC support is not enabled by default for CCRX,
62
+ # if users want to use it, they need to add the required arguments explicitly
63
+ return []
64
+
65
+ def get_pch_suffix(self) -> str:
66
+ return 'pch'
67
+
68
+ def get_pch_use_args(self, pch_dir: str, header: str) -> T.List[str]:
69
+ return []
70
+
71
+ def thread_flags(self, env: 'Environment') -> T.List[str]:
72
+ return []
73
+
74
+ def get_coverage_args(self) -> T.List[str]:
75
+ return []
76
+
77
+ def get_no_stdinc_args(self) -> T.List[str]:
78
+ return []
79
+
80
+ def get_no_stdlib_link_args(self) -> T.List[str]:
81
+ return []
82
+
83
+ def get_optimization_args(self, optimization_level: str) -> T.List[str]:
84
+ return ccrx_optimization_args[optimization_level]
85
+
86
+ def get_debug_args(self, is_debug: bool) -> T.List[str]:
87
+ return ccrx_debug_args[is_debug]
88
+
89
+ @classmethod
90
+ def _unix_args_to_native(cls, args: T.List[str], info: MachineInfo) -> T.List[str]:
91
+ result: T.List[str] = []
92
+ for i in args:
93
+ if i.startswith('-D'):
94
+ i = '-define=' + i[2:]
95
+ if i.startswith('-I'):
96
+ i = '-include=' + i[2:]
97
+ if i.startswith('-Wl,-rpath='):
98
+ continue
99
+ elif i == '--print-search-dirs':
100
+ continue
101
+ elif i.startswith('-L'):
102
+ continue
103
+ elif not i.startswith('-lib=') and i.endswith(('.a', '.lib')):
104
+ i = '-lib=' + i
105
+ result.append(i)
106
+ return result
107
+
108
+ def compute_parameters_with_absolute_paths(self, parameter_list: T.List[str], build_dir: str) -> T.List[str]:
109
+ for idx, i in enumerate(parameter_list):
110
+ if i[:9] == '-include=':
111
+ parameter_list[idx] = i[:9] + os.path.normpath(os.path.join(build_dir, i[9:]))
112
+
113
+ return parameter_list
@@ -0,0 +1,170 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2019-2022 The meson development team
3
+
4
+ from __future__ import annotations
5
+
6
+ """Abstractions for the LLVM/Clang compiler family."""
7
+
8
+ import os
9
+ import shutil
10
+ import typing as T
11
+
12
+ from ... import mesonlib
13
+ from ...linkers.linkers import AppleDynamicLinker, ClangClDynamicLinker, LLVMDynamicLinker, GnuGoldDynamicLinker, \
14
+ MoldDynamicLinker
15
+ from ...mesonlib import OptionKey
16
+ from ..compilers import CompileCheckMode
17
+ from .gnu import GnuLikeCompiler
18
+
19
+ if T.TYPE_CHECKING:
20
+ from ...environment import Environment
21
+ from ...dependencies import Dependency # noqa: F401
22
+
23
+ clang_color_args: T.Dict[str, T.List[str]] = {
24
+ 'auto': ['-fdiagnostics-color=auto'],
25
+ 'always': ['-fdiagnostics-color=always'],
26
+ 'never': ['-fdiagnostics-color=never'],
27
+ }
28
+
29
+ clang_optimization_args: T.Dict[str, T.List[str]] = {
30
+ 'plain': [],
31
+ '0': ['-O0'],
32
+ 'g': ['-Og'],
33
+ '1': ['-O1'],
34
+ '2': ['-O2'],
35
+ '3': ['-O3'],
36
+ 's': ['-Oz'],
37
+ }
38
+
39
+ class ClangCompiler(GnuLikeCompiler):
40
+
41
+ id = 'clang'
42
+
43
+ def __init__(self, defines: T.Optional[T.Dict[str, str]]):
44
+ super().__init__()
45
+ self.defines = defines or {}
46
+ self.base_options.update(
47
+ {OptionKey('b_colorout'), OptionKey('b_lto_threads'), OptionKey('b_lto_mode'), OptionKey('b_thinlto_cache'),
48
+ OptionKey('b_thinlto_cache_dir')})
49
+
50
+ # TODO: this really should be part of the linker base_options, but
51
+ # linkers don't have base_options.
52
+ if isinstance(self.linker, AppleDynamicLinker):
53
+ self.base_options.add(OptionKey('b_bitcode'))
54
+ # All Clang backends can also do LLVM IR
55
+ self.can_compile_suffixes.add('ll')
56
+
57
+ def get_colorout_args(self, colortype: str) -> T.List[str]:
58
+ return clang_color_args[colortype][:]
59
+
60
+ def has_builtin_define(self, define: str) -> bool:
61
+ return define in self.defines
62
+
63
+ def get_builtin_define(self, define: str) -> T.Optional[str]:
64
+ return self.defines.get(define)
65
+
66
+ def get_optimization_args(self, optimization_level: str) -> T.List[str]:
67
+ return clang_optimization_args[optimization_level]
68
+
69
+ def get_pch_suffix(self) -> str:
70
+ return 'pch'
71
+
72
+ def get_pch_use_args(self, pch_dir: str, header: str) -> T.List[str]:
73
+ # Workaround for Clang bug http://llvm.org/bugs/show_bug.cgi?id=15136
74
+ # This flag is internal to Clang (or at least not documented on the man page)
75
+ # so it might change semantics at any time.
76
+ return ['-include-pch', os.path.join(pch_dir, self.get_pch_name(header))]
77
+
78
+ def get_compiler_check_args(self, mode: CompileCheckMode) -> T.List[str]:
79
+ # Clang is different than GCC, it will return True when a symbol isn't
80
+ # defined in a header. Specifically this seems to have something to do
81
+ # with functions that may be in a header on some systems, but not all of
82
+ # them. `strlcat` specifically with can trigger this.
83
+ myargs: T.List[str] = ['-Werror=implicit-function-declaration']
84
+ if mode is CompileCheckMode.COMPILE:
85
+ myargs.extend(['-Werror=unknown-warning-option', '-Werror=unused-command-line-argument'])
86
+ if mesonlib.version_compare(self.version, '>=3.6.0'):
87
+ myargs.append('-Werror=ignored-optimization-argument')
88
+ return super().get_compiler_check_args(mode) + myargs
89
+
90
+ def has_function(self, funcname: str, prefix: str, env: 'Environment', *,
91
+ extra_args: T.Optional[T.List[str]] = None,
92
+ dependencies: T.Optional[T.List['Dependency']] = None) -> T.Tuple[bool, bool]:
93
+ if extra_args is None:
94
+ extra_args = []
95
+ # Starting with XCode 8, we need to pass this to force linker
96
+ # visibility to obey OS X/iOS/tvOS minimum version targets with
97
+ # -mmacosx-version-min, -miphoneos-version-min, -mtvos-version-min etc.
98
+ # https://github.com/Homebrew/homebrew-core/issues/3727
99
+ # TODO: this really should be communicated by the linker
100
+ if isinstance(self.linker, AppleDynamicLinker) and mesonlib.version_compare(self.version, '>=8.0'):
101
+ extra_args.append('-Wl,-no_weak_imports')
102
+ return super().has_function(funcname, prefix, env, extra_args=extra_args,
103
+ dependencies=dependencies)
104
+
105
+ def openmp_flags(self) -> T.List[str]:
106
+ if mesonlib.version_compare(self.version, '>=3.8.0'):
107
+ return ['-fopenmp']
108
+ elif mesonlib.version_compare(self.version, '>=3.7.0'):
109
+ return ['-fopenmp=libomp']
110
+ else:
111
+ # Shouldn't work, but it'll be checked explicitly in the OpenMP dependency.
112
+ return []
113
+
114
+ @classmethod
115
+ def use_linker_args(cls, linker: str, version: str) -> T.List[str]:
116
+ # Clang additionally can use a linker specified as a path, which GCC
117
+ # (and other gcc-like compilers) cannot. This is because clang (being
118
+ # llvm based) is retargetable, while GCC is not.
119
+ #
120
+
121
+ # qcld: Qualcomm Snapdragon linker, based on LLVM
122
+ if linker == 'qcld':
123
+ return ['-fuse-ld=qcld']
124
+ if linker == 'mold':
125
+ return ['-fuse-ld=mold']
126
+
127
+ if shutil.which(linker):
128
+ if not shutil.which(linker):
129
+ raise mesonlib.MesonException(
130
+ f'Cannot find linker {linker}.')
131
+ return [f'-fuse-ld={linker}']
132
+ return super().use_linker_args(linker, version)
133
+
134
+ def get_has_func_attribute_extra_args(self, name: str) -> T.List[str]:
135
+ # Clang only warns about unknown or ignored attributes, so force an
136
+ # error.
137
+ return ['-Werror=attributes']
138
+
139
+ def get_coverage_link_args(self) -> T.List[str]:
140
+ return ['--coverage']
141
+
142
+ def get_lto_compile_args(self, *, threads: int = 0, mode: str = 'default') -> T.List[str]:
143
+ args: T.List[str] = []
144
+ if mode == 'thin':
145
+ # ThinLTO requires the use of gold, lld, ld64, lld-link or mold 1.1+
146
+ if isinstance(self.linker, (MoldDynamicLinker)):
147
+ # https://github.com/rui314/mold/commit/46995bcfc3e3113133620bf16445c5f13cd76a18
148
+ if not mesonlib.version_compare(self.linker.version, '>=1.1'):
149
+ raise mesonlib.MesonException("LLVM's ThinLTO requires mold 1.1+")
150
+ elif not isinstance(self.linker, (AppleDynamicLinker, ClangClDynamicLinker, LLVMDynamicLinker, GnuGoldDynamicLinker)):
151
+ raise mesonlib.MesonException(f"LLVM's ThinLTO only works with gold, lld, lld-link, ld64 or mold, not {self.linker.id}")
152
+ args.append(f'-flto={mode}')
153
+ else:
154
+ assert mode == 'default', 'someone forgot to wire something up'
155
+ args.extend(super().get_lto_compile_args(threads=threads))
156
+ return args
157
+
158
+ def get_lto_link_args(self, *, threads: int = 0, mode: str = 'default',
159
+ thinlto_cache_dir: T.Optional[str] = None) -> T.List[str]:
160
+ args = self.get_lto_compile_args(threads=threads, mode=mode)
161
+ if mode == 'thin' and thinlto_cache_dir is not None:
162
+ # We check for ThinLTO linker support above in get_lto_compile_args, and all of them support
163
+ # get_thinlto_cache_args as well
164
+ args.extend(self.linker.get_thinlto_cache_args(thinlto_cache_dir))
165
+ # In clang -flto-jobs=0 means auto, and is the default if unspecified, just like in meson
166
+ if threads > 0:
167
+ if not mesonlib.version_compare(self.version, '>=4.0.0'):
168
+ raise mesonlib.MesonException('clang support for LTO threads requires clang >=4.0')
169
+ args.append(f'-flto-jobs={threads}')
170
+ return args