This builds on top of the work in GaloisInc/elf-edit#45. For now, I only add support for a select few relocation types, leaving the rest as future work. This paves a way for an eventual fix for #414.
1.8 KiB
Revision history for macaw-base
Next
Features
-
resolveElfContents
, as well as related functions inData.Macaw.Memory.ElfLoader
, now compute dynamic function symbols for non–position-independent executables. These were previously omitted due to an oversight in the implementation. -
Add support for PPC32 and PPC64 relocations in
Data.Macaw.Memory.ElfLoader
. -
Add support for RISC-V relocations in
Data.Macaw.Memory.ElfLoader
.
API Changes
-
Architecture-specific block terminators can now contain macaw values
This changed the type of the architecture extension block terminators from
ArchTermStmt ids
toArchTermStmt f
wheref ~ Value arch ids
at the macaw level. -
Architecture backends can now configure the block classification during the discovery phase
The interface to configure block classification is exposed through the
ArchitectureInfo
. Note that clients that have not created their ownArchitectureInfo
from scratch should be unaffected (which is the vast majority). -
The post-discovery AST types are now exported from
Data.Macaw.Discovery.ParsedContents
It is recommended that future references to these types be done through this module. They are re-exported from their original location (
Data.Macaw.Discovery.State
) for backwards compatibility. One day that is likely to change. -
The
DynamicSymbolTable
constructor ofData.Macaw.Memory.ElfLoader
'sSymbolTable
data type now has an additionalVersionDefMap
field, which is needed for finding versioning information in some cases. -
The
Hashable
andHashableF
instances forApp f
now requireTestEquality f
constraints. (This is needed to supporthashable-1.4.*
, which addsEq
as a superclass toHashable
.) -
SubroutineTypeDecl
now contains a parsedVariable
(rather than an unparsedDIE
) for its formals.