temci.build package¶
Submodules¶
temci.build.assembly module¶
temci.build.build_processor module¶
temci.build.builder module¶
temci.build.linker module¶
Enables the randomization of the link order during the building of programs. It’s used to create a wrapper for ld (@see ../scripts/ld).
An implementation of this wrapper in C++ is given in the ../scripts/linker directory. This python implementation is only the fall back solution if the C++ version isn’t available.
The link order randomization only works for compilers that use the ld tool.
-
temci.build.linker.
link
(argv: typing.List[str], randomize: bool = True, ld_tool: str = '/usr/bin/ld')[source]¶ Function that gets all argument the ld wrapper gets passed, randomized their order and executes the original ld.
Parameters: - argv – ld arguments
- randomize – actually randomize the order of the arguments?
- ld_tool – used ld tool
Module contents¶
This module contains the build part of temci (usable from the command line with temci build).
It’s separated into four parts with the following purposes:
- build_processor.py: fassade for the the builders
- builder.py: Build programs with possible randomizations.
- assembly.py: randomize the assembler and provide some sort of a wrapper for as. It’s called by ../scripts/as
- linker.py: randomize the link order and provide some sort of a wrapper for ld. It’s called by ../scripts/ld and reimplemented in c++ in ../scripts/linker.