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

 
 
> ELF and DWARF, уже сюда NCsoft пролез)
wedmeed
сообщение Aug 26 2011, 09:41
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 5-04-11
Из: г.Саратов
Пользователь №: 64 137



Программирую на кейле. Стал встречаться с непонятными вещами, именуемыми ELF. Очень часто упоминается про ELF section. В компиляторе для оптимизации есть пункт One ELF section per Function. Попытался было найти объяснения на форуме. но тут еще и про DWARF говорят, только больше запутался. Что это вообще за секции, файлы, с чем и для чего их вообще едят?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Aug 31 2011, 06:21
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (wedmeed @ Aug 31 2011, 08:34) *
Тогда по логике должно получаться наоборот - если все функции (и неиспользуемые) в одной секции, то эта секция должна получаться по размеру больше, чем несколько секций с только используемыми функциями.
Да, именно так. И именно так и получается.
QUOTE (wedmeed @ Aug 31 2011, 08:34) *
На практике получилось наоборот.
Вы сами себе противоречите:
QUOTE (wedmeed @ Aug 30 2011, 14:30) *
если в кейловской оптимизации поставить галочку "One ELF section per Function", размер готового исполняемого кода сокращается в два раза?
Итого - компилятор кладет каждую функцию в отдельную секцию, линкер берет только необходимые секции => размер уменьшается. Все согласно теории.

Да, секция может быть произвольного размера. Есть какие-то ограничения на уровне ОС, но у вас нету диска такого объема wink.gif


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
wedmeed
сообщение Aug 31 2011, 06:27
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 5-04-11
Из: г.Саратов
Пользователь №: 64 137



Цитата(Сергей Борщ @ Aug 31 2011, 10:21) *
Итого - компилятор кладет каждую функцию в отдельную секцию, линкер берет только необходимые секции => размер уменьшается. Все согласно теории.

Спасибо, неправильно перевел. До этого понимал эту строку как одна секция для всех функций. Пошел за учебником по инглишу... laughing.gif
Go to the top of the page
 
+Quote Post



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

 


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


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