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

 
 
> Порядок компиляции файлов
sergey sva
сообщение Mar 3 2009, 17:28
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Для компиляции исходников используется маке файл в gcc, Во время написания маке файла возник
вопрос, в каком порядке лучше компилировать файлы?, попробовал очередность поменял ошибок нет,
в сети поискал, не чего нужного не нашел, может есть какие рекомендации ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ARV
сообщение Mar 4 2009, 05:24
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Цитата(zltigo @ Mar 3 2009, 23:25) *
АБСОЛЮТНО безразлично.
а позволю себе вопрос: вот у компоновщика есть опция relax - когда он пытается заменить дальние джампы и вызовы подпрограмм короткими... и вот в случае, если из-за порядка сборки отельные секции расположатся рядом - этот этап даст существенный эффект, т.к. много "перекрестных" вызовов заменится на короткие, а если они окажутся далеко друг от друга - эффекта не будет. или компоновщик более интеллектуальный и тасует секции (если можно, конечно) уже после компиляции сам?
вообще, есть смысл в моих размышлениях или они надуманы?


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 4 2009, 07:59
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(ARV @ Mar 4 2009, 08:24) *
а позволю себе вопрос: вот у компоновщика есть опция relax - когда он ..

Позволю себе заменить, что вопрос был о "компиляторе", а не о "линкере", хотя, возможно, автор их просто не отличает sad.gif. Линкеры по нынешним временам, тоже стали навороченными и линкуют, бывает, не из классических "объектиков" из неких промежуточных представлений, но по любому даже, если речь идет о линкере оказать разумную помощь подсовывая ему объекты линковки в "оптимальном" порядке не светит.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
ARV
сообщение Mar 4 2009, 08:27
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Цитата(zltigo @ Mar 4 2009, 10:59) *
Позволю себе заменить, что вопрос был о "компиляторе", а не о "линкере", хотя, возможно, автор их просто не отличает sad.gif. Линкеры по нынешним временам, тоже стали навороченными и линкуют, бывает, не из классических "объектиков" из неких промежуточных представлений, но по любому даже, если речь идет о линкере оказать разумную помощь подсовывая ему объекты линковки в "оптимальном" порядке не светит.
логично.
мой вопрос был продиктован тем, что где-то я встречал крик души (по-моему, даже на этом форуме), что от перестановки порядка функций в файле менялся размер итогового файла, дескать, это позволяло оптимизатору находить нечто общее в них... вот и предположил, что и изменение порядка сборки может создать подобные прецеденты...

P.S. C учетом того, что по идеологии GCC весь процесс компиляции и сборки может заключаться во вводе единственной командной строки для (как там правильно?) front-end компилятора, не удивительно, что многие начинают не различать компиляцию и компноновку smile.gif


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 4 2009, 09:10
Сообщение #5


Гуру
******

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



Цитата(ARV @ Mar 4 2009, 09:18) *
ладно, если вы прочли все мануалы, прошу вас ответить: а функции из модулей компонуются в секцию .text в порядке обработки модулей или как-то иначе?
Предлагаете пересказать вам документацию? wink.gif Линкер обрабатывает файлы в том порядке, в каком они указаны в его командной строке. Входные секции раскладываются в выходные в том порядке, который указан в скрипте линкера. А вариантов там предусмотрено множество - от поименного указания каждого файла или группы файлов до сортировки их по нескольким критериям. Т.е. это означает, что если в скрипте указана сортировка по именам и в командной строке указаны файлы a.o, c.o, b.o, то при добавлении секции text из b.o она будет вставлена между a.text и c.text. А если в скрипте не указана сортировка - то будет добавлена вслед за c.text

Но порядок компиляции не влияет ни на что.

Цитата(ARV @ Mar 4 2009, 10:27) *
во вводе единственной командной строки для (как там правильно?) front-end компилятора,
программа gcc (gcc.exe) - драйвер. Она вызывает остальные программы (препроцессор, компилятор, ассемблер, линкер). Это легко увидеть, запустив компиляцию с ключем -v. front-end переводит текст с языка высокого уровня во внутреннее представление, back-end генерит из внутреннего представления ассемблерный текст для целевого процессора. Подробности тут.


--------------------
На любой вопрос даю любой ответ
"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

Сообщений в этой теме
- sergey sva   Порядок компиляции файлов   Mar 3 2009, 17:28
- - zltigo   Цитата(sergey sva @ Mar 3 2009, 20:28) Во...   Mar 3 2009, 20:25
|- - MrYuran   Цитата(ARV @ Mar 4 2009, 08:24) или компо...   Mar 4 2009, 05:48
||- - ARV   Цитата(MrYuran @ Mar 4 2009, 08:48) есть ...   Mar 4 2009, 07:18
||- - ReAl   Цитата(MrYuran @ Mar 4 2009, 07:48) есть ...   Mar 4 2009, 23:39
||- - ARV   Цитата(ReAl @ Mar 5 2009, 02:39) --combin...   Mar 5 2009, 10:07
||- - _Pasha   Цитата(ARV @ Mar 5 2009, 13:07) но вот ин...   Mar 5 2009, 10:44
||- - ReAl   Цитата(ARV @ Mar 5 2009, 12:07) не знаю, ...   Mar 9 2009, 20:05
|- - gotty   Цитата(ARV @ Mar 4 2009, 07:24) или компо...   Mar 4 2009, 07:07
|- - ARV   Цитата(Сергей Борщ @ Mar 4 2009, 12:10) П...   Mar 4 2009, 10:24
|- - Сергей Борщ   Цитата(ARV @ Mar 4 2009, 12:24) но вопрос...   Mar 4 2009, 10:50
|- - ARV   Цитата(Сергей Борщ @ Mar 4 2009, 13:50) Е...   Mar 4 2009, 13:03
- - ARV   ReAl, я делал практически точно так же, даже проще...   Mar 10 2009, 05:21
- - ReAl   Цитата(ARV @ Mar 10 2009, 07:21) опцию я ...   Mar 10 2009, 07:34


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 03:35
Рейтинг@Mail.ru


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