LINUX.ORG.RU

U-Boot. Проблема реколации со старых версий

 


0

2

Всем привет. Имеется U-Boot версии 2013 го года, довольно старый. На нем есть конфиг платы. Конфиг выполнен в старом стиле аля через файл boards.cfg Возникла задача переноса конфигурации на новые версии. Взял самое последнее - версия 2024.01.
Начал переносить конфиг архитектуры, конфиг проца (MIPS Xburst2, его в новых версиях нет, неходовой).
Перенес и скрипты lds. Код платформы поместил в свой mach-* (mach-X директорию). В общем внимательно насколько возможно перенес. Запустил сборку с теми же флагами и с тем же компилятором. И здесь возникла проблема

arch/mips/mach-t40/t40/t40.o: In function 'board_init_f'
arch/mips/mach-t40/t40/t40.c:(.text.board_init_f+0x0): relocation truncated to fit: R_MIPS_HI16 against '_gp_disp'

arch/mips/mach-t40/t40/t40.c:(.text.board_init_f+0x10):relocation truncated to fit: R_MIPS_GOT16 against 'gdata'
make[1]: *** [scripts/Makefile.spl:527: spl/u-boot-spl] Error 1

Не вписывается в нужные размеры. Вопрос - как это лечить? Уже всё перекопал, пробовал mcmodel, но не помогает. Проверил и Start.S и lds скрипты. Возможно где то с конфигурацией не то что-то. Да и в старом убуте при той же истории этого флага я не нашел, но он собирался. А в новой версии сборка в самом конце обрывается с данной ошибкой. Спасибо.



Последнее исправление: Serg1987 (всего исправлений: 5)

Из представленного кусочка: Что-то не так с LD.

За эти годы U-Boot сильно изменился. Ищи что поменялось, что определяет Kconfig и как это выглядит в результате. Как это делают для похожих процессоров.

И главное анализируй: какая команда, с какими параметрами и входными файлами выдала ошибку. Что в этих файлах.

Так и не понял из топика: что за процессор, что взял за основу, есть ли SDK от производителя процессора?

Если это китаец, то пробовать шерстить тот сегмент интернета по китайскому названию, например, для ingenic это 君正. Но там, в лучшем случае, будет о том, как пользоваться SDK от производителя.

Ну и зачем тебе свежий U-Boot?

AlexVR ★★★★★
()