|
Launchpad'овский gcc-arm-none-eabi Lto и math.h |
|
|
|
Dec 15 2016, 08:06
|
Группа: Участник
Сообщений: 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
Подозреваю, что дело в ключах, но не знаю в каких. Очень надеюсь на ответ.
|
|
|
|
|
 |
Ответов
|
Dec 25 2016, 14:32
|

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

|
QUOTE (andrew_b @ Dec 23 2016, 14:52)  Это избавляет от излиших связей. Если бибилиотека по факту не используется, то линковаться с ней не надо, несмотря на то, что она почему-то указана в списке на линковку. Всего этого можно достичь (и полно линкеров, которые это умеют.., да, по ходу, все кроме гнутого умеют) и без этой дурацкой фичи: либо сделать обработку двухпроходной, либо разрешение связей не делать непосредственно в процессе чтения данных - например, сперва все данные читаются, потом, когда вся оперативная информация в наличие, производится разрешение связей. Гнушный линкер просто 1) однопроходный, 2) производит обработку связей непосредственно во время чтения файлов, т.е. если библиотека указана раньше объектного файла, из которого есть ссылка на библиотечный объект, то из библиотеки ничего не линкуется.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Dec 26 2016, 04:24
|

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 вдруг исправят и его поведение в части подключения библиотек не будет зависеть от порядка их указания, это ничего не сломает и ничего править не придётся.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|