реклама на сайте
подробности

 
 
> Launchpad'овский gcc-arm-none-eabi Lto и math.h
Viciouspriest
сообщение Dec 15 2016, 08:06
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 24-08-12
Пользователь №: 73 242



Всем здравствуйте.
Осваиваю ланчпадавский компилятор. Столкнулся с тем, что при включенной Lto не видит функции, например sqrt(), из math.h. "undefined reference to `sqrt'
collect2.exe: error: ld returned 1 exit status".

Compile opts -mcpu=cortex-m3 -flto -lto -mthumb -fpack-struct -Wpadded -g -Os
Linker opts -mcpu=cortex-m3 -flto -mthumb -Wl,--gc-sections,-Map=Project.elf.map,-cref,-u,Reset_Handler

Target CPU STM32F103RET6
gcc-arm-none-eabi-5_4-2016q3-20160926-win32

Подозреваю, что дело в ключах, но не знаю в каких. Очень надеюсь на ответ.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Aaron
сообщение Dec 23 2016, 07:09
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 243
Регистрация: 5-10-06
Из: Зеленоград
Пользователь №: 21 007



да, злостная шутка с этими линкер-опциями и порядком подключения библиотек.
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Dec 23 2016, 07:52
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(Aaron @ Dec 23 2016, 10:09) *
да, злостная шутка с этими линкер-опциями и порядком подключения библиотек.
Это избавляет от излиших связей. Если бибилиотека по факту не используется, то линковаться с ней не надо, несмотря на то, что она почему-то указана в списке на линковку. Так что какие уж шутки.

См. https://www.altlinux.org/UpStream/AsNeeded
Go to the top of the page
 
+Quote Post
dxp
сообщение Dec 25 2016, 14:32
Сообщение #4


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



QUOTE (andrew_b @ Dec 23 2016, 14:52) *
Это избавляет от излиших связей. Если бибилиотека по факту не используется, то линковаться с ней не надо, несмотря на то, что она почему-то указана в списке на линковку.

Всего этого можно достичь (и полно линкеров, которые это умеют.., да, по ходу, все кроме гнутого умеют) и без этой дурацкой фичи: либо сделать обработку двухпроходной, либо разрешение связей не делать непосредственно в процессе чтения данных - например, сперва все данные читаются, потом, когда вся оперативная информация в наличие, производится разрешение связей. Гнушный линкер просто 1) однопроходный, 2) производит обработку связей непосредственно во время чтения файлов, т.е. если библиотека указана раньше объектного файла, из которого есть ссылка на библиотечный объект, то из библиотеки ничего не линкуется.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Dec 25 2016, 17:31
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(dxp @ Dec 25 2016, 17:32) *
Всего этого можно достичь (и полно линкеров, которые это умеют.., да, по ходу, все кроме гнутого умеют)
А ничего, что тут весь тулчейн GNU? Вы предлагаете заменить GNU ld на какой-то другой? И всякие configure.ac и Makefile.am патчить тоже предлагаете? Ну круто, чо.
Go to the top of the page
 
+Quote Post
dxp
сообщение Dec 26 2016, 04:24
Сообщение #6


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



QUOTE (andrew_b @ Dec 26 2016, 00:31) *
А ничего, что тут весь тулчейн GNU? Вы предлагаете заменить GNU ld на какой-то другой? И всякие configure.ac и Makefile.am патчить тоже предлагаете? Ну круто, чо.

Где вы увидели предложение что-то менять? Я сказал лишь то, что есть и другие способы реализовать выкидывание ненужных объектов, свободные от зависимостей, возникающих от порядка указания библиотек. Кстати, даже если представить, что ld вдруг исправят и его поведение в части подключения библиотек не будет зависеть от порядка их указания, это ничего не сломает и ничего править не придётся.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Viciouspriest   Launchpad'овский gcc-arm-none-eabi Lto и math.h   Dec 15 2016, 08:06
- - AHTOXA   Вроде бы ещё надо линкеру передать ключ оптимизаци...   Dec 15 2016, 17:42
- - Viciouspriest   Цитата(AHTOXA @ Dec 15 2016, 20:42) Вроде...   Dec 16 2016, 06:55
|- - AHTOXA   А, ну это известная штука. Понять этого нельзя, по...   Dec 16 2016, 07:04
|- - andrew_b   Цитата(Viciouspriest @ Dec 16 2016, 09:55...   Dec 16 2016, 07:48
|- - demiurg_spb   Прочитал доку про --as-needed и для меня не совсем...   Dec 21 2016, 14:49
|- - andrew_b   Цитата(dxp @ Dec 26 2016, 07:24) Я сказал...   Dec 26 2016, 05:37
- - esaulenka   Андрей, вы б послушали, что dxp говорит... Выкиды...   Dec 26 2016, 07:29
|- - andrew_b   Цитата(esaulenka @ Dec 26 2016, 10:29) Од...   Dec 26 2016, 07:36
- - esaulenka   Ответов по делу тут два: #6 от demiurg_spb (что де...   Dec 26 2016, 08:08
- - demiurg_spb   Зато GNUшный линкер быстрый!   Dec 26 2016, 10:58


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 09:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.01429 секунд с 7
ELECTRONIX ©2004-2016