Название: libstdc++ debug version
Отправлено: kifathegreat от Май 03, 2013, 00:25
Задался целью получить отладочную версию библиотеки libstdc++ gcc 4.8.0 x32 sjlj (с параметрами --enable-libstdcxx-debug --enable-libstdcxx-debug-flags='-Og -gdwarf-2'). Отрадно, что в этом я не одинок http://stackoverflow.com/questions/5701190/building-gccs-libstdc-with-debug-symbols-on-windows (http://stackoverflow.com/questions/5701190/building-gccs-libstdc-with-debug-symbols-on-windows). Скачал исходники MinGW src-4.8.0-release-rev1.tar.7z и MSYS msys+7za+wget+svn+git+mercurial+cvs-rev12.7z. Параметры конфигурирования gcc взял из файла info.txt, прилагаемом к бинарникам MinGW 4.8 x86. Настройка gcc потребовала предварительной сборки gmp, mpfr, mpc. Сборка же самого gcc закончилась с ошибкой: i686-w64-mingw32-gcc -c -DHAVE_CONFIG_H -O2 -pipe -I/i/temp/gcc-4.8.0/gmp -I/i/t emp/gcc-4.8.0/mpfr/src -I/i/temp/gcc-4.8.0/mpc/src -D__USE_MINGW_ACCESS -I. -I. ./.././libiberty/../include -W -Wall -Wwrite-strings -Wc++-compat -Wstrict-prot otypes -pedantic ../.././libiberty/regex.c -o regex.o ../.././libiberty/regex.c:305:27: error: conflicting types for 'uintptr_t' typedef unsigned long int uintptr_t; ^ In file included from c:\program_files_x86\mingw\4.8.0\i686-w64-mingw32\include\ crtdefs.h:10:0, from c:\program_files_x86\mingw\4.8.0\i686-w64-mingw32\include\ stddef.h:7, from c:\program_files_x86\mingw\4.8.0\lib\gcc\i686-w64-mingw32\ 4.8.0\include\stddef.h:1, from ../.././libiberty/regex.c:48: c:\program_files_x86\mingw\4.8.0\i686-w64-mingw32\include\_mingw.h:414:22: note: previous declaration of 'uintptr_t' was here typedef unsigned int uintptr_t; ^ Makefile:942: recipe for target `regex.o' failed
В связи с выше изложенным, у меня вопрос к создателям сборок MinGW - не создают ли они требуемую версию libstdc++? Если же нет, то в чем моя ошибка при сборке gcc? Помогите пожалуйста.
Название: Re: libstdc++ debug version
Отправлено: niXman от Май 03, 2013, 00:43
если я правильно понял, это вопрос к авторам MinGW-builds?
выполните следующую последовательность действий: 1. клонируйте git версию системы сборки: git clone git://github.com/niXman/mingw-builds.git 2. откройте в текстовом редакторе скрипт сценария для нужной Вам версии GCC. (для 4.8.0, это: mingw-builds/scripts/gcc-4.8.0.sh) 3. в секции 'CONFIGURE_FLAGS', добавьте/удалите нужные флаги/опции. 4. в корне каталога mingw-builds, выполните: ./build gcc-4.8.0 x32 5. отпишитесь об ошибках.
Название: Re: libstdc++ debug version
Отправлено: kifathegreat от Май 03, 2013, 20:58
Собрал. Спасибо огромное за помощь. Все сделал как Вы сказали. В секции 'CONFIGURE_FLAGS' файла mingw-builds/scripts/gcc-4.8.0.sh поменял --disable-libstdcxx-debug на --enable-libstdcxx-debug (--enable-libstdcxx-debug-flags ставить не стал, т.к. утилита конфигурирования gcc постоянно ругалась на неизвестные опции). При первом запуске возникли проблемы с библиотекой zlib - не удалось скачать исходники с сайта проекта. Исправил файл zlib.sh: VERSION=1.2.8 URL=http://zlib.net/zlib-${VERSION}.tar.gz TYPE=.tar.gz. $ ./build gcc-4.8.0 x32 --preload --use-lto --exceptions=sjlj --threads=posix --jobs=8 -> preload sources for building MinGW-gcc-4.8.0-multilib-x32-sjlj -> libiconv-x32 ---> downloaded ---> unpacked -> libiconv-x64 ---> downloaded ---> unpacked -> zlib ---> downloaded ---> unpacked -> zlib ---> downloaded ---> unpacked -> gmp ---> downloaded ---> unpacked -> mpfr ---> downloaded ---> unpacked -> mpc ---> downloaded ---> unpacked -> ppl ---> downloaded ---> unpacked -> isl ---> downloaded ---> unpacked -> cloog ---> downloaded ---> unpacked -> mingw-w64-api ---> downloaded -> mingw-w64-crt ---> downloaded -> winpthreads-x32 ---> downloaded -> winpthreads-x64 ---> downloaded -> binutils ---> downloaded ---> unpacked -> gcc-4.8.0 ---> downloaded ---> unpacked -> mingw-w64-libraries-libmangle ---> downloaded -> mingw-w64-tools-gendef ---> downloaded -> mingw-w64-tools-genidl ---> downloaded -> mingw-w64-tools-genpeimg ---> downloaded -> mingw-w64-tools-widl ---> downloaded -> libgnurx ---> downloaded ---> unpacked -> bzip2 ---> downloaded ---> unpacked -> libffi ---> downloaded ---> unpacked -> expat ---> downloaded ---> unpacked -> sqlite ---> downloaded ---> unpacked -> ncurses ---> downloaded ---> unpacked -> readline ---> downloaded ---> unpacked -> python2 ---> downloaded ---> unpacked -> gdb ---> downloaded ---> unpacked -> make_git ---> downloaded -> start building x32-4.8.0-multilib-posix-sjlj -> libiconv-x32-pre -> libiconv-x32 ---> downloaded ---> unpacked ---> configured ---> built ---> installed -> libiconv-x32-post -> libiconv-x64-pre -> libiconv-x64 ---> downloaded ---> unpacked ---> configured ---> built ---> installed -> libiconv-x64-post -> zlib ---> downloaded ---> unpacked ---> patched -> zlib-x32-post -> zlib ---> downloaded ---> unpacked ---> patched -> zlib-x64-post -> gmp ---> downloaded ---> unpacked ---> configured ---> built ---> installed -> mpfr ---> downloaded ---> unpacked ---> configured ---> built ---> installed -> mpc ---> downloaded ---> unpacked ---> configured ---> built ---> installed -> ppl ---> downloaded ---> unpacked ---> patched ---> configured ---> built ---> installed -> isl ---> downloaded ---> unpacked ---> configured ---> built ---> installed -> cloog ---> downloaded ---> unpacked ---> configured ---> built ---> installed -> mingw-w64-api ---> downloaded ---> configured ---> built ---> installed -> mingw-w64-crt ---> downloaded ---> configured ---> built ---> installed -> winpthreads-x32-pre -> winpthreads-x32 ---> downloaded ---> configured ---> built ---> installed -> winpthreads-x32-post -> winpthreads-x64-pre -> winpthreads-x64 ---> downloaded ---> configured ---> built ---> installed -> winpthreads-x64-post -> mingw-w64-runtime-post -> binutils ---> downloaded ---> unpacked ---> configured --> building... done --> installing... done -> binutils-post -> gcc-4.8.0 ---> downloaded ---> unpacked --> patching...done --> configure... done --> building... done --> installing... done -> gcc-post
Сборка закончилась успешно, только не все, что было скачено собиралось, например gdb, sqlite, widl. Основная цель, получить отладочную версию libstdc++, достигнута. Еще раз большое спасибо.
Название: Re: libstdc++ debug version
Отправлено: niXman от Май 03, 2013, 21:05
не все, что было скачено собиралось, например gdb, sqlite, widl. хм... сейчас запущу сборку, чтоб проверить. еще неделю назад, все собиралось успешно.
Название: Re: libstdc++ debug version
Отправлено: niXman от Май 04, 2013, 08:29
ну чудеса таки... у меня все собралось.
ссылку на zilb только поправить пришлось.
Название: Re: libstdc++ debug version
Отправлено: kifathegreat от Май 04, 2013, 22:03
Возможно дело в том, что в качестве toolchains подсунул 4.8.0 rev2, по умолчанию, как я понял, у Вас используется версия 4.7.2. Но последнее, что я увидел в консоли: -> gcc-post. Судя по скопированным dll-кам gcc-post отработал успешно. Не нашел журнала в котором можно посмотреть, почему не запустился mingw-w64-libraries-libmangle. Такой существует? У меня директория mingw-builds располагается в домашней и сборка осуществляется там же, в этом не может быть проблема?
Название: Re: libstdc++ debug version
Отправлено: kifathegreat от Май 11, 2013, 15:20
Разобрался. Выполнение основного скрипта (build) останавливалось из-за отсутствия необходимых полномочий, т.к. запуск осуществлялся от обычного пользователя. Кроме этого, заменил make-git на make в build, make-git выполнялся с ошибкой.
Название: Re: libstdc++ debug version
Отправлено: niXman от Май 20, 2013, 15:40
make-git выполнялся с ошибкой. уже исправлено.
|