Megaton performs a check step after linking the module into an ELF and before converting it to a .nso file. This check allows Megaton to blacklist certain symbols and instructions, preventing an unstable binary from being created to catch bugs earlier.

Tip

The root of a particular project is the directory that contains the config (Megaton.toml). For all values that determine a path, unless otherwise specified, the path is relative to the project root.

For each key, if a default value/behavior is not specified, it is required in the config. Otherwise it is optional.

This section can be extended with profiles.

Key: check.ignore (array of strings)

A list of symbols that the checker will ignore when checking the built binary.

Inheritance: Override

Default: ["<default>"]

Todo

Link to the code where list of default symbols that are ignored (or the default behavior)

Key: check.symbols (array of strings)

Type: string[] (array of strings)

Paths to symbol files generated by objdump -T.

Inheritance: Append

Default: []

Key: check.disallowed-instructions

Type: string[] (array of strings)

Instructions that are disallowed in the final binary. Place instructions that are known to crash here. (Mostly needed for Megaton library development).

Inheritance: Override

Default: ["<default>"]

Todo

Link to the code where list of default symbols that are ignored (or the default behavior)