Строю бинарник под линуксом всякими arm-elf-*. Стандартная процедура построения выглядит следующим образом:
1. arm-elf-ld собирает из объектников elf файл. executable, static linked, D_Paged
2. arm-elf-objcopy выдергивает из elf 3 секции TCM,CODE, DATA
3. скрипт собирает и в один файл и зажимает в архив.
4. Архив грузится на борду и там работает
Захотелось подменить в бинарнике вызовы функции a1() на b1(). Скрипт который это делает может работать только с relocatable бинарниками. Я попробовал на шаге 1 получить relocatable с помощью ключа -r пропатчить его (или не патчить для начала, а просто повторить результат) после делаю arm-elf-ld bin.elf.reloc -o bin.elf. Bin.elf получается с теми же флагами что и в стандартной процедуре но при работе дальше, выясняется, что секция CODE больше чем в обычном варианте. strip не помогает. На борде бинарник не работает.
Вопрос: А что такого пихает туда линковщик что потом при перелинковке не удаляется и даже при strip не вырезается? Как это можно победить?