Я тоже нашел это беспокойство и несколько часов бился в голове вокруг этого вопроса.
К счастью, я наткнулся на следующую ветку в списке рассылки u-boot:
http://lists.denx.de/pipermail/u-boot/2010-October/078297.html
Это говорит о том, что по крайней мере в ARM использование -fPIC / -fPIE в COMPILE TIME необязательно для генерирования независимых от позиции двоичных файлов.Это облегчает задачу загрузчика среды выполнения, выполняя как можно больше работы заранее, но это все.
Независимо от того, используете вы fPIC или нет, вы всегда можете использовать -pic / -pie в LINK TIME, чтопереместит все зависящие от позиции ссылки в раздел перемещения.Поскольку во время COMPILE TIME не было выполнено никакой обработки для добавления помощников, ожидайте, что этот раздел будет больше, чем при использовании -fPIC.
Они пришли к выводу, что для своих целей использование -fPIC не имеет какого-либо существенного преимущества перед временем соединенияединственное решение.
[править] См. commit u-boot 92d5ecba для справки
arm: реализовать перемещения ELF http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=commit;h=92d5ecba47feb9961c3b7525e947866c5f0d2de5