Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add Dockerfile Useful for knowing what needs installed to build * Initial CMake build support Used cmake-init v0.24.1 * Had to remove '-Werror=float-equal' due to error in sleigh source code * Haven't yet integrated/tested anything but the build of the shared library Lots of todos including removal of third-party dependencies, bindings, testing, docs, spelling, linting, etc. * Add back '-Wfloat-equal' warning but don't error This warning exists in the codebase, so setting it to error will fail. Delaying fixing this until later. * Remove sleigh submodule in favor of just find_package Was nice for initial testing, but we shouldn't rely on a dependency submodule * Build and add tests Doesn't work yet because the compiled sla file paths are hard-coded * Working tests and sleighspec compile Fixed spot where I forgot to set compile definition with LIEF loader Still need to fix a few things to make this more robust. Using sleigh branch https://github.com/lifting-bits/sleigh/tree/cmake-module-sleigh-compile * Add back setting CMAKE_INSTALL_INCLUDEDIR to include/maat It duplicates maat/maat directories in the installed include directory, but this is to prevent including headers from other projects when using maat. This doesn't affect anyone using CMake, they can still #include <maat/header.h> but anyone not using CMake will either need to set -I<prefix>/include/maat when compiling or use #include <maat/maat/header.h> in their code * Python bindings Need to set environment variable MAAT_INSTALL_DIR to an already installed maat directory * Remove git submodule file * Add missing Python source file. Sort source listing * Fix include installation path * Fixup Dockerfile for CMake The Dockerfile is more like living documentation than a deployment method * Fix CMake version in presets * Let CMake generate data paths used in code Other small fixes and cleanups * Revert endline change to keep diff small * Remove CMake linting Will probably want to add this back in the future * Add PYTHONPATH to Dockerfile Now you can import maat from anywhere * More consistent whitespace in CMake files * Some documentation building fixes and edits I don't know Doxygen very well, but this seems to produce something reasonable * Remove unsupported sleigh architecture files * Revert removal of sleigh code Needs a workaround in CMake to also support usage of lifting-bits sleigh project. This makes the diff smaller * Remove CMake documentation building Might want to add this back later * Create find_package test * Fix errors with CMake when using after installed * Remove clang tidy file We can add it back later in another commit/PR * Fixup removed source code after merge * Use a macro for compiling sleigh targets * CMake options to use build with Z3 and LIEF backends * Remove CONTRIBUTING file in favor of HACKING file * Fix Z3 dependency handling Many distributions don't include Z3's CMake config file, so we need to write our own, unfortunately * Optionally use submodule'd sleigh Also try to fix CI and fix some other things * Debug sanitize fail * Update sleigh submodule * Use released version of sleigh * Sanitizer fixes (#41) * Some UB fixes * Run the CI on pull requests for all base branches * Fix leak warning for NewDefaultExprSimplifier * Fix UB on unaligned memory accesses * More UB fixes * Remove vestigial unit-tests for reading signed values from MemConcreteBuffer * Add missing virtual destructors * Use newer Z3 to fix tests with sanitizers Not entirely sure why the tests failed with the older Z3, but using a newer version seems to work with sanitizers Co-authored-by: Eric Kilmer <[email protected]> * Update cmake/install-rules.cmake * Remove C++ visibility settings This should be added back when we get a chance to annotate a real public API that can control visibility settings. Controlling visibility is best practice when creating shared libraries * Remove static analyzers from CI They're slow and we have many other compiler warnings to care about right now. We are leaving them in the presets file so that users may include them in their own CMakeUserPresets.json file * Move sleigh_interface.hpp to public include directory * Enable coverage collection but ony print summary We can decide later where we want to upload the report * Fixup some comments * Fixes for moved sleigh_interface.hpp * Disable coverage CI until open source Takes too long to run and also fails right now... * Update building and hacking documentation * Add more docs * Mention submodule for using vendored sleigh * Remove Makefile No longer supported after this branch is merged * Update BUILDING.md to mention Dockerfile Co-authored-by: Boyan MILANOV <[email protected]> * Instructions for installing Python module * Fix python build/installation docs * Download prebuilt dependencies except sleigh We support sleigh submodule, so let's test it here * Update building instructions for python bindings * Update command to get site-packages location in virtualenv * Use getsitepackages() * Fix site-packages location for virtualenvs * Fix getting site-packages location in bindings.cmake * Update documentation for Python module * Update BUILDING.md Co-authored-by: Alex Cameron <[email protected]> Co-authored-by: Boyan MILANOV <[email protected]>
- Loading branch information