macaw/base/macaw-base.cabal
Joe Hendrix 097edda1ef
Relocation support; various cleanups.
This patch adds initial support for relocations in Macaw code
discovery, and adds other refactoring.

* It introduces a SymbolValue constructor to represent references to
  symbols within Macaw.
* The various cases for x86 mov are made explicit after the flexdis refactor
  broke the previous code.  We should now support segment register movs and
  give better error messages when seeing mov with control or debug registers.
* The generic exception operation is replaced with Hlt and UD2 terminal
  x86-specific statements.
* CodeAddrReason is split into FunctionExploreReason and BlockExploreReason to
  clarify whether a function or block was discovered.
* The Macaw pretty printer is changed to use write_mem in place of pointer syntax.
* Various other refactoring is made to clarify code.
2018-04-23 11:24:21 -07:00

79 lines
2.1 KiB
Plaintext

name: macaw-base
version: 0.3
author: Galois, Inc.
maintainer: jhendrix@galois.com
build-type: Simple
cabal-version: >= 1.9.2
license: BSD3
license-file: LICENSE
description:
Macaw is a multi-architecture binary analysis library written in
Haskell. @macaw-base@ defines the core algorithms and data types
used across architectures. This includes:
.
* The control-flow graph data structure used to represent control-flow
graphs is defined in "Data.Macaw.CFG".
.
* The datatypes used to add support for new architectures are defined in
"Data.Macaw.Architecture".
.
* The datatypes used to represent memory are defined in "Data.Macaw.Memory".
Functions for constructing memory objects from Elf files are in
"Data.Macaw.Memory.ElfLoader".
.
* The main code discovery algorithm for discovering code are in
"Data.Macaw.Discovery".
.
* Declarations for working with Dwarf debug information are in "Data.Macaw.Dwarf".
library
build-depends:
base >= 4,
ansi-wl-pprint,
binary,
binary-symbols,
bytestring,
containers >= 0.5.8.1,
elf-edit >= 0.29,
galois-dwarf,
IntervalMap >= 0.5,
lens >= 4.7,
mtl,
parameterized-utils >= 0.1.6,
text,
vector,
QuickCheck >= 2.7
hs-source-dirs: src
exposed-modules:
Data.Macaw.AbsDomain.AbsState
Data.Macaw.AbsDomain.JumpBounds
Data.Macaw.AbsDomain.Refine
Data.Macaw.AbsDomain.StridedInterval
Data.Macaw.Analysis.FunctionArgs
Data.Macaw.Architecture.Info
Data.Macaw.CFG
Data.Macaw.CFG.App
Data.Macaw.CFG.Block
Data.Macaw.CFG.BlockLabel
Data.Macaw.CFG.Core
Data.Macaw.CFG.DemandSet
Data.Macaw.CFG.Rewriter
Data.Macaw.DebugLogging
Data.Macaw.Discovery
Data.Macaw.Discovery.AbsEval
Data.Macaw.Discovery.State
Data.Macaw.Dwarf
Data.Macaw.Fold
Data.Macaw.Memory
Data.Macaw.Memory.ElfLoader
Data.Macaw.Memory.LoadCommon
Data.Macaw.Memory.Permissions
Data.Macaw.Types
Data.Macaw.Utils.Pretty
ghc-options: -Wall
ghc-options: -fno-warn-unticked-promoted-constructors
ghc-prof-options: -O2 -fprof-auto-top