frida 16.2.0 → 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.
- package/BSDmakefile +6 -0
- package/Makefile +16 -0
- package/README.md +14 -11
- package/configure +18 -0
- package/configure.bat +22 -0
- package/dist/native.js +0 -8
- package/lib/application.ts +98 -0
- package/lib/authentication.ts +3 -0
- package/lib/build.py +50 -0
- package/lib/bus.ts +30 -0
- package/lib/cancellable.ts +33 -0
- package/lib/child.ts +15 -0
- package/lib/crash.ts +11 -0
- package/lib/device.ts +329 -0
- package/lib/device_manager.ts +69 -0
- package/lib/endpoint_parameters.ts +56 -0
- package/lib/icon.ts +15 -0
- package/lib/index.ts +311 -0
- package/lib/iostream.ts +78 -0
- package/lib/meson.build +53 -0
- package/lib/native.ts +9 -0
- package/lib/portal_membership.ts +10 -0
- package/lib/portal_service.ts +105 -0
- package/lib/process.ts +57 -0
- package/lib/relay.ts +44 -0
- package/lib/script.ts +352 -0
- package/lib/session.ts +113 -0
- package/lib/signals.ts +45 -0
- package/lib/socket_address.ts +35 -0
- package/lib/spawn.ts +4 -0
- package/lib/system_parameters.ts +78 -0
- package/make.bat +23 -0
- package/meson.build +160 -0
- package/meson.options +11 -0
- package/package.json +27 -6
- package/releng/deps.py +1133 -0
- package/releng/deps.toml +391 -0
- package/releng/devkit-assets/frida-core-example-unix.c +188 -0
- package/releng/devkit-assets/frida-core-example-windows.c +197 -0
- package/releng/devkit-assets/frida-core-example.sln +28 -0
- package/releng/devkit-assets/frida-core-example.vcxproj +157 -0
- package/releng/devkit-assets/frida-core-example.vcxproj.filters +27 -0
- package/releng/devkit-assets/frida-gum-example-unix.c +122 -0
- package/releng/devkit-assets/frida-gum-example-windows.c +132 -0
- package/releng/devkit-assets/frida-gum-example.sln +28 -0
- package/releng/devkit-assets/frida-gum-example.vcxproj +157 -0
- package/releng/devkit-assets/frida-gum-example.vcxproj.filters +27 -0
- package/releng/devkit-assets/frida-gumjs-example-unix.c +84 -0
- package/releng/devkit-assets/frida-gumjs-example-windows.c +91 -0
- package/releng/devkit-assets/frida-gumjs-example.sln +28 -0
- package/releng/devkit-assets/frida-gumjs-example.vcxproj +157 -0
- package/releng/devkit-assets/frida-gumjs-example.vcxproj.filters +27 -0
- package/releng/devkit.py +535 -0
- package/releng/env.py +420 -0
- package/releng/env_android.py +150 -0
- package/releng/env_apple.py +176 -0
- package/releng/env_generic.py +373 -0
- package/releng/frida_version.py +69 -0
- package/releng/machine_file.py +44 -0
- package/releng/machine_spec.py +290 -0
- package/releng/meson/meson.py +27 -0
- package/releng/meson/mesonbuild/__init__.py +0 -0
- package/releng/meson/mesonbuild/_pathlib.py +63 -0
- package/releng/meson/mesonbuild/_typing.py +69 -0
- package/releng/meson/mesonbuild/arglist.py +321 -0
- package/releng/meson/mesonbuild/ast/__init__.py +23 -0
- package/releng/meson/mesonbuild/ast/interpreter.py +441 -0
- package/releng/meson/mesonbuild/ast/introspection.py +374 -0
- package/releng/meson/mesonbuild/ast/postprocess.py +109 -0
- package/releng/meson/mesonbuild/ast/printer.py +620 -0
- package/releng/meson/mesonbuild/ast/visitor.py +161 -0
- package/releng/meson/mesonbuild/backend/__init__.py +0 -0
- package/releng/meson/mesonbuild/backend/backends.py +2047 -0
- package/releng/meson/mesonbuild/backend/ninjabackend.py +3808 -0
- package/releng/meson/mesonbuild/backend/nonebackend.py +26 -0
- package/releng/meson/mesonbuild/backend/vs2010backend.py +2078 -0
- package/releng/meson/mesonbuild/backend/vs2012backend.py +35 -0
- package/releng/meson/mesonbuild/backend/vs2013backend.py +34 -0
- package/releng/meson/mesonbuild/backend/vs2015backend.py +35 -0
- package/releng/meson/mesonbuild/backend/vs2017backend.py +59 -0
- package/releng/meson/mesonbuild/backend/vs2019backend.py +54 -0
- package/releng/meson/mesonbuild/backend/vs2022backend.py +54 -0
- package/releng/meson/mesonbuild/backend/xcodebackend.py +1781 -0
- package/releng/meson/mesonbuild/build.py +3249 -0
- package/releng/meson/mesonbuild/cargo/__init__.py +5 -0
- package/releng/meson/mesonbuild/cargo/builder.py +238 -0
- package/releng/meson/mesonbuild/cargo/cfg.py +274 -0
- package/releng/meson/mesonbuild/cargo/interpreter.py +733 -0
- package/releng/meson/mesonbuild/cargo/manifest.py +227 -0
- package/releng/meson/mesonbuild/cargo/version.py +95 -0
- package/releng/meson/mesonbuild/cmake/__init__.py +28 -0
- package/releng/meson/mesonbuild/cmake/common.py +331 -0
- package/releng/meson/mesonbuild/cmake/data/__init__.py +0 -0
- package/releng/meson/mesonbuild/cmake/data/preload.cmake +82 -0
- package/releng/meson/mesonbuild/cmake/executor.py +241 -0
- package/releng/meson/mesonbuild/cmake/fileapi.py +324 -0
- package/releng/meson/mesonbuild/cmake/generator.py +186 -0
- package/releng/meson/mesonbuild/cmake/interpreter.py +1267 -0
- package/releng/meson/mesonbuild/cmake/toolchain.py +248 -0
- package/releng/meson/mesonbuild/cmake/traceparser.py +814 -0
- package/releng/meson/mesonbuild/cmake/tracetargets.py +161 -0
- package/releng/meson/mesonbuild/compilers/__init__.py +86 -0
- package/releng/meson/mesonbuild/compilers/asm.py +307 -0
- package/releng/meson/mesonbuild/compilers/c.py +788 -0
- package/releng/meson/mesonbuild/compilers/c_function_attributes.py +143 -0
- package/releng/meson/mesonbuild/compilers/compilers.py +1388 -0
- package/releng/meson/mesonbuild/compilers/cpp.py +1035 -0
- package/releng/meson/mesonbuild/compilers/cs.py +136 -0
- package/releng/meson/mesonbuild/compilers/cuda.py +806 -0
- package/releng/meson/mesonbuild/compilers/cython.py +91 -0
- package/releng/meson/mesonbuild/compilers/d.py +861 -0
- package/releng/meson/mesonbuild/compilers/detect.py +1396 -0
- package/releng/meson/mesonbuild/compilers/fortran.py +523 -0
- package/releng/meson/mesonbuild/compilers/java.py +113 -0
- package/releng/meson/mesonbuild/compilers/mixins/__init__.py +0 -0
- package/releng/meson/mesonbuild/compilers/mixins/arm.py +167 -0
- package/releng/meson/mesonbuild/compilers/mixins/ccrx.py +113 -0
- package/releng/meson/mesonbuild/compilers/mixins/clang.py +170 -0
- package/releng/meson/mesonbuild/compilers/mixins/clike.py +1330 -0
- package/releng/meson/mesonbuild/compilers/mixins/compcert.py +117 -0
- package/releng/meson/mesonbuild/compilers/mixins/elbrus.py +93 -0
- package/releng/meson/mesonbuild/compilers/mixins/emscripten.py +89 -0
- package/releng/meson/mesonbuild/compilers/mixins/gnu.py +629 -0
- package/releng/meson/mesonbuild/compilers/mixins/intel.py +167 -0
- package/releng/meson/mesonbuild/compilers/mixins/islinker.py +120 -0
- package/releng/meson/mesonbuild/compilers/mixins/metrowerks.py +279 -0
- package/releng/meson/mesonbuild/compilers/mixins/pgi.py +88 -0
- package/releng/meson/mesonbuild/compilers/mixins/ti.py +130 -0
- package/releng/meson/mesonbuild/compilers/mixins/visualstudio.py +458 -0
- package/releng/meson/mesonbuild/compilers/mixins/xc16.py +111 -0
- package/releng/meson/mesonbuild/compilers/objc.py +120 -0
- package/releng/meson/mesonbuild/compilers/objcpp.py +102 -0
- package/releng/meson/mesonbuild/compilers/rust.py +230 -0
- package/releng/meson/mesonbuild/compilers/swift.py +131 -0
- package/releng/meson/mesonbuild/compilers/vala.py +121 -0
- package/releng/meson/mesonbuild/coredata.py +1532 -0
- package/releng/meson/mesonbuild/dependencies/__init__.py +252 -0
- package/releng/meson/mesonbuild/dependencies/base.py +663 -0
- package/releng/meson/mesonbuild/dependencies/boost.py +1083 -0
- package/releng/meson/mesonbuild/dependencies/cmake.py +656 -0
- package/releng/meson/mesonbuild/dependencies/coarrays.py +80 -0
- package/releng/meson/mesonbuild/dependencies/configtool.py +163 -0
- package/releng/meson/mesonbuild/dependencies/cuda.py +295 -0
- package/releng/meson/mesonbuild/dependencies/data/CMakeLists.txt +102 -0
- package/releng/meson/mesonbuild/dependencies/data/CMakeListsLLVM.txt +204 -0
- package/releng/meson/mesonbuild/dependencies/data/CMakePathInfo.txt +31 -0
- package/releng/meson/mesonbuild/dependencies/data/__init__.py +0 -0
- package/releng/meson/mesonbuild/dependencies/detect.py +225 -0
- package/releng/meson/mesonbuild/dependencies/dev.py +707 -0
- package/releng/meson/mesonbuild/dependencies/dub.py +424 -0
- package/releng/meson/mesonbuild/dependencies/factory.py +146 -0
- package/releng/meson/mesonbuild/dependencies/framework.py +111 -0
- package/releng/meson/mesonbuild/dependencies/hdf5.py +168 -0
- package/releng/meson/mesonbuild/dependencies/misc.py +618 -0
- package/releng/meson/mesonbuild/dependencies/mpi.py +231 -0
- package/releng/meson/mesonbuild/dependencies/pkgconfig.py +570 -0
- package/releng/meson/mesonbuild/dependencies/platform.py +52 -0
- package/releng/meson/mesonbuild/dependencies/python.py +431 -0
- package/releng/meson/mesonbuild/dependencies/qt.py +484 -0
- package/releng/meson/mesonbuild/dependencies/scalapack.py +142 -0
- package/releng/meson/mesonbuild/dependencies/ui.py +281 -0
- package/releng/meson/mesonbuild/depfile.py +82 -0
- package/releng/meson/mesonbuild/envconfig.py +480 -0
- package/releng/meson/mesonbuild/environment.py +987 -0
- package/releng/meson/mesonbuild/interpreter/__init__.py +47 -0
- package/releng/meson/mesonbuild/interpreter/compiler.py +900 -0
- package/releng/meson/mesonbuild/interpreter/dependencyfallbacks.py +386 -0
- package/releng/meson/mesonbuild/interpreter/interpreter.py +3595 -0
- package/releng/meson/mesonbuild/interpreter/interpreterobjects.py +1096 -0
- package/releng/meson/mesonbuild/interpreter/kwargs.py +479 -0
- package/releng/meson/mesonbuild/interpreter/mesonmain.py +487 -0
- package/releng/meson/mesonbuild/interpreter/primitives/__init__.py +29 -0
- package/releng/meson/mesonbuild/interpreter/primitives/array.py +108 -0
- package/releng/meson/mesonbuild/interpreter/primitives/boolean.py +52 -0
- package/releng/meson/mesonbuild/interpreter/primitives/dict.py +88 -0
- package/releng/meson/mesonbuild/interpreter/primitives/integer.py +86 -0
- package/releng/meson/mesonbuild/interpreter/primitives/range.py +38 -0
- package/releng/meson/mesonbuild/interpreter/primitives/string.py +247 -0
- package/releng/meson/mesonbuild/interpreter/type_checking.py +853 -0
- package/releng/meson/mesonbuild/interpreterbase/__init__.py +126 -0
- package/releng/meson/mesonbuild/interpreterbase/_unholder.py +25 -0
- package/releng/meson/mesonbuild/interpreterbase/baseobjects.py +174 -0
- package/releng/meson/mesonbuild/interpreterbase/decorators.py +806 -0
- package/releng/meson/mesonbuild/interpreterbase/disabler.py +35 -0
- package/releng/meson/mesonbuild/interpreterbase/exceptions.py +22 -0
- package/releng/meson/mesonbuild/interpreterbase/helpers.py +67 -0
- package/releng/meson/mesonbuild/interpreterbase/interpreterbase.py +665 -0
- package/releng/meson/mesonbuild/interpreterbase/operator.py +32 -0
- package/releng/meson/mesonbuild/linkers/__init__.py +20 -0
- package/releng/meson/mesonbuild/linkers/base.py +39 -0
- package/releng/meson/mesonbuild/linkers/detect.py +229 -0
- package/releng/meson/mesonbuild/linkers/linkers.py +1614 -0
- package/releng/meson/mesonbuild/mcompile.py +380 -0
- package/releng/meson/mesonbuild/mconf.py +368 -0
- package/releng/meson/mesonbuild/mdevenv.py +234 -0
- package/releng/meson/mesonbuild/mdist.py +376 -0
- package/releng/meson/mesonbuild/mesondata.py +38 -0
- package/releng/meson/mesonbuild/mesonlib.py +23 -0
- package/releng/meson/mesonbuild/mesonmain.py +289 -0
- package/releng/meson/mesonbuild/minit.py +204 -0
- package/releng/meson/mesonbuild/minstall.py +864 -0
- package/releng/meson/mesonbuild/mintro.py +667 -0
- package/releng/meson/mesonbuild/mlog.py +542 -0
- package/releng/meson/mesonbuild/modules/__init__.py +270 -0
- package/releng/meson/mesonbuild/modules/cmake.py +442 -0
- package/releng/meson/mesonbuild/modules/cuda.py +377 -0
- package/releng/meson/mesonbuild/modules/dlang.py +117 -0
- package/releng/meson/mesonbuild/modules/external_project.py +306 -0
- package/releng/meson/mesonbuild/modules/fs.py +323 -0
- package/releng/meson/mesonbuild/modules/gnome.py +2215 -0
- package/releng/meson/mesonbuild/modules/hotdoc.py +487 -0
- package/releng/meson/mesonbuild/modules/i18n.py +405 -0
- package/releng/meson/mesonbuild/modules/icestorm.py +123 -0
- package/releng/meson/mesonbuild/modules/java.py +112 -0
- package/releng/meson/mesonbuild/modules/keyval.py +65 -0
- package/releng/meson/mesonbuild/modules/modtest.py +33 -0
- package/releng/meson/mesonbuild/modules/pkgconfig.py +744 -0
- package/releng/meson/mesonbuild/modules/python.py +556 -0
- package/releng/meson/mesonbuild/modules/python3.py +85 -0
- package/releng/meson/mesonbuild/modules/qt.py +621 -0
- package/releng/meson/mesonbuild/modules/qt4.py +23 -0
- package/releng/meson/mesonbuild/modules/qt5.py +23 -0
- package/releng/meson/mesonbuild/modules/qt6.py +22 -0
- package/releng/meson/mesonbuild/modules/rust.py +355 -0
- package/releng/meson/mesonbuild/modules/simd.py +114 -0
- package/releng/meson/mesonbuild/modules/sourceset.py +291 -0
- package/releng/meson/mesonbuild/modules/wayland.py +151 -0
- package/releng/meson/mesonbuild/modules/windows.py +207 -0
- package/releng/meson/mesonbuild/mparser.py +1114 -0
- package/releng/meson/mesonbuild/msetup.py +365 -0
- package/releng/meson/mesonbuild/msubprojects.py +764 -0
- package/releng/meson/mesonbuild/mtest.py +2201 -0
- package/releng/meson/mesonbuild/munstable_coredata.py +107 -0
- package/releng/meson/mesonbuild/optinterpreter.py +276 -0
- package/releng/meson/mesonbuild/programs.py +367 -0
- package/releng/meson/mesonbuild/rewriter.py +1075 -0
- package/releng/meson/mesonbuild/scripts/__init__.py +10 -0
- package/releng/meson/mesonbuild/scripts/clangformat.py +55 -0
- package/releng/meson/mesonbuild/scripts/clangtidy.py +30 -0
- package/releng/meson/mesonbuild/scripts/cleantrees.py +35 -0
- package/releng/meson/mesonbuild/scripts/cmake_run_ctgt.py +103 -0
- package/releng/meson/mesonbuild/scripts/cmd_or_ps.ps1 +17 -0
- package/releng/meson/mesonbuild/scripts/copy.py +19 -0
- package/releng/meson/mesonbuild/scripts/coverage.py +214 -0
- package/releng/meson/mesonbuild/scripts/delwithsuffix.py +27 -0
- package/releng/meson/mesonbuild/scripts/depfixer.py +495 -0
- package/releng/meson/mesonbuild/scripts/depscan.py +198 -0
- package/releng/meson/mesonbuild/scripts/dirchanger.py +20 -0
- package/releng/meson/mesonbuild/scripts/env2mfile.py +402 -0
- package/releng/meson/mesonbuild/scripts/externalproject.py +106 -0
- package/releng/meson/mesonbuild/scripts/gettext.py +86 -0
- package/releng/meson/mesonbuild/scripts/gtkdochelper.py +286 -0
- package/releng/meson/mesonbuild/scripts/hotdochelper.py +40 -0
- package/releng/meson/mesonbuild/scripts/itstool.py +77 -0
- package/releng/meson/mesonbuild/scripts/meson_exe.py +115 -0
- package/releng/meson/mesonbuild/scripts/msgfmthelper.py +29 -0
- package/releng/meson/mesonbuild/scripts/pycompile.py +54 -0
- package/releng/meson/mesonbuild/scripts/python_info.py +121 -0
- package/releng/meson/mesonbuild/scripts/regen_checker.py +55 -0
- package/releng/meson/mesonbuild/scripts/run_tool.py +58 -0
- package/releng/meson/mesonbuild/scripts/scanbuild.py +57 -0
- package/releng/meson/mesonbuild/scripts/symbolextractor.py +322 -0
- package/releng/meson/mesonbuild/scripts/tags.py +44 -0
- package/releng/meson/mesonbuild/scripts/test_loaded_modules.py +14 -0
- package/releng/meson/mesonbuild/scripts/uninstall.py +41 -0
- package/releng/meson/mesonbuild/scripts/vcstagger.py +35 -0
- package/releng/meson/mesonbuild/scripts/yasm.py +24 -0
- package/releng/meson/mesonbuild/templates/__init__.py +0 -0
- package/releng/meson/mesonbuild/templates/cpptemplates.py +143 -0
- package/releng/meson/mesonbuild/templates/cstemplates.py +90 -0
- package/releng/meson/mesonbuild/templates/ctemplates.py +126 -0
- package/releng/meson/mesonbuild/templates/cudatemplates.py +143 -0
- package/releng/meson/mesonbuild/templates/dlangtemplates.py +109 -0
- package/releng/meson/mesonbuild/templates/fortrantemplates.py +101 -0
- package/releng/meson/mesonbuild/templates/javatemplates.py +94 -0
- package/releng/meson/mesonbuild/templates/mesontemplates.py +70 -0
- package/releng/meson/mesonbuild/templates/objcpptemplates.py +126 -0
- package/releng/meson/mesonbuild/templates/objctemplates.py +126 -0
- package/releng/meson/mesonbuild/templates/rusttemplates.py +79 -0
- package/releng/meson/mesonbuild/templates/samplefactory.py +41 -0
- package/releng/meson/mesonbuild/templates/sampleimpl.py +160 -0
- package/releng/meson/mesonbuild/templates/valatemplates.py +82 -0
- package/releng/meson/mesonbuild/utils/__init__.py +0 -0
- package/releng/meson/mesonbuild/utils/core.py +166 -0
- package/releng/meson/mesonbuild/utils/platform.py +27 -0
- package/releng/meson/mesonbuild/utils/posix.py +32 -0
- package/releng/meson/mesonbuild/utils/universal.py +2445 -0
- package/releng/meson/mesonbuild/utils/vsenv.py +126 -0
- package/releng/meson/mesonbuild/utils/win32.py +29 -0
- package/releng/meson/mesonbuild/wrap/__init__.py +59 -0
- package/releng/meson/mesonbuild/wrap/wrap.py +846 -0
- package/releng/meson/mesonbuild/wrap/wraptool.py +198 -0
- package/releng/meson-scripts/BSDmakefile +6 -0
- package/releng/meson-scripts/Makefile +16 -0
- package/releng/meson-scripts/configure +18 -0
- package/releng/meson-scripts/configure.bat +22 -0
- package/releng/meson-scripts/make.bat +23 -0
- package/releng/meson_configure.py +506 -0
- package/releng/meson_make.py +131 -0
- package/releng/mkdevkit.py +107 -0
- package/releng/mkfatmacho.py +54 -0
- package/releng/post-process-oabi.py +97 -0
- package/releng/progress.py +14 -0
- package/releng/sync-from-upstream.py +185 -0
- package/releng/tomlkit/tomlkit/__init__.py +59 -0
- package/releng/tomlkit/tomlkit/_compat.py +22 -0
- package/releng/tomlkit/tomlkit/_types.py +83 -0
- package/releng/tomlkit/tomlkit/_utils.py +158 -0
- package/releng/tomlkit/tomlkit/api.py +308 -0
- package/releng/tomlkit/tomlkit/container.py +875 -0
- package/releng/tomlkit/tomlkit/exceptions.py +227 -0
- package/releng/tomlkit/tomlkit/items.py +1967 -0
- package/releng/tomlkit/tomlkit/parser.py +1141 -0
- package/releng/tomlkit/tomlkit/py.typed +0 -0
- package/releng/tomlkit/tomlkit/source.py +180 -0
- package/releng/tomlkit/tomlkit/toml_char.py +52 -0
- package/releng/tomlkit/tomlkit/toml_document.py +7 -0
- package/releng/tomlkit/tomlkit/toml_file.py +58 -0
- package/releng/winenv.py +140 -0
- package/scripts/adjust-version.py +19 -0
- package/scripts/detect-version.py +40 -0
- package/scripts/fetch-abi-bits.py +343 -0
- package/scripts/install.js +23 -0
- package/scripts/package.py +15 -0
- package/src/addon.cc +76 -0
- package/src/application.cc +148 -0
- package/src/application.h +31 -0
- package/src/authentication.cc +174 -0
- package/src/authentication.h +24 -0
- package/src/bus.cc +167 -0
- package/src/bus.h +33 -0
- package/src/cancellable.cc +117 -0
- package/src/cancellable.h +31 -0
- package/src/child.cc +150 -0
- package/src/child.h +32 -0
- package/src/crash.cc +122 -0
- package/src/crash.h +30 -0
- package/src/device.cc +1302 -0
- package/src/device.h +55 -0
- package/src/device_manager.cc +362 -0
- package/src/device_manager.h +35 -0
- package/src/endpoint_parameters.cc +171 -0
- package/src/endpoint_parameters.h +28 -0
- package/src/glib_context.cc +62 -0
- package/src/glib_context.h +29 -0
- package/src/glib_object.cc +25 -0
- package/src/glib_object.h +37 -0
- package/src/iostream.cc +247 -0
- package/src/iostream.h +30 -0
- package/src/meson.build +26 -0
- package/src/operation.h +94 -0
- package/src/portal_membership.cc +100 -0
- package/src/portal_membership.h +26 -0
- package/src/portal_service.cc +401 -0
- package/src/portal_service.h +40 -0
- package/src/process.cc +135 -0
- package/src/process.h +30 -0
- package/src/relay.cc +139 -0
- package/src/relay.h +31 -0
- package/src/runtime.cc +443 -0
- package/src/runtime.h +64 -0
- package/src/script.cc +301 -0
- package/src/script.h +36 -0
- package/src/session.cc +860 -0
- package/src/session.h +42 -0
- package/src/signals.cc +334 -0
- package/src/signals.h +47 -0
- package/src/spawn.cc +95 -0
- package/src/spawn.h +27 -0
- package/src/usage_monitor.h +117 -0
- package/src/uv_context.cc +118 -0
- package/src/uv_context.h +40 -0
- package/src/win_delay_load_hook.cc +63 -0
- package/subprojects/frida-core.wrap +8 -0
- package/subprojects/nan.wrap +9 -0
- package/subprojects/packagefiles/nan.patch +13 -0
- package/test/data/index.ts +13 -0
- package/test/data/unixvictim-linux-x86 +0 -0
- package/test/data/unixvictim-linux-x86_64 +0 -0
- package/test/data/unixvictim-macos +0 -0
- package/test/device.ts +27 -0
- package/test/device_manager.ts +16 -0
- package/test/labrat.ts +32 -0
- package/test/script.ts +176 -0
- package/test/session.ts +73 -0
- package/tsconfig.json +18 -0
|
@@ -0,0 +1,117 @@
|
|
|
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 CompCert C compiler family."""
|
|
7
|
+
|
|
8
|
+
import os
|
|
9
|
+
import re
|
|
10
|
+
import typing as T
|
|
11
|
+
|
|
12
|
+
if T.TYPE_CHECKING:
|
|
13
|
+
from ...envconfig import MachineInfo
|
|
14
|
+
from ...environment import Environment
|
|
15
|
+
from ...compilers.compilers import Compiler
|
|
16
|
+
else:
|
|
17
|
+
# This is a bit clever, for mypy we pretend that these mixins descend from
|
|
18
|
+
# Compiler, so we get all of the methods and attributes defined for us, but
|
|
19
|
+
# for runtime we make them descend from object (which all classes normally
|
|
20
|
+
# do). This gives up DRYer type checking, with no runtime impact
|
|
21
|
+
Compiler = object
|
|
22
|
+
|
|
23
|
+
ccomp_optimization_args: T.Dict[str, T.List[str]] = {
|
|
24
|
+
'plain': [],
|
|
25
|
+
'0': ['-O0'],
|
|
26
|
+
'g': ['-O0'],
|
|
27
|
+
'1': ['-O1'],
|
|
28
|
+
'2': ['-O2'],
|
|
29
|
+
'3': ['-O3'],
|
|
30
|
+
's': ['-Os']
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
ccomp_debug_args: T.Dict[bool, T.List[str]] = {
|
|
34
|
+
False: [],
|
|
35
|
+
True: ['-O0', '-g']
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
# As of CompCert 20.04, these arguments should be passed to the underlying gcc linker (via -WUl,<arg>)
|
|
39
|
+
# There are probably (many) more, but these are those used by picolibc
|
|
40
|
+
ccomp_args_to_wul: T.List[str] = [
|
|
41
|
+
r"^-ffreestanding$",
|
|
42
|
+
r"^-r$"
|
|
43
|
+
]
|
|
44
|
+
|
|
45
|
+
class CompCertCompiler(Compiler):
|
|
46
|
+
|
|
47
|
+
id = 'ccomp'
|
|
48
|
+
|
|
49
|
+
def __init__(self) -> None:
|
|
50
|
+
# Assembly
|
|
51
|
+
self.can_compile_suffixes.add('s')
|
|
52
|
+
self.can_compile_suffixes.add('sx')
|
|
53
|
+
default_warn_args: T.List[str] = []
|
|
54
|
+
self.warn_args: T.Dict[str, T.List[str]] = {
|
|
55
|
+
'0': [],
|
|
56
|
+
'1': default_warn_args,
|
|
57
|
+
'2': default_warn_args + [],
|
|
58
|
+
'3': default_warn_args + [],
|
|
59
|
+
'everything': default_warn_args + []}
|
|
60
|
+
|
|
61
|
+
def get_always_args(self) -> T.List[str]:
|
|
62
|
+
return []
|
|
63
|
+
|
|
64
|
+
def get_pic_args(self) -> T.List[str]:
|
|
65
|
+
# As of now, CompCert does not support PIC
|
|
66
|
+
return []
|
|
67
|
+
|
|
68
|
+
def get_pch_suffix(self) -> str:
|
|
69
|
+
return 'pch'
|
|
70
|
+
|
|
71
|
+
def get_pch_use_args(self, pch_dir: str, header: str) -> T.List[str]:
|
|
72
|
+
return []
|
|
73
|
+
|
|
74
|
+
@classmethod
|
|
75
|
+
def _unix_args_to_native(cls, args: T.List[str], info: MachineInfo) -> T.List[str]:
|
|
76
|
+
"Always returns a copy that can be independently mutated"
|
|
77
|
+
patched_args: T.List[str] = []
|
|
78
|
+
for arg in args:
|
|
79
|
+
added = 0
|
|
80
|
+
for ptrn in ccomp_args_to_wul:
|
|
81
|
+
if re.match(ptrn, arg):
|
|
82
|
+
patched_args.append('-WUl,' + arg)
|
|
83
|
+
added = 1
|
|
84
|
+
if not added:
|
|
85
|
+
patched_args.append(arg)
|
|
86
|
+
return patched_args
|
|
87
|
+
|
|
88
|
+
def thread_flags(self, env: 'Environment') -> T.List[str]:
|
|
89
|
+
return []
|
|
90
|
+
|
|
91
|
+
def get_preprocess_only_args(self) -> T.List[str]:
|
|
92
|
+
return ['-E']
|
|
93
|
+
|
|
94
|
+
def get_compile_only_args(self) -> T.List[str]:
|
|
95
|
+
return ['-c']
|
|
96
|
+
|
|
97
|
+
def get_coverage_args(self) -> T.List[str]:
|
|
98
|
+
return []
|
|
99
|
+
|
|
100
|
+
def get_no_stdinc_args(self) -> T.List[str]:
|
|
101
|
+
return ['-nostdinc']
|
|
102
|
+
|
|
103
|
+
def get_no_stdlib_link_args(self) -> T.List[str]:
|
|
104
|
+
return ['-nostdlib']
|
|
105
|
+
|
|
106
|
+
def get_optimization_args(self, optimization_level: str) -> T.List[str]:
|
|
107
|
+
return ccomp_optimization_args[optimization_level]
|
|
108
|
+
|
|
109
|
+
def get_debug_args(self, is_debug: bool) -> T.List[str]:
|
|
110
|
+
return ccomp_debug_args[is_debug]
|
|
111
|
+
|
|
112
|
+
def compute_parameters_with_absolute_paths(self, parameter_list: T.List[str], build_dir: str) -> T.List[str]:
|
|
113
|
+
for idx, i in enumerate(parameter_list):
|
|
114
|
+
if i[:9] == '-I':
|
|
115
|
+
parameter_list[idx] = i[:9] + os.path.normpath(os.path.join(build_dir, i[9:]))
|
|
116
|
+
|
|
117
|
+
return parameter_list
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
# Copyright © 2023 Intel Corporation
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
"""Abstractions for the Elbrus family of compilers."""
|
|
7
|
+
|
|
8
|
+
import functools
|
|
9
|
+
import os
|
|
10
|
+
import typing as T
|
|
11
|
+
import subprocess
|
|
12
|
+
import re
|
|
13
|
+
|
|
14
|
+
from .gnu import GnuLikeCompiler
|
|
15
|
+
from .gnu import gnu_optimization_args
|
|
16
|
+
from ...mesonlib import Popen_safe, OptionKey
|
|
17
|
+
|
|
18
|
+
if T.TYPE_CHECKING:
|
|
19
|
+
from ...environment import Environment
|
|
20
|
+
from ...coredata import KeyedOptionDictType
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class ElbrusCompiler(GnuLikeCompiler):
|
|
24
|
+
# Elbrus compiler is nearly like GCC, but does not support
|
|
25
|
+
# PCH, LTO, sanitizers and color output as of version 1.21.x.
|
|
26
|
+
|
|
27
|
+
id = 'lcc'
|
|
28
|
+
|
|
29
|
+
def __init__(self) -> None:
|
|
30
|
+
super().__init__()
|
|
31
|
+
self.base_options = {OptionKey(o) for o in ['b_pgo', 'b_coverage', 'b_ndebug', 'b_staticpic', 'b_lundef', 'b_asneeded']}
|
|
32
|
+
default_warn_args = ['-Wall']
|
|
33
|
+
self.warn_args = {'0': [],
|
|
34
|
+
'1': default_warn_args,
|
|
35
|
+
'2': default_warn_args + ['-Wextra'],
|
|
36
|
+
'3': default_warn_args + ['-Wextra', '-Wpedantic'],
|
|
37
|
+
'everything': default_warn_args + ['-Wextra', '-Wpedantic']}
|
|
38
|
+
|
|
39
|
+
# FIXME: use _build_wrapper to call this so that linker flags from the env
|
|
40
|
+
# get applied
|
|
41
|
+
def get_library_dirs(self, env: 'Environment', elf_class: T.Optional[int] = None) -> T.List[str]:
|
|
42
|
+
os_env = os.environ.copy()
|
|
43
|
+
os_env['LC_ALL'] = 'C'
|
|
44
|
+
stdo = Popen_safe(self.get_exelist(ccache=False) + ['--print-search-dirs'], env=os_env)[1]
|
|
45
|
+
for line in stdo.split('\n'):
|
|
46
|
+
if line.startswith('libraries:'):
|
|
47
|
+
# lcc does not include '=' in --print-search-dirs output. Also it could show nonexistent dirs.
|
|
48
|
+
libstr = line.split(' ', 1)[1]
|
|
49
|
+
return [os.path.realpath(p) for p in libstr.split(':') if os.path.exists(p)]
|
|
50
|
+
return []
|
|
51
|
+
|
|
52
|
+
def get_program_dirs(self, env: 'Environment') -> T.List[str]:
|
|
53
|
+
os_env = os.environ.copy()
|
|
54
|
+
os_env['LC_ALL'] = 'C'
|
|
55
|
+
stdo = Popen_safe(self.get_exelist(ccache=False) + ['--print-search-dirs'], env=os_env)[1]
|
|
56
|
+
for line in stdo.split('\n'):
|
|
57
|
+
if line.startswith('programs:'):
|
|
58
|
+
# lcc does not include '=' in --print-search-dirs output.
|
|
59
|
+
libstr = line.split(' ', 1)[1]
|
|
60
|
+
return [os.path.realpath(p) for p in libstr.split(':')]
|
|
61
|
+
return []
|
|
62
|
+
|
|
63
|
+
@functools.lru_cache(maxsize=None)
|
|
64
|
+
def get_default_include_dirs(self) -> T.List[str]:
|
|
65
|
+
os_env = os.environ.copy()
|
|
66
|
+
os_env['LC_ALL'] = 'C'
|
|
67
|
+
p = subprocess.Popen(self.get_exelist(ccache=False) + ['-xc', '-E', '-v', '-'], env=os_env, stdin=subprocess.DEVNULL, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
|
68
|
+
stderr = p.stderr.read().decode('utf-8', errors='replace')
|
|
69
|
+
includes: T.List[str] = []
|
|
70
|
+
for line in stderr.split('\n'):
|
|
71
|
+
if line.lstrip().startswith('--sys_include'):
|
|
72
|
+
includes.append(re.sub(r'\s*\\$', '', re.sub(r'^\s*--sys_include\s*', '', line)))
|
|
73
|
+
return includes
|
|
74
|
+
|
|
75
|
+
def get_optimization_args(self, optimization_level: str) -> T.List[str]:
|
|
76
|
+
return gnu_optimization_args[optimization_level]
|
|
77
|
+
|
|
78
|
+
def get_prelink_args(self, prelink_name: str, obj_list: T.List[str]) -> T.List[str]:
|
|
79
|
+
return ['-r', '-nodefaultlibs', '-nostartfiles', '-o', prelink_name] + obj_list
|
|
80
|
+
|
|
81
|
+
def get_pch_suffix(self) -> str:
|
|
82
|
+
# Actually it's not supported for now, but probably will be supported in future
|
|
83
|
+
return 'pch'
|
|
84
|
+
|
|
85
|
+
def get_option_compile_args(self, options: 'KeyedOptionDictType') -> T.List[str]:
|
|
86
|
+
args: T.List[str] = []
|
|
87
|
+
std = options[OptionKey('std', lang=self.language, machine=self.for_machine)]
|
|
88
|
+
if std.value != 'none':
|
|
89
|
+
args.append('-std=' + std.value)
|
|
90
|
+
return args
|
|
91
|
+
|
|
92
|
+
def openmp_flags(self) -> T.List[str]:
|
|
93
|
+
return ['-fopenmp']
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
# Copyright 2019 The meson development team
|
|
3
|
+
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
"""Provides a mixin for shared code between C and C++ Emscripten compilers."""
|
|
7
|
+
|
|
8
|
+
import os.path
|
|
9
|
+
import typing as T
|
|
10
|
+
|
|
11
|
+
from ... import coredata
|
|
12
|
+
from ... import mesonlib
|
|
13
|
+
from ...mesonlib import OptionKey
|
|
14
|
+
from ...mesonlib import LibType
|
|
15
|
+
from mesonbuild.compilers.compilers import CompileCheckMode
|
|
16
|
+
|
|
17
|
+
if T.TYPE_CHECKING:
|
|
18
|
+
from ...environment import Environment
|
|
19
|
+
from ...compilers.compilers import Compiler
|
|
20
|
+
from ...dependencies import Dependency
|
|
21
|
+
else:
|
|
22
|
+
# This is a bit clever, for mypy we pretend that these mixins descend from
|
|
23
|
+
# Compiler, so we get all of the methods and attributes defined for us, but
|
|
24
|
+
# for runtime we make them descend from object (which all classes normally
|
|
25
|
+
# do). This gives up DRYer type checking, with no runtime impact
|
|
26
|
+
Compiler = object
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def wrap_js_includes(args: T.List[str]) -> T.List[str]:
|
|
30
|
+
final_args: T.List[str] = []
|
|
31
|
+
for i in args:
|
|
32
|
+
if i.endswith('.js') and not i.startswith('-'):
|
|
33
|
+
final_args += ['--js-library', i]
|
|
34
|
+
else:
|
|
35
|
+
final_args += [i]
|
|
36
|
+
return final_args
|
|
37
|
+
|
|
38
|
+
class EmscriptenMixin(Compiler):
|
|
39
|
+
|
|
40
|
+
def _get_compile_output(self, dirname: str, mode: CompileCheckMode) -> str:
|
|
41
|
+
assert mode != CompileCheckMode.PREPROCESS, 'In pre-processor mode, the output is sent to stdout and discarded'
|
|
42
|
+
# Unlike sane toolchains, emcc infers the kind of output from its name.
|
|
43
|
+
# This is the only reason why this method is overridden; compiler tests
|
|
44
|
+
# do not work well with the default exe/obj suffices.
|
|
45
|
+
if mode == CompileCheckMode.LINK:
|
|
46
|
+
suffix = 'js'
|
|
47
|
+
else:
|
|
48
|
+
suffix = 'o'
|
|
49
|
+
return os.path.join(dirname, 'output.' + suffix)
|
|
50
|
+
|
|
51
|
+
def thread_link_flags(self, env: 'Environment') -> T.List[str]:
|
|
52
|
+
args = ['-pthread']
|
|
53
|
+
count: int = env.coredata.options[OptionKey('thread_count', lang=self.language, machine=self.for_machine)].value
|
|
54
|
+
if count:
|
|
55
|
+
args.append(f'-sPTHREAD_POOL_SIZE={count}')
|
|
56
|
+
return args
|
|
57
|
+
|
|
58
|
+
def get_options(self) -> coredata.MutableKeyedOptionDictType:
|
|
59
|
+
return self.update_options(
|
|
60
|
+
super().get_options(),
|
|
61
|
+
self.create_option(
|
|
62
|
+
coredata.UserIntegerOption,
|
|
63
|
+
OptionKey('thread_count', machine=self.for_machine, lang=self.language),
|
|
64
|
+
'Number of threads to use in web assembly, set to 0 to disable',
|
|
65
|
+
(0, None, 4), # Default was picked at random
|
|
66
|
+
),
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
@classmethod
|
|
70
|
+
def native_args_to_unix(cls, args: T.List[str]) -> T.List[str]:
|
|
71
|
+
return wrap_js_includes(super().native_args_to_unix(args))
|
|
72
|
+
|
|
73
|
+
def get_dependency_link_args(self, dep: 'Dependency') -> T.List[str]:
|
|
74
|
+
return wrap_js_includes(super().get_dependency_link_args(dep))
|
|
75
|
+
|
|
76
|
+
def find_library(self, libname: str, env: 'Environment', extra_dirs: T.List[str],
|
|
77
|
+
libtype: LibType = LibType.PREFER_SHARED, lib_prefix_warning: bool = True) -> T.Optional[T.List[str]]:
|
|
78
|
+
if not libname.endswith('.js'):
|
|
79
|
+
return super().find_library(libname, env, extra_dirs, libtype, lib_prefix_warning)
|
|
80
|
+
if os.path.isabs(libname):
|
|
81
|
+
if os.path.exists(libname):
|
|
82
|
+
return [libname]
|
|
83
|
+
if len(extra_dirs) == 0:
|
|
84
|
+
raise mesonlib.EnvironmentException('Looking up Emscripten JS libraries requires either an absolute path or specifying extra_dirs.')
|
|
85
|
+
for d in extra_dirs:
|
|
86
|
+
abs_path = os.path.join(d, libname)
|
|
87
|
+
if os.path.exists(abs_path):
|
|
88
|
+
return [abs_path]
|
|
89
|
+
return None
|