リンクフェーズで特定の関数/セクションを保存したいプロジェクトがあります。gcc/diab:未使用の関数/セクションを保持する
私が試した:
static void stub_enforcer(void) __attribute__ ((used))
をしかし、これはコンパイラのためではなく、リンカのためです。
使用されている今、リンカは充電と-gc-セクションを取ることを、私は維持したい機能は「ゴーン」である:(
私は私が必要とする機能を削除しないようにリンカに指示することができますどのようにRemoving unused section '.text.func2' in file './src/func2.o'
。
私はこれをしたい理由は、バイナリ上のものを変更することで、機能のポストビルドの使用である。私はLDスクリプトを制御することによって、解決策を見つけた
コンパイラ/リンカは決して真ではないが、コンパイラ/リンカは以下のことができないという条件で関数を "使用する"可能性があります:if(argc == 1222333){stub_enforcer(); } ' – TripeHound