Как компилировать свои изменения в gcc
От: FDSC Россия consp11.github.io блог
Дата: 03.06.08 16:20
Оценка:
Сейчас я вношу изменения в код gcc и приходится довольно долго ждать, пока он заново пересоберётся. Есть ли механизм, чтобы можно было динамически всё подгрузить в gcc. Я что-то пытался воспользоваться dl, но при make компилятор пишет что-то подобное
../../gccDistr/gcc/tree-cfg.c:80: undefined reference to `dlopen'

Есть ли способ не пересобирать gcc, когда вносишь изменения в свой код?
Re: Как компилировать свои изменения в gcc
От: Cyberax Марс  
Дата: 03.06.08 16:31
Оценка:
Здравствуйте, FDSC, Вы писали:

FDS>../../gccDistr/gcc/tree-cfg.c:80: undefined reference to `dlopen'

FDS>Есть ли способ не пересобирать gcc, когда вносишь изменения в свой код?
По идее, тебе нужна только последняя стадия сборки GCC. Она работает достаточно быстро сама по себе.

По крайней мере, когда я играл с treelang: http://stderr.org/doc/treelang-4.1-doc/treelang.html — оно всё собиралось достаточно быстро.
Sapienti sat!
Re[2]: Как компилировать свои изменения в gcc
От: FDSC Россия consp11.github.io блог
Дата: 03.06.08 16:43
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, FDSC, Вы писали:


FDS>>../../gccDistr/gcc/tree-cfg.c:80: undefined reference to `dlopen'

FDS>>Есть ли способ не пересобирать gcc, когда вносишь изменения в свой код?
C>По идее, тебе нужна только последняя стадия сборки GCC. Она работает достаточно быстро сама по себе.

C>По крайней мере, когда я играл с treelang: http://stderr.org/doc/treelang-4.1-doc/treelang.html — оно всё собиралось достаточно быстро.


Хм. А какая из них последняя и как делать только её? У меня один только make install занимает пару минут. Хотя его окончания можно и не дожидаться.
Или пару минут — это и есть быстро? Просто как только прилинковать объектные файлы я не очень понимаю
Re: offtopic
От: Roman Odaisky Украина  
Дата: 03.06.08 16:52
Оценка:
А вот интересно, как гентушники обновляют GCC?
До последнего не верил в пирамиду Лебедева.
Re: Может кто-нибудь просто знает, куда вставить флаг -ldl?
От: FDSC Россия consp11.github.io блог
Дата: 03.06.08 17:23
Оценка:
Re: Как компилировать свои изменения в gcc
От: php-coder Чехия http://slava-semushin.blogspot.com
Дата: 03.06.08 17:33
Оценка:
Здравствуйте, FDSC, Вы писали:

FDS>Есть ли способ не пересобирать gcc, когда вносишь изменения в свой код?


ccache ?
Re[3]: Как компилировать свои изменения в gcc
От: Cyberax Марс  
Дата: 03.06.08 18:31
Оценка:
Здравствуйте, FDSC, Вы писали:

C>>По крайней мере, когда я играл с treelang: http://stderr.org/doc/treelang-4.1-doc/treelang.html — оно всё собиралось достаточно быстро.

FDS>Хм. А какая из них последняя и как делать только её? У меня один только make install занимает пару минут. Хотя его окончания можно и не дожидаться.
Там сначала строится промежуточный GCC, которым потом компилируется основной GCC. У меня есть подозрение, что у тебя запускается как раз его перестройка.

FDS>Или пару минут — это и есть быстро? Просто как только прилинковать объектные файлы я не очень понимаю

Нет, что-то около 10 секунд получалось. Поиграй с treelang'ом в каталоге gcc/treelang — там как раз свой makefile.
Sapienti sat!
Re: Как компилировать свои изменения в gcc
От: StevenIvanov США  
Дата: 04.06.08 06:23
Оценка:
Здравствуйте, FDSC, Вы писали:

FDS>...

FDS>Есть ли способ не пересобирать gcc, когда вносишь изменения в свой код?

А что, нельзя описать интерфейс, сделать свою динамическую библиотеку, прилинковать ее к gcc и пересобирать только её, м?
Re[2]: offtopic
От: zaufi Земля  
Дата: 04.06.08 11:31
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>А вот интересно, как гентушники обновляют GCC?


обновляется оно само... а вот если хочется конкретной версии:
`emerge =gcc-X.Y.Z` ну или `paludis -i =gcc-X.Y.Z` -- у кого как...
gcc это multislotный ebuild так что дальше проста переключаешь свой текущий компилятор gcc-config'ом на то что хочется и пользуешь на здоровье
Re[2]: Как компилировать свои изменения в gcc
От: FDSC Россия consp11.github.io блог
Дата: 04.06.08 11:32
Оценка:
Здравствуйте, StevenIvanov, Вы писали:

SI>Здравствуйте, FDSC, Вы писали:


FDS>>...

FDS>>Есть ли способ не пересобирать gcc, когда вносишь изменения в свой код?

SI>А что, нельзя описать интерфейс, сделать свою динамическую библиотеку, прилинковать ее к gcc и пересобирать только её, м?


Ну дык я же писал, пытался dl использовать, но не фига не компилится, gcc для правильного компилирования с использованием dl нужно передать флаг -ldl, а куда его передать я найти не могу . Или это можно сделать как-то по другому, без dl?
Re[4]: Как компилировать свои изменения в gcc
От: FDSC Россия consp11.github.io блог
Дата: 04.06.08 11:44
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Там сначала строится промежуточный GCC, которым потом компилируется основной GCC. У меня есть подозрение, что у тебя запускается как раз его перестройка.


Да, она запускается, это точно, на первой стадии и валится.

FDS>>Или пару минут — это и есть быстро? Просто как только прилинковать объектные файлы я не очень понимаю

C>Нет, что-то около 10 секунд получалось. Поиграй с treelang'ом в каталоге gcc/treelang — там как раз свой makefile.

Странно, у меня там никаких Makefile нет
В дистрибутиве вот это
ChangeLog config-lang.in lex.l tree-convert.c treelang.texi
Make-lang.in lang-specs.h parse.y tree1.c treetree.c
README lang.opt spec.c treelang.h treetree.h

, а в конфигурационной директории вообще папка treelang пустая
Re[5]: Как компилировать свои изменения в gcc
От: Cyberax Марс  
Дата: 04.06.08 11:46
Оценка:
Здравствуйте, FDSC, Вы писали:

C>>Нет, что-то около 10 секунд получалось. Поиграй с treelang'ом в каталоге gcc/treelang — там как раз свой makefile.

FDS>Странно, у меня там никаких Makefile нет
FDS>В дистрибутиве вот это
FDS>, а в конфигурационной директории вообще папка treelang пустая
Да, всё правильно. Из Makefile.in делается Makefile после того как ты его подключишь в основной GCC. Можно даже и напрямую automake'ом построить.
Sapienti sat!
Re[6]: Как компилировать свои изменения в gcc
От: FDSC Россия consp11.github.io блог
Дата: 04.06.08 12:29
Оценка:
Здравствуйте, Cyberax, Вы писали:

FDS>>, а в конфигурационной директории вообще папка treelang пустая

C>Да, всё правильно. Из Makefile.in делается Makefile после того как ты его подключишь в основной GCC. Можно даже и напрямую automake'ом построить.

Что-то там ничего не появляется (Makefile должен быть в конфигурационной директории?)

Кофигурирую gcc вот так
../gccDistr/configure --prefix=/home/vinny/gcc/gcc1/gccInstall/ --enable-languages=c,treelang
Re[7]: Как компилировать свои изменения в gcc
От: FDSC Россия consp11.github.io блог
Дата: 04.06.08 13:02
Оценка:
Здравствуйте, FDSC, Вы писали:

FDS>Здравствуйте, Cyberax, Вы писали:


FDS>>>, а в конфигурационной директории вообще папка treelang пустая

C>>Да, всё правильно. Из Makefile.in делается Makefile после того как ты его подключишь в основной GCC. Можно даже и напрямую automake'ом построить.

FDS>Что-то там ничего не появляется (Makefile должен быть в конфигурационной директории?)


В смысле, появились файлы, но Makefile там нет
Re[8]: gcc недокомпилировася до конца, оказывается
От: FDSC Россия consp11.github.io блог
Дата: 04.06.08 14:11
Оценка:
Здравствуйте, FDSC, Вы писали:

FDS>>Что-то там ничего не появляется (Makefile должен быть в конфигурационной директории?)


FDS>В смысле, появились файлы, но Makefile там нет


gcc недокомпилировася до конца, оказывается.
WARNING: `makeinfo' is missing on your system. You should only need it if
you modified a `.texi' or `.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy `make' (AIX,
DU, IRIX). You might want to install the `Texinfo' package or
the `GNU make' package. Grab either from any GNU archive site.

Что-то я совсем уже ничего не понимаю
Re[9]: gcc недокомпилировася до конца, оказывается
От: Cyberax Марс  
Дата: 04.06.08 14:18
Оценка:
Здравствуйте, FDSC, Вы писали:

FDS>Что-то я совсем уже ничего не понимаю

Скопируй из лога команду (что-то типа "missing texinfo blah_blah"), убери missing, и выполни. В следующий раз оно мешать не будет.

Там какие-то глюки с configure, он texinfo не находит.
Sapienti sat!
Re[3]: Как компилировать свои изменения в gcc
От: StevenIvanov США  
Дата: 05.06.08 09:21
Оценка:
Здравствуйте, FDSC, Вы писали:

FDS>Здравствуйте, StevenIvanov, Вы писали:


SI>>Здравствуйте, FDSC, Вы писали:


FDS>>>...

FDS>>>Есть ли способ не пересобирать gcc, когда вносишь изменения в свой код?

SI>>А что, нельзя описать интерфейс, сделать свою динамическую библиотеку, прилинковать ее к gcc и пересобирать только её, м?


FDS>Ну дык я же писал, пытался dl использовать, но не фига не компилится, gcc для правильного компилирования с использованием dl нужно передать флаг -ldl, а куда его передать я найти не могу . Или это можно сделать как-то по другому, без dl?


Дык причем вообще здесь dl? В скрипте (мейкфайл или в configure) пропиши имя своей библиотеки в нужном месте и все. Кстати так и dl сможешь подлинковать.
Re[4]: Как компилировать свои изменения в gcc
От: FDSC Россия consp11.github.io блог
Дата: 05.06.08 11:23
Оценка:
Здравствуйте, StevenIvanov, Вы писали:

SI>Здравствуйте, FDSC, Вы писали:


FDS>>Здравствуйте, StevenIvanov, Вы писали:


SI>>>Здравствуйте, FDSC, Вы писали:


FDS>>>>...

FDS>>>>Есть ли способ не пересобирать gcc, когда вносишь изменения в свой код?

SI>>>А что, нельзя описать интерфейс, сделать свою динамическую библиотеку, прилинковать ее к gcc и пересобирать только её, м?


FDS>>Ну дык я же писал, пытался dl использовать, но не фига не компилится, gcc для правильного компилирования с использованием dl нужно передать флаг -ldl, а куда его передать я найти не могу . Или это можно сделать как-то по другому, без dl?


SI>Дык причем вообще здесь dl? В скрипте (мейкфайл или в configure) пропиши имя своей библиотеки в нужном месте и все. Кстати так и dl сможешь подлинковать.


Если бы я знал, что такое "нужное место"... тем более, если я просто пропишу в makefile, то всё равно make быстрее работать не будет, так как мне всё равно каждый раз придётся проект линковать с gcc.
Re[3]: offtopic
От: Roman Odaisky Украина  
Дата: 05.06.08 14:37
Оценка:
Здравствуйте, zaufi, Вы писали:

RO>>А вот интересно, как гентушники обновляют GCC?


Z>обновляется оно само... а вот если хочется конкретной версии:

Z>`emerge =gcc-X.Y.Z` ну или `paludis -i =gcc-X.Y.Z` -- у кого как... ;)
Z>gcc это multislotный ebuild так что дальше проста переключаешь свой текущий компилятор gcc-config'ом на то что хочется и пользуешь на здоровье

Я имел в виду, он компилирует исходники нового GCC тем, который есть, а потом еще раз тем, который был только что собран?
До последнего не верил в пирамиду Лебедева.
Re[5]: Как компилировать свои изменения в gcc
От: Аноним  
Дата: 05.06.08 18:06
Оценка:
Здравствуйте, FDSC, Вы писали:

FDS>...

FDS>Если бы я знал, что такое "нужное место"... тем более, если я просто пропишу в makefile, то всё равно make быстрее работать не будет, так как мне всё равно каждый раз придётся проект линковать с gcc.

Ну неужели там вообще нигде никакой секции LIBS нету?

Да, и зачем линковать при условии неизменности интерфейса вашей библиотеки?
А если и интерфейс изменится — поставьте dependency какой-нибудь цели на ваш заголовочный файл экспорта.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.