Russian Qt Forum
Март 28, 2024, 21:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: libstdc++ debug version  (Прочитано 7546 раз)
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. Скачал исходники 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? Помогите пожалуйста.
Записан
niXman
Гость
« Ответ #1 : Май 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. отпишитесь об ошибках.
Записан
kifathegreat
Гость
« Ответ #2 : Май 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++, достигнута. Еще раз большое спасибо.
Записан
niXman
Гость
« Ответ #3 : Май 03, 2013, 21:05 »

Цитировать
не все, что было скачено собиралось, например gdb, sqlite, widl.
хм... сейчас запущу сборку, чтоб проверить. еще неделю назад, все собиралось успешно.
Записан
niXman
Гость
« Ответ #4 : Май 04, 2013, 08:29 »

ну чудеса таки... у меня все собралось.

ссылку на zilb только поправить пришлось.
Записан
kifathegreat
Гость
« Ответ #5 : Май 04, 2013, 22:03 »

Возможно дело в том, что в качестве toolchains подсунул 4.8.0 rev2, по умолчанию, как я понял, у Вас используется версия 4.7.2. Но последнее, что я увидел в консоли: -> gcc-post. Судя по скопированным dll-кам gcc-post отработал успешно. Не нашел журнала в котором можно посмотреть, почему не запустился mingw-w64-libraries-libmangle. Такой существует? У меня директория mingw-builds располагается в домашней и сборка осуществляется там же, в этом не может быть проблема?
Записан
kifathegreat
Гость
« Ответ #6 : Май 11, 2013, 15:20 »

Разобрался. Выполнение основного скрипта (build) останавливалось из-за отсутствия необходимых полномочий, т.к. запуск осуществлялся от обычного пользователя. Кроме этого, заменил make-git на make  в build, make-git выполнялся с ошибкой.
Записан
niXman
Гость
« Ответ #7 : Май 20, 2013, 15:40 »

Цитировать
make-git выполнялся с ошибкой.
уже исправлено.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 20.