This breaking change only affects header files from upstream Ghidra repository.
Instead of `#include <sleigh/header.hh>`, it will now be
`#include <ghidra/header.hh>` for headers from upstream.
---------
Co-authored-by: Alex Cameron <asc@tetsuo.sh>
* sleigh-lift, support: Qualify names with `ghidra` namespace
* Bump Ghidra HEAD commit 4b99900d2
Changed files:
```
M Ghidra/Processors/68000/data/languages/68000.sinc
M Ghidra/Processors/PowerPC/data/languages/ppc_instructions.sinc
M Ghidra/Processors/x86/data/languages/ia.sinc
```
* Bump Ghidra HEAD commit a6be09898
* Bump to stable Ghidra 10.2.3
* Add new 'testfuncproto' source file for testing
* Regenerate patches
Better automated refactoring for removal of 'using' declarations in
header files. See https://github.com/ekilmer/remusing_cpp for automated
tool. Some manual fixes are still required, but they are small. Setting
'using namespace std;' in source files is still a manual process due to
edge-cases that are hard to detect.
* Add missing include path for libconfig.h
Only affects 'sleigh_support' library
Changed files:
```
M Ghidra/Features/Decompiler/src/decompile/cpp/Makefile
M Ghidra/Features/Decompiler/src/decompile/cpp/address.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/address.hh
M Ghidra/Features/Decompiler/src/decompile/cpp/architecture.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/block.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/capability.hh
M Ghidra/Features/Decompiler/src/decompile/cpp/consolemain.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.hh
M Ghidra/Features/Decompiler/src/decompile/cpp/error.hh
M Ghidra/Features/Decompiler/src/decompile/cpp/filemanage.hh
M Ghidra/Features/Decompiler/src/decompile/cpp/float.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/flow.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/fspec.hh
M Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_block.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/ghidra_process.hh
M Ghidra/Features/Decompiler/src/decompile/cpp/heritage.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/ifacedecomp.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/ifacedecomp.hh
M Ghidra/Features/Decompiler/src/decompile/cpp/inject_ghidra.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/interface.hh
M Ghidra/Features/Decompiler/src/decompile/cpp/jumptable.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/marshal.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/marshal.hh
M Ghidra/Features/Decompiler/src/decompile/cpp/merge.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/op.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/op.hh
M Ghidra/Features/Decompiler/src/decompile/cpp/opcodes.hh
M Ghidra/Features/Decompiler/src/decompile/cpp/partmap.hh
M Ghidra/Features/Decompiler/src/decompile/cpp/printlanguage.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.hh
M Ghidra/Features/Decompiler/src/decompile/cpp/slghsymbol.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/space.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/space.hh
M Ghidra/Features/Decompiler/src/decompile/cpp/test.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/test.hh
M Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.hh
M Ghidra/Features/Decompiler/src/decompile/cpp/translate.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/typeop.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/variable.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/variable.hh
M Ghidra/Features/Decompiler/src/decompile/cpp/varnode.cc
M Ghidra/Features/Decompiler/src/decompile/cpp/varnode.hh
M Ghidra/Features/Decompiler/src/decompile/cpp/xml.hh
A Ghidra/Features/Decompiler/src/decompile/datatests/condconst.xml
A Ghidra/Features/Decompiler/src/decompile/datatests/condmulti.xml
A Ghidra/Features/Decompiler/src/decompile/datatests/retstruct.xml
M Ghidra/Features/Decompiler/src/decompile/unittests/testfloatemu.cc
A Ghidra/Features/Decompiler/src/decompile/unittests/testfuncproto.cc
M Ghidra/Features/Decompiler/src/decompile/unittests/testmarshal.cc
M Ghidra/Processors/6502/data/languages/65c02.slaspec
M Ghidra/Processors/68000/data/languages/68000.sinc
M Ghidra/Processors/AARCH64/certification.manifest
M Ghidra/Processors/AARCH64/data/languages/AARCH64_win.cspec
A Ghidra/Processors/AARCH64/data/patterns/AARCH64_win_patterns.xml
A Ghidra/Processors/AARCH64/data/patterns/prepatternconstraints.xml
M Ghidra/Processors/AARCH64/src/main/java/ghidra/app/util/bin/format/elf/relocation/AARCH64_ElfRelocationHandler.java
M Ghidra/Processors/AARCH64/src/main/java/ghidra/app/util/bin/format/macho/relocation/AARCH64_MachoRelocationHandler.java
M Ghidra/Processors/ARM/data/languages/ARM.ldefs
M Ghidra/Processors/ARM/data/languages/ARMTHUMBinstructions.sinc
M Ghidra/Processors/ARM/data/languages/ARMneon.sinc
M Ghidra/Processors/ARM/src/main/java/ghidra/app/util/bin/format/elf/relocation/ARM_ElfRelocationContext.java
M Ghidra/Processors/ARM/src/main/java/ghidra/app/util/bin/format/elf/relocation/ARM_ElfRelocationHandler.java
M Ghidra/Processors/ARM/src/main/java/ghidra/app/util/bin/format/macho/relocation/ARM_MachoRelocationHandler.java
M Ghidra/Processors/Atmel/data/languages/avr32a.slaspec
M Ghidra/Processors/Atmel/data/languages/avr32a_dsp_operations.sinc
M Ghidra/Processors/Atmel/src/main/java/ghidra/app/util/bin/format/elf/relocation/AVR32_ElfRelocationHandler.java
M Ghidra/Processors/Atmel/src/main/java/ghidra/app/util/bin/format/elf/relocation/AVR8_ElfRelocationHandler.java
M Ghidra/Processors/MC6800/data/languages/6x09.sinc
M Ghidra/Processors/MIPS/certification.manifest
M Ghidra/Processors/MIPS/data/languages/mips.sinc
M Ghidra/Processors/MIPS/data/languages/mips32Instructions.sinc
M Ghidra/Processors/MIPS/data/languages/mips32R6be.slaspec
M Ghidra/Processors/MIPS/data/languages/mips32R6le.slaspec
M Ghidra/Processors/MIPS/data/languages/mips32_fp64.cspec
M Ghidra/Processors/MIPS/data/languages/mips32be.cspec
M Ghidra/Processors/MIPS/data/languages/mips32be.slaspec
M Ghidra/Processors/MIPS/data/languages/mips32be_eabi.cspec
M Ghidra/Processors/MIPS/data/languages/mips32le.cspec
M Ghidra/Processors/MIPS/data/languages/mips32le.slaspec
M Ghidra/Processors/MIPS/data/languages/mips32le_eabi.cspec
M Ghidra/Processors/MIPS/data/languages/mips64.cspec
M Ghidra/Processors/MIPS/data/languages/mips64_32_n32.cspec
M Ghidra/Processors/MIPS/data/languages/mips64_32_o32.cspec
M Ghidra/Processors/MIPS/data/languages/mips64_32_o64.cspec
M Ghidra/Processors/MIPS/data/languages/mips64be.slaspec
M Ghidra/Processors/MIPS/data/languages/mips64le.slaspec
A Ghidra/Processors/MIPS/data/languages/mips_dsp.sinc
A Ghidra/Processors/MIPS/data/languages/mips_mt.sinc
M Ghidra/Processors/MIPS/src/main/java/ghidra/app/plugin/core/analysis/MipsAddressAnalyzer.java
M Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/extend/MIPS_ElfExtension.java
A Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_ElfRelocationContext.java
M Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_ElfRelocationHandler.java
M Ghidra/Processors/PIC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PIC30_ElfRelocationContext.java
M Ghidra/Processors/PIC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PIC30_ElfRelocationHandler.java
M Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/extend/PowerPC_ElfExtension.java
M Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PowerPC64_ElfRelocationHandler.java
M Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PowerPC_ElfRelocationHandler.java
M Ghidra/Processors/RISCV/data/languages/riscv32-fp.cspec
M Ghidra/Processors/RISCV/data/languages/riscv32.cspec
M Ghidra/Processors/RISCV/data/languages/riscv64-fp.cspec
M Ghidra/Processors/RISCV/data/languages/riscv64.cspec
M Ghidra/Processors/RISCV/src/main/java/ghidra/app/util/bin/format/elf/relocation/RISCV_ElfRelocationHandler.java
M Ghidra/Processors/Sparc/data/languages/SparcV9.sinc
M Ghidra/Processors/Sparc/src/main/java/ghidra/app/util/bin/format/elf/relocation/SPARC_ElfRelocationHandler.java
M Ghidra/Processors/SuperH4/src/main/java/ghidra/app/util/bin/format/elf/relocation/SH_ElfRelocationHandler.java
M Ghidra/Processors/Toy/certification.manifest
M Ghidra/Processors/Toy/data/languages/toy.pspec
M Ghidra/Processors/tricore/data/languages/tricore.cspec
M Ghidra/Processors/tricore/data/languages/tricore.ldefs
M Ghidra/Processors/tricore/data/languages/tricore.sinc
M Ghidra/Processors/x86/data/languages/ia.sinc
M Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/coff/relocation/X86_32_CoffRelocationHandler.java
M Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/coff/relocation/X86_64_CoffRelocationHandler.java
M Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_32_ElfRelocationHandler.java
A Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_64_ElfRelocationContext.java
M Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_64_ElfRelocationHandler.java
M Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/macho/relocation/X86_32_MachoRelocationHandler.java
M Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/macho/relocation/X86_64_MachoRelocationHandler.java
```
* Major CMake refactor
* CI fixes
* Fix CMake errors
* Install graphviz on Windows
* More consistent CMake build types
* Fix compiler defines for Windows
* Fix more bugs
* Add standalone tool building support
* Fix typo
* Update README
* Install sleighLift before trying to smoketest it
* Test coverage preset
The compiler option '-fkeep-inline-functions' originally included with
the coverage build type causes errors with the message "undefined
reference to 'vtable for OpAction*'" for all OpAction subclasses.
This StackOverflow answer might help in resolving this?
https://stackoverflow.com/a/57504289
* Build documentation by default with CI presets
* Use COMPONENT for install commands
This allows for someone to specify which components they want to install
if they only want or need a subset
* Support cross compiling with host system sleigh compiler
* Various fixes found during review
* Move "_WINDOWS" define to CMakeLists.txt file
* Rename ToB 'tools' directory to 'extra-tools'
* Separate projects for sleigh tools
Library is still top-level CMakeLists.txt
More options
* CMake find_package(Git)
* Fix bad merge for patch paths
* Fix missing libconfig.h header install
* Fix issues with installation of headers
* More refactoring
* Refactor sleighexample into its own project/directory
* Refactor specfiles building into separate project/directory
* Check for termios.h header and set define if found
* Update READMEs
* Better consistency with install rules
* Build sleighLift as a standalone project with added source
* More changes to CMake subprojects
* Also add "Specs" component to sleigh installation config
* Try to be better at bootstrapping subprojects (hopefully this doesn't
bite us, but if it does, I'm happy to remove it and say "not
supported")
* Address some code review
* Add project sleigh_tool for tool subdirectory
Could make it easier to build just the tools
* Add help text to name the tool executable name
* Add license notice to CMake files
* Fix/Remove too specific CPack packaging configuration
* Consistent capitalization of Sleigh
Co-authored-by: Alex Cameron <asc@tetsuo.sh>
We should test with default configurations because this is likely what
people will be using when they test the project.
GNU Makefiles generator is also useful to test because it is usually the
simplest (read: least featured) generator and exposes a bug with the way
we have set up our CMake target dependencies when generating Git version
information.
* Consistent CMake project variable names - project name case
While there is not official convention, internally CMake uses the case
of the project name in auto-generated variables for the project, like
<ProjectName>_BINARY_DIR. We should follow that convention.
* README: Fix install spec directory variable name
Co-authored-by: Alex Cameron <asc@tetsuo.sh>
* sleigh-lift: Create `--help` and `--version` flags
* cmake: Bring in `git_watcher.cmake`
* support: Add version module to support lib
* support: Add helpers for GHIDRA version and commit hash
* cmake: Cleanup
* cmake, support: Record `cmake-git-version-tracking` Git hash
* sleigh-lift, support: Add helper for GHIDRA release type
* doc: Fix GitHub links to include commit hashes