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

 
 
> -ffunction-sections и -fdata-sections, хочу прояснить
demiurg_spb
сообщение Jul 5 2010, 16:31
Сообщение #1


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Здравствуйте уважаемые любители gcc!
Хочу прояснить один момент.
При:
Код
CFLAGS += -ffunction-sections
CFLAGS += -fdata-sections
LDFLAGS += -Wl,--gc-section
и:
Код
MATH_LIB = -lm
PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt
и фактически при пустом проекте не выкидывается все эти
неиспользуемые мной библиотечные функции (проект собирается и без этих либ).
Размер выходного файла увеличивается на 2,5КБ.

Объясните пожалуйста кто-нибудь почему?
Может потому, что они (либы) были скомпилены без -ffunction-sections и -fdata-sections?

PS: avr-gcc (WinAVR 20100110) 4.3.3


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
demiurg_spb
сообщение Oct 15 2010, 14:49
Сообщение #2


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Поэкспериментировал ещё немного и понял вот ещё что.
Если компилить так,
Код
CFLAGS += -ffunction-sections
CFLAGS += -fdata-sections
LDFLAGS += -Wl,--gc-section
PRINTF_LIB =
SCANF_LIB =
MATH_LIB = -lm

то на мелких проектах (не использующих printf scanf) можно существенно выиграть флеша в сравнении с
Код
CFLAGS += -ffunction-sections
CFLAGS += -fdata-sections
LDFLAGS += -Wl,--gc-section
PRINTF_LIB = -Wl,-u,vfprintf -lprintf_min
SCANF_LIB = -Wl,-u,vfscanf -lscanf_min
MATH_LIB = -lm

Хотел спросить, эти линкуемые либы, которые не выкидываются, являются частью avr-libc?


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
aesok
сообщение Oct 15 2010, 15:49
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(demiurg_spb @ Oct 15 2010, 18:49) *
Код
PRINTF_LIB = -Wl,-u,vfprintf -lprintf_min
SCANF_LIB = -Wl,-u,vfscanf -lscanf_min
MATH_LIB = -lm

Хотел спросить, эти линкуемые либы, которые не выкидываются, являются частью avr-libc?


Да, libscanf_min.a и libprintf_min.a входят в avr-libc.

Анатолий.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Oct 16 2010, 09:32
Сообщение #4


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Спасибо! Но насколько я понял feedback стоит давать не авторам avr-libc,
а тем кто собирает эти либы (в моём случае автору WinAVR). Я правильно мыслю?


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
aesok
сообщение Oct 16 2010, 13:28
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(demiurg_spb @ Oct 16 2010, 13:32) *
Спасибо! Но насколько я понял feedback стоит давать не авторам avr-libc,
а тем кто собирает эти либы (в моём случае автору WinAVR). Я правильно мыслю?


Не понял вопроса.
Eric Weddington занимаеться сборкой WinAVR и является автором avr-libc.

Анатолий.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Oct 17 2010, 08:13
Сообщение #6


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(aesok @ Oct 16 2010, 17:28) *
Не понял вопроса.
Нестрашно:-)
Зато я ответ понял. Спасибо!


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- demiurg_spb   -ffunction-sections и -fdata-sections   Jul 5 2010, 16:31
- - klen   Цитата(demiurg_spb @ Jul 5 2010, 20:31) З...   Jul 5 2010, 17:25
|- - demiurg_spb   Цитата(klen @ Jul 5 2010, 21:25) скорее в...   Jul 5 2010, 17:46
|- - klen   Цитата(demiurg_spb @ Jul 5 2010, 21:46) А...   Jul 5 2010, 18:33
||- - demiurg_spb   Цитата(klen @ Jul 5 2010, 22:33) ну я к п...   Jul 5 2010, 19:00
|- - Сергей Борщ   Цитата(demiurg_spb @ Jul 5 2010, 20:46) с...   Jul 6 2010, 09:42
|- - demiurg_spb   Цитата(Сергей Борщ @ Jul 6 2010, 13:42) Н...   Jul 7 2010, 08:14
|- - AHTOXA   Возможно, эти библиотеки используют какие-то стати...   Jul 7 2010, 10:49
|- - klen   поробывал своей сборкой. собираю код состоящий из ...   Jul 7 2010, 15:39
|- - demiurg_spb   Попробовал именно с Вашим исходником тестовый прое...   Jul 8 2010, 09:47
|- - ReAl   Цитата(klen @ Jul 7 2010, 18:39) что с -l...   Jul 9 2010, 09:19
|- - klen   Цитата(ReAl @ Jul 9 2010, 13:19) там ещё ...   Jul 9 2010, 14:12
- - ReAl   Это если библиотки собраны с -ffunction-sections А...   Jul 13 2010, 04:22


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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 07:26
Рейтинг@Mail.ru


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