Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Dmitry Fedorov                       2:5020/400     05 Sep 2006  10:05:09
 To : Dmitry E. Oboukhov
 Subject : Re: получить чистый бинарник
 -------------------------------------------------------------------------------- 
 
 2006-09-04, Dmitry E. Oboukhov <Dmitry.E.Oboukhov@p151.f75.n5004.z2.fidonet.org>
 пишет:
 
 >
 > вопрос 1: как из C узнать размеры сегментов .text, .rodata и .data?
 > очень не хочется на Асме стартап код писать. но соответственно если
 > альтернатив нет, то тот же вопрос про АСМ: как узнать в нем размеры тех
 > же сегментов?
 
 info ld Scripts
 подскажет ответы на многие вопросы.
 
 extern char _text[], _etext[], _data[], _edata[], _bstart[], _bend[];
 
 ptrdiff_t textsize = _etext - _text + 1; // примерно так
 ptrdiff_t datasize = _edata - _data + 1; //
 
 но не для всех нужных тебе секций определны такие символы,
 так что придется тебе править скрипты линкера, добавляя символы
 начала и конца в нужные секции.
 > вопрос 2: есть ли гарантия того что линкуемое последним попадает в
 > конец?
 
 Да, на этом стоят стоят некоторые важные механизмы, в частности,
 таблицы конструкторов и деструкторов.
 
 > то есть теоретически можно было бы определить один из модулей с
 > псеводофункцией в сегменте .text (меткой) по которой и по адресу начала
 > сегмента .text вычислили бы его размер.
 
 Так и есть, смотри выше.
 
 > именно в таком порядке, то насколько можно быть уверенным что c.o
 > попадает точно в конец?
 
 можно.
 
 > вопрос 3: как слинковать так чтобы сегмент .data попадал сразу после
 > сегмента .text? то есть если .text меняет свои размеры от компиляции к
 > компиляции чтобы и .data менял свое положение?
 
 свой линкерный скрипт.
 --- ifmail v.2.15dev5.3
  * Origin: INP (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 получить чистый бинарник   Dmitry E. Oboukhov   16 Aug 2006 17:12:03 
 Re: получить чистый бинарник   Grishka Chervonets   17 Aug 2006 13:08:49 
 получить чистый бинарник   Dmitry Ponyatov   17 Aug 2006 18:14:08 
 получить чистый бинарник   Dmitry E. Oboukhov   04 Sep 2006 14:17:55 
 получить чистый бинарник   Sergey Khvatov   04 Sep 2006 15:09:40 
 получить чистый бинарник   Boris Shklyaev   04 Sep 2006 23:43:11 
 Re: получить чистый бинарник   Dmitry Fedorov   05 Sep 2006 10:05:09 
 получить чистый бинарник   Dmitry E. Oboukhov   05 Sep 2006 13:24:06 
 Re: получить чистый бинарник   Dmitry Fedorov   05 Sep 2006 17:03:48 
Архивное /ru.linux/10175a344824a.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional