LINUX.ORG.RU

Использование gs и fs при кодогенерации gcc


1

2

Я строю большой исполняемый файл для своей системы где каждому объекту (в конфиге линкера ld) ставлю адрес, его имя, флаги. В конечном счете имею некоторые rom объекты (секции) которые загружаю в соответствующие сегмент интел (без страничной адресации).
Нужно сделать так чтобы все обращения к rom объектам (которые в сегментах только для чтения (для простоты допустим в одном)) шли через сегментные регистры fs и gs (ds только для ram), как этого можно достичь?


Ответ на: комментарий от AF

странно, но я нашел эту опцию в документации на версию 4.6.0.
Правда ничего не понятно что это конкретно и как работает :(

NoName
() автор топика
Ответ на: комментарий от AF

кодогенерация происходит на уровне компилятора и ему нужно сказать как-то что нужно использовать эти сегментные регистры только для данных типа ром, но как это сделать (((
в ваткоме есть какая-та неясная поддержка чего-то подобного но там не слова о ром, так что возможно это не то.
По скудному описанию из доков гцц 4.6.0 там появляются функции установки и считывания содержимого этих регистров, но это что-то не то что мне нужно...

NoName
() автор топика
Ответ на: комментарий от NoName

Чукча не читатель, чукча писатель?

Повторяю еще раз gcc 4.7!

ЗЫ: Установить/считать и сейчас не проблема.

AF ★★★
()
Ответ на: комментарий от AF

без документации ничего не понятно

NoName
() автор топика
Ответ на: комментарий от NoName

и там само по себе значение fs/gs ничего не значит. а на х64 на него вообще похеру, база сегмента через MSR определяется, а лимит всегда 100500

ckotinko ☆☆☆
()
Ответ на: комментарий от ckotinko

хватит писать ерунду. Отвечайте по существу. У меня fs & gs значат и я хочу подддержки компилятора.

NoName
() автор топика
Ответ на: комментарий от anonymous

есть конкретная обоснованная необходимость.

NoName
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.