![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| savigm |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 15.12.2008 Где: г. Зеленоград Репутация: нет Всего: нет |
Подскажите пожалуйста, в какую секцию попадают данные с квалификатором const и в каком виде? Насколько я понимаю данные без const идут в секцию data , а при использовании const - в rodata. При использовании квалификаторов static и const компилятор просто пишет значения в регистры в секции text, но это видимо как повезет, т.е. компилятор постарается так сделать, но может и в rodata поместить.
Собственно что мне нужно: разместить постоянный указатель на структуру
На явное указание секции .text, компилятор начинает ругаться на изменение аттрибутов (флагов секций):
P.S. Компилатор GCC - если это имеет значение. Это сообщение отредактировал(а) savigm - 31.8.2009, 16:03 |
||||||
|
|||||||
| 500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: нет Всего: 14 |
const = постоянная
компилер все правильно мутит и кладет ее в секцию с атрибутами реадонли, чтоб тебе ее менять не захотелось при попытке сунуть ее в .техт он пытаеться там поставить РО , на что наверняка ругнеться линкер так как он захочет чтоб там не РО было а с атрибутами ЕХЕ а какая тебе в принципе разница где что храниться? настройки чтоль собрался там хранить? дык проще в оверлее тогда ))) Это сообщение отредактировал(а) 500mhz - 31.8.2009, 17:17 -------------------- |
|||
|
||||
| savigm |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 15.12.2008 Где: г. Зеленоград Репутация: нет Всего: нет |
500mhz, разница собственно в том что мне нужно и код и все данные запихнуть в .text, особенности компиляции так сказать. Собственно выбор у меня не большой: либо переписывать весь сишный код на ассемблер (чего очень не хотелось-бы), либо найти способ запихнуть данные в .text с помощью __attribute__ ((section (".text"))), но при этом мне нужно избавиться от предупреждения. Изменение флагов компиляции не подходит. Существует-ли способ при задании секции явно изменить аттрибуты данных в секции, т.е. типа приведения типов, только приведение флагов секций, чтобы компилятор не ругался?
Это сообщение отредактировал(а) savigm - 31.8.2009, 17:27 |
|||
|
||||
| 500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: нет Всего: 14 |
сушествует РеEditor в котором любой секции какие угодно можно атрибуты выставить (или не РЕ еслу е тебя ELF)))
в GCC не знаю как менять атриб секции я им не пользуюсь Это сообщение отредактировал(а) 500mhz - 31.8.2009, 17:33 -------------------- |
|||
|
||||
| smoke_man |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 447 Регистрация: 25.1.2007 Где: Рязань Репутация: 1 Всего: 17 |
При использовании section данные должны иметь первоначальное значение. Может быть еще в этом проблема?
-------------------- 0x2b|~0x2b |
|||
|
||||
| savigm |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 15.12.2008 Где: г. Зеленоград Репутация: нет Всего: нет |
smoke_man, нет, начальные значения присваиваются.
Очевидно единственный способ в Си запихнуть данные в секцию .text - это использование
Это сообщение отредактировал(а) savigm - 1.9.2009, 12:55 |
||||
|
|||||
| 500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: нет Всего: 14 |
хз даже в OpenWatcom есть умная опция пихания всего в одну секцию
-------------------- |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |