Сейчас я вношу изменения в код gcc и приходится довольно долго ждать, пока он заново пересоберётся. Есть ли механизм, чтобы можно было динамически всё подгрузить в gcc. Я что-то пытался воспользоваться dl, но при make компилятор пишет что-то подобное
../../gccDistr/gcc/tree-cfg.c:80: undefined reference to `dlopen'
Есть ли способ не пересобирать gcc, когда вносишь изменения в свой код?
Здравствуйте, FDSC, Вы писали:
FDS>../../gccDistr/gcc/tree-cfg.c:80: undefined reference to `dlopen' FDS>Есть ли способ не пересобирать gcc, когда вносишь изменения в свой код?
По идее, тебе нужна только последняя стадия сборки GCC. Она работает достаточно быстро сама по себе.
Здравствуйте, 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 занимает пару минут. Хотя его окончания можно и не дожидаться.
Или пару минут — это и есть быстро? Просто как только прилинковать объектные файлы я не очень понимаю
Здравствуйте, FDSC, Вы писали:
C>>По крайней мере, когда я играл с treelang: http://stderr.org/doc/treelang-4.1-doc/treelang.html — оно всё собиралось достаточно быстро. FDS>Хм. А какая из них последняя и как делать только её? У меня один только make install занимает пару минут. Хотя его окончания можно и не дожидаться.
Там сначала строится промежуточный GCC, которым потом компилируется основной GCC. У меня есть подозрение, что у тебя запускается как раз его перестройка.
FDS>Или пару минут — это и есть быстро? Просто как только прилинковать объектные файлы я не очень понимаю
Нет, что-то около 10 секунд получалось. Поиграй с treelang'ом в каталоге gcc/treelang — там как раз свой makefile.
Здравствуйте, Roman Odaisky, Вы писали:
RO>А вот интересно, как гентушники обновляют GCC?
обновляется оно само... а вот если хочется конкретной версии:
`emerge =gcc-X.Y.Z` ну или `paludis -i =gcc-X.Y.Z` -- у кого как...
gcc это multislotный ebuild так что дальше проста переключаешь свой текущий компилятор gcc-config'ом на то что хочется и пользуешь на здоровье
Здравствуйте, StevenIvanov, Вы писали:
SI>Здравствуйте, FDSC, Вы писали:
FDS>>... FDS>>Есть ли способ не пересобирать gcc, когда вносишь изменения в свой код?
SI>А что, нельзя описать интерфейс, сделать свою динамическую библиотеку, прилинковать ее к gcc и пересобирать только её, м?
Ну дык я же писал, пытался dl использовать, но не фига не компилится, gcc для правильного компилирования с использованием dl нужно передать флаг -ldl, а куда его передать я найти не могу . Или это можно сделать как-то по другому, без dl?
Здравствуйте, 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 пустая
Здравствуйте, FDSC, Вы писали:
C>>Нет, что-то около 10 секунд получалось. Поиграй с treelang'ом в каталоге gcc/treelang — там как раз свой makefile. FDS>Странно, у меня там никаких Makefile нет FDS>В дистрибутиве вот это FDS>, а в конфигурационной директории вообще папка treelang пустая
Да, всё правильно. Из Makefile.in делается Makefile после того как ты его подключишь в основной GCC. Можно даже и напрямую automake'ом построить.
Здравствуйте, Cyberax, Вы писали:
FDS>>, а в конфигурационной директории вообще папка treelang пустая C>Да, всё правильно. Из Makefile.in делается Makefile после того как ты его подключишь в основной GCC. Можно даже и напрямую automake'ом построить.
Что-то там ничего не появляется (Makefile должен быть в конфигурационной директории?)
Кофигурирую gcc вот так
../gccDistr/configure --prefix=/home/vinny/gcc/gcc1/gccInstall/ --enable-languages=c,treelang
Здравствуйте, FDSC, Вы писали:
FDS>Здравствуйте, Cyberax, Вы писали:
FDS>>>, а в конфигурационной директории вообще папка treelang пустая C>>Да, всё правильно. Из Makefile.in делается Makefile после того как ты его подключишь в основной GCC. Можно даже и напрямую automake'ом построить.
FDS>Что-то там ничего не появляется (Makefile должен быть в конфигурационной директории?)
В смысле, появились файлы, но Makefile там нет
Re[8]: gcc недокомпилировася до конца, оказывается
Здравствуйте, 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 недокомпилировася до конца, оказывается
Здравствуйте, FDSC, Вы писали:
FDS>Что-то я совсем уже ничего не понимаю
Скопируй из лога команду (что-то типа "missing texinfo blah_blah"), убери missing, и выполни. В следующий раз оно мешать не будет.
Там какие-то глюки с configure, он texinfo не находит.
Здравствуйте, FDSC, Вы писали:
FDS>Здравствуйте, StevenIvanov, Вы писали:
SI>>Здравствуйте, FDSC, Вы писали:
FDS>>>... FDS>>>Есть ли способ не пересобирать gcc, когда вносишь изменения в свой код?
SI>>А что, нельзя описать интерфейс, сделать свою динамическую библиотеку, прилинковать ее к gcc и пересобирать только её, м?
FDS>Ну дык я же писал, пытался dl использовать, но не фига не компилится, gcc для правильного компилирования с использованием dl нужно передать флаг -ldl, а куда его передать я найти не могу . Или это можно сделать как-то по другому, без dl?
Дык причем вообще здесь dl? В скрипте (мейкфайл или в configure) пропиши имя своей библиотеки в нужном месте и все. Кстати так и dl сможешь подлинковать.
Здравствуйте, 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.
Здравствуйте, 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 какой-нибудь цели на ваш заголовочный файл экспорта.