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

сортировка в файле скриптов линкера

вопрос по скриптам линкера gcc.

Есть ли какой нибудь смысл в сортировке содержимого секции ключевым словом sort, какое преимущество можно получить отсортировав содержимое секции по имени?

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


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

только с точки зрения удобства отладки - искать нужную функцию/переменную быстрее будет, когда по памяти лазеете. С точки зрения функциональности, код лучше не станет - ссылки потенциально более длинные станут, где-то вместо коротных прыжков придётся делать длинные.

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


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

Теоретически, если в секции собирается некая таблица (набор структур из разных файлов), то используя SORT можно рулить порядком, давая соотв. имена переменным.

 

struct TableEntry {
  int a;  
};

// a.cpp
__attribute__((section(".TABLE"))) TableEntry e_00 = {1};

// b.cpp
__attribute__((section(".TABLE")))  TableEntry e_10 = {2};

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


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

Непомнящий Евгений

спасибо, есть вопросик, можно ли из кода обратится к функции находящейся в таблице,

так что если функции упорядочены, то можно быстрее найти нужную функцию.

Изменено пользователем IgorKossak
бездумное цитирование

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


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

Это вам надо указатели на функции собрать в таблицу. Если нужно еще и имя - то и его. А дальше по этой таблице можете ходить и делать что вам нужно.

 

Получается как-бы "массив", только собранный из элементов в разных файлах

Изменено пользователем IgorKossak
бездумное цитирование

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


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

Спасибо Евгений.

Изменено пользователем IgorKossak
бездумное цитирование

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


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

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

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

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

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

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

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

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

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

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