llvm-project
9d762ad2 - [BOLT][BTI] Patch ignored functions in place when targeting them with indirect branches (#177165)

Commit
1 day ago
[BOLT][BTI] Patch ignored functions in place when targeting them with indirect branches (#177165) When applying BTI fixups to indirect branch targets, ignored functions are considered as a special case: - these hold no instructions, - have no CFG, - and are not emitted in the new text section. The solution is to patch the entry points in the original location. If such a situation occurs in a binary, recompilation using the -fpatchable-function-entry flag is required. This will place a nop at all function starts, which BOLT can use to patch the original section. Without the extra nop, BOLT cannot safely patch the original .text section. An alternative solution could be to also ignore the function from which the stub starts. This has not been tried as LongJmp pass - where most stubs are inserted - is currently not equipped to ignore functions. Testing: both the success and failure cases are covered with lit tests.
Author
Parents
Loading