Перейти к содержанию
    

avr-binutils в ubuntu 12.04 64bit: не могу слинковать .o, сделанный из бинарника

стоят avr-gcc, avr-binutils и libc-avr.

Делаю из бинарника объектный файл с целью влинковать его:

 

>avr-objcopy -I binary -O elf32-avr --rename-section .data=.progmem.data,contents,alloc,load,readonly,data --redefine-sym _binary_top_mlz_start=fpga --redefine-sym _binary_top_mlz_end=fpga_end top.mlz top.o

тут всё ок.

 

далее линкую:

>avr-gcc -mmcu=atmega128 -Wl,-Map=core.map zx.o interrupts.o main.o ps2.o spi.o depacker_dirty.o rs232.o rtc.o atx.o joystick.o version.o tape.o kbmap.o top.o   -o core.elf
/usr/lib/gcc/avr/4.5.3/../../../avr/bin/ld: avr architecture of input file `top.o' is incompatible with avr:51 output
collect2: ld returned 1 exit status

 

Версии:

>avr-gcc --version
avr-gcc (GCC) 4.5.3
>avr-objcopy --version
GNU objcopy (GNU Binutils) 2.20.1.20100303

 

ЧСХ, те же версии тулзов в mint 11 64bit линкуют всё на ура.

 

Я неправ в опциях avr-objcopy или это баг в тулзах?

И (риторическое) что делать? :)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В опциях avr-objcopy надо указать целевую архитектуру (avr:51), но навскидку не скажу как именно, какими ключами это сделать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В опциях avr-objcopy надо указать целевую архитектуру (avr:51), но навскидку не скажу как именно, какими ключами это сделать.

"-O elf32-avr" -- разве не указание архитектуры?

 

 

Прочёл ман и дошло...

Сергей, спасибо за подсказку.

добавил в avr-objcopy "-B avr:51" и всё слинковалось.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"-O elf32-avr" -- разве не указание архитектуры?
Нет, это указание формата.

-O --output-target <bfdname> Create an output file in format <bfdname>

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Остаётся вопрос, почему в другом дистрибе ровно те же версии бинутилей всё линковали без -B.

Собраны с разными настройками?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Остаётся вопрос, почему в другом дистрибе ровно те же версии бинутилей всё линковали без -B.

Собраны с разными настройками?

Судя по последнему вопросу, Вы не сами его собирали, а взяли уже собранный кем-то другим (майнтейнером дистрибутива). В таком случае, могло быть все что угодно вплоть до наложения сторонних патчей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...