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.

Function that gets all argument the ld wrapper gets passed, randomized their order and executes the original ld.

Parameters:
  • argvld arguments
  • randomize – actually randomize the order of the arguments?
  • ld_tool – used ld tool
temci.build.linker.process_linker(call: typing.List[str])[source]

Uses the passed ld arguments to randomize the link order during linking. It’s configured by environment variables.

Parameters:call – arguments for ld

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.