Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Сборки MinGW (GCC-win32/win64) |
Автор: boostcoder 30.7.2011, 20:09 |
с этого момента, буду производить тестовые/пререлизные/релизные сборки mingw. файлы с пометкой snapshot и prerelease - не стабильные версии. в реальных проектах использовать не рекомендую. использую для тестирования новых фитчей. файлы с пометкой release - стабильные, прошедшие тесты. скачать можно http://code.google.com/p/mingw-builds/downloads/list. в скором времени начну формировать пакеты для разработчиков состоящие из компилятора(mingw), IDE(http://qt.nokia.com/products/developer-tools//http://www.codeblocks.org//http://www.bloodshed.net/devcpp.html/http://wxdsgn.sourceforge.net/), и некоторого набора предкомпилированных библиотек(http://www.boost.org/, http://www.wxwidgets.org/, http://qt.nokia.com/, http://www.openssl.org/, и еще каких-то.. понять бы что в спросе...). пакеты не будут требовать установки/настройки. распаковал - используй. |
Автор: Sahab 30.7.2011, 20:26 |
boostcoder, кул... ато в инете только офф.сборки да tdm, ито - 4.5.2 |
Автор: boostcoder 31.7.2011, 07:29 |
моя первая сборка стабильной версии gcc-4.6.1 для windows(т.е. MinGW) с полной поддержкой http://en.wikipedia.org/wiki/Link-time_optimization, http://en.wikipedia.org/wiki/OpenMP, http://gcc.gnu.org/wiki/Graphite, http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.4/a01022.html и http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.4/a01000.html. скачать можно http://code.google.com/p/mingw-builds/downloads/detail?name=mingw32-gcc-4.6.1-release-lto_fixed%2Bfor_nanosleep_patched.7z&can=2&q=. бесплатно! при использовании классов из http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.4/a01000.html, добавляйте опцию "-lpthread". в будущих сборках исправлю. |
Автор: kemiisto 31.7.2011, 08:07 |
Неа. Есть ещё http://www.equation.com/servlet/equation.cmd?fa=fortran. Там и 4.6 и 4.7 есть. boostcoder, а ты можешь запилить поддержку LTO (Link-Time Optimization)? |
Автор: boostcoder 31.7.2011, 08:20 |
они иногда грешат тем, что собирают компилеры на Cygwin`е. на продукт производимый компилятором это конечно никак не сказывается, но все же, зачем эмуляция, если можно нативно? в смысле "запилить" ? в этих сборках она есть. по твоему блогу проверял: http://kemiisto.blogspot.com/2010/09/lto.html |
Автор: kemiisto 31.7.2011, 08:27 |
boostcoder, извини, не посмотрел. |
Автор: boostcoder 31.7.2011, 08:41 | ||
эм.. обнаружил такую неудобность... если собирать коды из блога kemiisto с отключенным LTO, то линкер ругается на unresolved externals на pthread`ы. если LTO включить - все ок. получется что с отключенным LTO ничего не собрать. ушел разбираться. сорри Добавлено через 3 минуты и 27 секунд OpenMP линкуется как надо. и этот код тоже:
странно... что-то я с ключами configure намутил Добавлено через 8 минут и 5 секунд если отключить LTO и при этом добавить "-lpthread" - все равно линкер ругается. какие-то взаимоисключающие опции ведать указал.. |
Автор: boostcoder 31.7.2011, 09:53 |
kemiisto, кстати. в сборках присутствует только g++. а ты, насколько мне известно, еще и фортран юзаешь.. в принципе он собирается с полпинка, так что могу включить. вообще не включал остальные ЯП чтоб архивы сильно не росли. там только жава 150Мб занимает не в сжатом виде.. |
Автор: boostcoder 31.7.2011, 17:09 |
исправил. качать http://code.google.com/p/mingw-builds/downloads/detail?name=mingw32-gcc-4.6.1-release-lto_fixed%2Bfor_nanosleep_patched.7z&can=2&q=. |
Автор: boostcoder 31.7.2011, 22:36 |
скажите, кто-то тестил последнюю сборку? я хочу сообществу GNU-gcc предложить применить мой патч в основную ветку, для корректной сборки MinGW с поддержкой всех перечисленных фитчей. буду благодарен если кто-то попробует собрать и потестить свои реальные проекты. спасибо. |
Автор: boostcoder 6.8.2011, 21:04 |
залил новую сборку: http://code.google.com/p/mingw-builds/downloads/detail?name=mingw32-gcc-4.7.0-snapshot-20110805.7z&can=2&q= пофиксил: 1. Исправлена необходимость указывать "-lpthread" при линковке с использованием std::threads классов. 2. Исправлена ошибка линковки при использовании std::async. 3. Использована возможность указать способ линковки стандартных библиотек. По умолчанию, линкуются shared-версии. При указании линкеру флага "-static" - используются статические библиотеки. |
Автор: Garese 12.8.2011, 23:01 |
Что то http://code.google.com/p/mingw-builds/downloads/detail?name=mingw32-gcc-4.6.1-release-lto_fixed%2Bfor_nanosleep_patched.7z&can=2&q= откомпилированные файлы минимум 4 Мб получаются. |
Автор: boostcoder 13.8.2011, 02:20 |
Garese, вы невероятно последовательны. так, к примеру, вы сообщили о используемых вами технологиях и опциях компилятора/линкера. а вообще, больше похоже на тупой флуд... |
Автор: Garese 13.8.2011, 11:04 | ||
g++ -c hello.cpp g++ -o hello hello.o На выходе файл 3.94Mb. Если компилить официальной сборкой 4.5.2 или вашей gcc-4.7.0-snapshot-20110805, то все нормально. А вообще, большое спасибо за сборку. |
Автор: boostcoder 13.8.2011, 11:15 |
Garese, линкеру, опцию "-s" добавьте же. |
Автор: Garese 13.8.2011, 11:28 |
Добавил, все равно великоват 600Kb. Он по умолчанию -static подставляет походу, как это отключить? |
Автор: boostcoder 13.8.2011, 12:30 |
да. 4.6.1-release-lto_fixed+patched_for_nanosleep собран так, что использует только статическую линковку. постараюсь пересобрать так чтоб была возможность указывать способ линковки. |
Автор: boostcoder 16.8.2011, 12:00 |
залил новую сборку: http://code.google.com/p/mingw-builds/downloads/detail?name=mingw32-gcc-4.7.0-snapshot-20110815.7z. Исправлен баг вызывающий "зацикливание" при использовании omp_set_num_threads(). При использовании классов из std::thread`s части, необходимо добавлять линкеру флаг "-static". Иначе получим исключение. Разбираюсь... Добавлено Добавлено @ 11:55 В планах: 1. перейти на использование pthreads-w32, вместо используемой сейчас winpthreads. 2. разобраться со сложностями сборки версий 4.6.1-4.6.2 возникшими в следствии изменения конфигурационных скриптов в офф. репозитарии. |
Автор: boostcoder 28.8.2011, 16:30 |
долгожданный релиз 4.6.1: http://code.google.com/p/mingw-builds/downloads/detail?name=mingw32-gcc-4.6.1-release-20110828.7z пора готовиться к релизу 4.6.2 |
Автор: boostcoder 30.8.2011, 15:58 |
пересобрал релиз 4.6.1: http://code.google.com/p/mingw-builds/downloads/list исправлен последний известный баг("При использовании классов из std::thread`s части, необходимо добавлять линкеру флаг "-static". Иначе получим исключение.") путем сборки компилятора без использования динамических библиотек. с этого момента, сборка версии 4.6.1 считается стабильной и завершенной. с этого момента, по просьбам пользователей, буду заливать сборки в виде .7z и .zip архивов. в архив добавлены следующие компоненты: 1. GNU make-3.82 2. libpython-2.7 3. GNU gdb-7.3a Добавлено @ 16:06 нарвался на такую новость: http://software.intel.com/en-us/articles/intel-cilk-plus/ не понял, с версии 4.7.0, Cilk™ Plus будет входить в состав GCC по дефолту, как OpenMP, или как?... но технология невероятно востребована! такими темпами, gcc вберет в себя все лучшее. |
Автор: boostcoder 10.9.2011, 00:15 |
добавил новые сборки версии 4.7.0 содержащие ЯП: C, C++, Objective-C, Objective-C++, fortran: http://code.google.com/p/mingw-builds/downloads/list планирую разобраться с проблемами сборки Java, и далее выкладывать сборки включающие в себя C, C++, Objective-C, Objective-C++, Fortran, Java. |
Автор: boostcoder 17.9.2011, 22:18 |
добавил новые snapshot сборки. отныне, все сборки будут включать в себя следующие ЯП: c, c++, objc, obj-c++, fortran. в планах - разобраться со сборкой java. |
Автор: kemiisto 17.9.2011, 22:28 |
boostcoder, я правильно понимаю, что там нет 64-битных сборок? |
Автор: boostcoder 17.9.2011, 22:29 |
kemiisto, да. но будут. сейчас это приоритетная задача. Добавлено @ 22:41 вообще, в планах, создать инсталлятор, в котором юзер сможет выбрать: 1. способ реализации исключений(sjlj/dwarf) 2. версию компилятора. 3. x86/x86_64 как цель, так и хост архитектуры. 4. список необходимых ему предкомпилированных библиотек. (да. юзеру не нужно будет шарахаться по инету в поисках собранной библиотеки, или маять свой моцг в попытках собрать ее) 5. IDE. планирую следующие: QtCreator, NetBeans, Code::Blocks, Dev-C++, wxDev-C++. т.е. получится своего рода portable версия среды разработки со всем перечисленным. по этому, проект переезжает на sf.net, ибо там нет ограничения на пространство для проекта, плюс, больше возможностей по управлению проектом(в отличии от гуглкода). сейчас занимаюсь следующими задачами: 1. переписываю скрипты системы сборки. 2. пытаюсь разобраться со сборкой java. 3. пытаюсь разобраться со сборкой под x86 и x86_64 архитектуры. как для хоста, так и для цели. 4. дописываю скрипты для сборки библиотек. 5. разбираюсь с NSIS инсталлятором. |
Автор: kemiisto 17.9.2011, 22:44 |
boostcoder, понял. Интересно будет взглянуть. А сложно под вынду собирать? MSYS, конечно, как минимум, нужен... |
Автор: boostcoder 17.9.2011, 22:54 |
теперь нет. но по началу, когда я только задался этой целью, у меня ушло около месяца на попытки... нет, я не каждый день и не целый день этим занимался. но в сумме, все равно очень много времени ушло на эти попытки. и это я пробовал собрать в венде, на виртуалке. и, из-за того что в венде приходилось ждать по 8 часов чтоб увидеть очередную ошибку, я решил попробовать собирать в лине, кросскомпилятором. и да, помогло. в лине, все это дело собиралось в двое быстрее. в общем я однажды все таки собрал свой первый мингв. но без OpenMP+Graphite+LTO+std_threads. но кому он такой был нужен? в инете полно подобных сборок т.е. еще немало времени ушло на это. потом, осознав неудобность того, что в лине не запустишь тесты, а переносить на венду недособранный компилятор ооочень не просто, я все же решил второй раз попытаться собрать его нативно. однажды таки получилось. так что, в сумме, я бы сказал, месяца четыре попыток... и да, без MSYS никуда. |
Автор: Sahab 19.9.2011, 22:35 |
А кто какими цветовыми стилями пользуется?... в QtCreator юзаю такое: http://s2.ipicture.ru/uploads/20110919/vjEVC21S.png з.ы. кто-нить знает где можно для KDevelop/Kate найти? |
Автор: borisbn 20.9.2011, 06:20 |
Sahab, вот это щаз в тему было (про раскраску критера). Да? |
Автор: Sahab 20.9.2011, 08:53 |
"Компиляторы и IDE(!) для C++" какбэ понимаю, что не совсем то. Но к иде же) |
Автор: newbee 20.9.2011, 08:59 |
Sahab, kate: Settings -> Configure Kate -> Editor Component -> Fonts & Colors. |
Автор: Sahab 20.9.2011, 09:06 |
имелось в виду не самостоятельно набивать а готовые... где их найти в файловой и в настройках и сам знаю. |
Автор: newbee 20.9.2011, 12:58 |
Настроить цвета по готовому шаблону - дело пяти минут. Боюсь такому ленивцу предлагать гуглить, но все же: "kate color scheme", в т.ч. несколько есть на kde-look. |
Автор: Sahab 20.9.2011, 14:36 |
newbee, с гуглом я знаком и без Вас... и уж поверьте, делаю это регулярно... и до того как постить что-либо. Вы уважаемый сами пробовали это делать? бывал не только тут. з.ы. не скажу что в гугле нет... но толкового совсем мало. |
Автор: boostcoder 26.9.2011, 11:54 |
залил пререлиз сборки версии 4.6.2. собственно, эта сборка является подготовительной к релизу 4.6.2, ибо сборка этой ветки осложнена правкой кучи конфигов т.к. патчи в эту ветку не принимаются. релиз ожидается к концу этой недели. конечный список багфиксов так же пока не сформирован. какие-либо нововведения(в сравнении 4.6.1) вряд ли будут добавлены. зато исправлено больше ошибок. к тому же, мне известно только одно существенное отличие от версий 4.7.0 - в последнем, OpenMP-3.1 которая предоставляет task-based параллелизм. что, конечно, добавит еще больше возможностей применять OpenMP. всем спасибо. http://code.google.com/p/mingw-builds/downloads/list |
Автор: boostcoder 4.10.2011, 10:15 |
в списке рассылки GCC прошла информация о том, что изменилась лицензия компилятора языка D. и сейчас, она позволяет использовать его коды под лицензиями GPL/LGPL. сейчас идет обсуждение о принятии в GCC фронтэнда D на постоянную основу. я на D не пишу, но возможно кому-то эта новость покажется полезной. мне же, интересно, соберется ли фронтэнд в венде |
Автор: boostcoder 5.10.2011, 18:04 |
в течении прошлой недели были реализованы две новые возможности: 1. http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm. 2. http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2756.htm. залил на http://code.google.com/p/mingw-builds/downloads/ |
Автор: boostcoder 19.10.2011, 10:37 |
залил новые сборки версий 4.6.2 и 4.7.0. исправлен SEGFOLT при использовании std::this_thread::yield(). в скором времени выйдет первая версия mingw-env(так далее будет называться проект) включающая:
|
Автор: boostcoder 28.10.2011, 10:36 |
Вчера состоялся релиз компилятора GCC версии 4.6.2, в котором проведена работа по исправлению ошибок, регрессивных изменений и проблем с совместимостью. С момента выхода прошлой версии отмечено http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.2, большинство из которых связано с устранением внесенных ранее регрессивных изменений и с улучшением поддержки спецификаций C++11. Исходные тексты компилятора можно загрузить с http://ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.6.2/ или с его http://gcc.gnu.org/mirrors.html. Сборки MinGW на базе GCC-4.6.2 вы уже сейчас можете скачать на http://code.google.com/p/mingw-builds/downloads/list. Следующее обновление GCC 4.6.3 ожидается в феврале. |
Автор: boostcoder 22.11.2011, 10:02 |
залил новые сборки тестовой ветки 4.7.0 в которых впервые реализована технология http://gcc.gnu.org/wiki/TransactionalMemory(кстати Intel эту фитчу реализовал довольно давно). полагаю, эта фитча станет невероятно востребована в паре с OpenMP, что позволит сделать мир многопоточных программ проще отдельно хочется поблагодарить Red Hat inc. за "подаренную" реализацию http://gcc.gnu.org/wiki/TransactionalMemory, которая, к тому же, всего три месяца назад "подарила" реализацию http://www.openmp.org/mp-documents/OpenMP3.1.pdf. скачать версии GCC для windows вы как всегда можете скачать http://code.google.com/p/mingw-builds/downloads/list. совершенно бесплатно |
Автор: boostcoder 30.11.2011, 19:22 |
занимаюсь сборкой для x86_64 архитектуры, и возникли такие вопросы: 1. нужна ли сборка хост-x86_64 - цель-x86_64 ? или же достаточно будет хост-х86 - цель-х86_64? ибо последняя сможет работать как на х86 так и на х86_64. 2. есть ли смысл собирать отдельные сборки для х86 и х86_64 хостов? или же собрать хост-х86 и мультицель х86/х86_64 указываемую при помощи стандартных опций "-m32" "-m64" ? |
Автор: bsa 1.12.2011, 00:11 |
boostcoder, имхо, лучше второй вариант. для начала делай хост x86. Потом, если попросят, всегда можно собрать еще и x86_64. |
Автор: boostcoder 10.12.2011, 01:50 |
добавил http://code.google.com/p/mingw-builds/downloads/list в которых реализованы http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1986.pdf и http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf. качаем. тестим. осваиваем. |
Автор: Trotil 10.12.2011, 09:00 |
Есть ли плагин для Notepad++, чтобы список функций, классов, методов был доступен отдельно от кода? |
Автор: boostcoder 24.12.2011, 11:17 |
залил новые сборки версии 4.7.0. разрабатываемая ветка 4.7.0 перешла в stage 3(bug fixes and docs only). все что не было в ней реализовано(а это совсем не много), будет реализовано в ветке 4.8.0. релиз 4.7.0 обещают в феврале, после чего, ветка перейдет в stage 4(regression fixes and optimization). 4.7.1 обещают в мае. качать http://code.google.com/p/mingw-builds/downloads/list. |
Автор: boostcoder 10.1.2012, 10:15 | ||
залил пререлизные сборки 4.6.3. с этого момента, сборки поддерживают как динамическую, так и статическую линковку. сделано это для соответствия общему принципу. в связи с этим, при использовании std_threads/std_atomics, добавляйте опцию "-static" при линковке. иначе получите сегфолт. проблема известная, и девелоперы обещают ее пофиксить. зы
оказывается, я не правильно понял. разрабатываемая ветка сначала перейдет в stage 4, и после, в феврале, ожидается релиз. в stage 4 ветка уже перешла. |
Автор: boostcoder 17.1.2012, 08:30 |
с гордостью хочу сообщить о том, что исправил последний мне известный баг MinGW, вынуждающий использовать статическую линковку при использовании std_threads! некоторое время я (на пару с вами) буду тестить этот fix, после чего закоммичу патч. так же, исправил баг LTO в сборках 4.7.0, который не давал мне покоя уже 4 месяца. выложил snapshot сборки 4.7.0. готовлюсь к релизу качать http://code.google.com/p/mingw-builds/downloads/list. |
Автор: boostcoder 19.1.2012, 13:17 | ||
не к холивару будет пост, но только что в списке рассылки GCC были http://willus.com/ccomp_benchmark2.shtml?p1 сравнительные результаты тестирования компиляторов проводимые Willus.com. в тестировании принимали участие http://willus.com/ccomp_benchmark2.shtml?p2: MinGW (gcc 4.6.3), Intel 2011, Microsoft 2010 Visual C/C++ Express, и др.(Tiny CC, Digital Mars, MinGW (gcc 3.4.2)). использовались http://willus.com/ccomp_benchmark2.shtml?p3. тестировались http://willus.com/ccomp_benchmark2.shtml?p4 как: BW1D, BZIP2, CRAFTY, K2PDFOPT, LAME, MESHER, MODEL3D, RESIZER, TRANSCEND, X264. тесты проводились http://willus.com/ccomp_benchmark2.shtml?p5 окружении:
в пяти из десяти тестов GCC-4.6.3 незначительно отставал от MSVC. усредненное значение пересчитанное мною таково: GCC - 15.13 MSVC - 15.12 т.е. MSVC на одну сотую секунды быстрее из суммы всех времен тестов. а Intel рвет всех. для остальных компиляторов не считал. Up. хотя в результатах тестирования, такие результаты: gcc-4.6.3-32: 1.38 gcc-4.6.3-64: 1.18 Intel-11-32: 1.21 Intel-11-64: 1.10 msvc2010: 1.59 тут можно скорее сказать, что gcc идет в ногу с intel, чем в ногу с msvc ;) |
Автор: borisbn 19.1.2012, 19:05 | ||
Несколько раз перечитал описание данного бенчмарка - ничего не понял. Вернее не понял что это за параметр normalized run time Вот это
перевести то перевёл, но что это значит - не понял. Зачем делить все времена (и что значит все??? сумму всех?) на лучший результат ? Можешь разжевать для тупого ? |
Автор: newbee 19.1.2012, 19:13 |
Можешь считать это средним результатом после проведения серии экспериментов. Добавлено через 2 минуты и 30 секунд Гцц оказался еще и самым тормозным в плане времени компиляции. Хотя это уже давно известно. |
Автор: boostcoder 19.1.2012, 19:19 | ||||
угу.
не нужно быть голословной. все дело в том, что MSVC как и Intel производят сборку в несколько потоков. по умолчанию - сколько ядер. а gcc, точнее make.exe в венде работает в один поток. т.е. опция -j не дает эффекта ;) |
Автор: borisbn 19.1.2012, 19:29 | ||||||
скорее это говорит о разбросе в серии тестов. вот взять, например, первый тест.
и
вроде бы и время работы у tcc925 бешенное (91,1) и этот злополучный параметр плохой (5,31). Но ведь если время выполнения 91,1 сек, а отношение этого времени к лучшему = 5,3, то лучшее время 91,1 / 5,31 = 17,2. А у интела - 17,1 / 1,0 = 17,1. Нифига не понимаю. |
Автор: boostcoder 19.1.2012, 19:33 |
на сколько я помню, это вообще Си компилятор, при том не оптимизирующий. нафег его вообще приплели к тестам? в моих расчетах, я суммировал время работы теста(не компиляции) и поделил на кол-во тестов. |
Автор: newbee 19.1.2012, 19:40 |
Лучшее время - 17.1, отношение времени тцц к лучшему равно 5.3. Вообще я плохо первый ответ дала, на самом деле это показатель того, во сколько раз одно хуже лучшего. Вот интел - лучший, гцц хуже в полтора раза, тцц - в пять. Добавлено через 3 минуты и 21 секунду Я знаю про этот баг, но гцц все равно тормоз в соотношении качество/скорость компиляции. Ога. Он еще и интерпретировать не компилируя умеет - это главная его фишка. А к тестам его приплели просто чтобы показать насколько простое решение хуже продвинутых технологий. В пять раз всего |
Автор: boostcoder 19.1.2012, 19:49 |
newbee, нет, ты чтоб не потроллить о наболевшем, не можешь. |
Автор: newbee 19.1.2012, 19:51 |
Дохтур, у меня ничего не болит, вы о чем вообще? ;;я честно не поняла, где троллинг. Добавлено через 8 минут и 11 секунд Я еще чуть чуть почитала про тцц и повнимательней посмотрела статистику, так этот тцц быстрее всех компилирует - чем не повод засунуть его в эксперимент? |
Автор: borisbn 20.1.2012, 08:28 |
Сорри за тупизм. Вот говорили же мне старшие товарищи, что утро вечера мудреннее... Вот это я вчера протупил. Решил (почему-то), что для одного компилятора делалась серия экспериментов и этот злополучный коэффициент - это среднее время делить на лучшее среди этих экспериментов, а на самом деле это - время работы кода этого компилятора делить на лучшее время среди компиляторов. Теперь ясно. |
Автор: boostcoder 1.2.2012, 11:22 |
скажите, кому либо в моих сборках, нужны ли Objective-C, Objective-C++, Fortran? хочу их исключить. за ненадобностью. спасибо. |
Автор: boostcoder 4.2.2012, 14:18 |
Objective-C и Objective-C++ были исключены за ненадобностью. залил http://code.google.com/p/mingw-builds/downloads/list версий 4.6.3-prerelease и 4.7.0-snapshot. |
Автор: boostcoder 5.2.2012, 15:10 |
добавил новые сборки 4.6.2-release с фиксом динамической линковки при использовании std_threads. |
Автор: boostcoder 2.3.2012, 00:05 |
Вчера, 1 Марта, состоялся релиз компилятора GCC версии 4.6.3, являющийся очередным баг-фикс релизом ветки компиляторов 4.6.х Было исправлено более 70 багов. Полный список вы можете найти http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.3&list_id=25044. http://news.softpedia.com/news/GCC-4-6-3-Brings-Lots-of-Fixes-256097.shtml. P.S. Уже сейчас вы можете скачать MinGW на базе gcc-4.6.3 из http://code.google.com/p/mingw-builds/. Комплект состоящий из mingw-4.6.3+boost-1.49.0, у меня в подписи. |
Автор: Alca 2.3.2012, 11:20 |
Когда будут сборки mingw64 ? Можешь сделать для версии 4.6.3 ? |
Автор: boostcoder 2.3.2012, 11:29 |
эх... руки не доходят. по возможности, на выходных постараюсь. |
Автор: boostcoder 2.3.2012, 22:10 |
сегодня, основная ветка разработки GCC (http://gcc.gnu.org/viewcvs/trunk/), форкнулась в http://gcc.gnu.org/viewcvs/branches/gcc-4_7-branch/. это означает, что релиз gcc-4.7.0 состоится через неделю-другую. релиз-кандидат соберу на днях. начата работа над gcc-4.8.0. |
Автор: bsa 2.3.2012, 22:19 |
boostcoder, да ладно? Они что ли собираются нестабильную версию выпустить? Или у них trunk стабильная? |
Автор: boostcoder 2.3.2012, 22:37 |
trunk становится стабильным по достижению stage4. он достигнут. trunk форкнулся. и с этого момента trunk считается нестабильным, снова. |
Автор: Randajad 15.3.2012, 13:22 |
std::regex запилили бы лучше. |
Автор: borisbn 15.3.2012, 13:55 |
Randajad, а что не так с регексами ? |
Автор: boostcoder 15.3.2012, 13:56 |
полагаю, это M$ специфик. в линуксе-то он работает. попробую разобраться на досуге. |
Автор: borisbn 15.3.2012, 13:56 |
кажется понял... http://liveworkspace.org/code/5633b7a65228b9509264ebd0e7853b69 |
Автор: boostcoder 15.3.2012, 13:56 |
borisbn, говорят что не работает. кто-то говорит что тупо сегфолтит. я пока не проверял. Добавлено через 41 секунду хм.. а когда-то оно работало. в линуксе точно. |
Автор: Randajad 15.3.2012, 14:00 |
Не сегфолтит. На простом std::regex r("\\d"); кидает std::regex_error. |
Автор: boostcoder 25.3.2012, 00:30 |
Всем привет. Если вдруг кто не знает, http://code.google.com/p/mingw-builds/ - это проект предоставляющие сборки компилятора http://gcc.gnu.org/ для Windows платформы, т.е. MinGW. Итак... До сих пор, проект предоставлял сборки с двумя типами реализации исключений: 1)http://en.wikipedia.org/wiki/DWARF, 2)sjlj(http://www.di.unipi.it/~nids/docs/longjump_try_trow_catch.html, http://www.on-time.com/ddj0011.htm). Сборки использующие dwarf, будут исключены из последующих сборок проекта http://code.google.com/p/mingw-builds/. Связанно это с двумя причинами: 1. dwarf, для windows ОС - это инородный способ реализации исключений, он не может работать правильно в windows из-за того, что реализация как С++ так и Си(http://en.wikipedia.org/wiki/Microsoft-specific_exception_handling_mechanisms#Structured_Exception_Handling) исключений в компиляторе MSVC использует SJLJ. В связи с этим, возникают трудноуловимые ошибки связанные с разрушением стека и пробросом/ловлей исключений между .dll модулей. Мнение разработчиков CRT для MinGW(mingw-w64) http://sourceforge.net/apps/trac/mingw-w64/wiki/Exception%20Handling. 2. и вторая причина, вытекающая из первой - отсутствие реализации dwarf для windows-x86_64. Посему, пользователям dwarf сборок придется пересобирать либы. Увы... С этого момента, проект http://code.google.com/p/mingw-builds/ предоставляет сборки для двух хостов: a)i686, b)x86_64. Каждая такая сборка, является двухцелевым кросс-компилятором. Компилятор для i686 хоста по умолчанию собирает для i686 цели. Компилятор для x86_64 хоста по умолчанию собирает для x86_64 цели. Для того, чтоб при помощи компилятора для i686 хоста собрать для x86_64 - при компиляции и линковке добавляйте флаг -m64. Для того, чтоб при помощи компилятора для x86_64 хоста собрать для i686 - при компиляции и линковке добавляйте флаг -m32. Разумеется, все зависимости цели должны быть собраны соответствующим образом. Теперь о зависимостях цели от .dll модулей поставляемых в составе компилятора(libstdc++-6.dll, etc...). Как правило, при использовании MinGW, путь к mingw/bin прописывается в PATH. Все необходимые для хоста .dll модули так же находятся в mingw/bin. По этому, проблем с выполнением полученных исполняемых файлов нет. Но при использовании кросс-компилятора все немного сложнее. Если производится сборка при которой host==target - тут все как обычно, ибо .dll модули находятся в mingw/bin. Однако, в случаях когда host!=target, .dll модули оказываются недоступными для целевого исполняемого файла. Для i686 компилятора, .dll модули для x86_64 цели располагаются в mingw/i686-w64-mingw32/lib64. Для x86_64 компилятора, .dll модули для i686 цели располагаются в mingw/x86_64-w64-mingw32/lib32. Если что не понятно - задавайте вопросы. Сборка для i686 уже готова. Со сборкой для x86_64 хоста возникли некоторые сложности. На страницу проекта пока не выгружал. Хочу одновременно. Всем спасибо. |
Автор: Randajad 25.3.2012, 18:02 |
Исправьте в первом посту пожалуйста: пишется CodeBlocks, а не CodeBlock. |
Автор: boostcoder 26.3.2012, 23:50 |
визуализация всего периода разработки GCC: http://www.youtube.com/watch?v=ZEAlhVOZ8qQ |
Автор: boostcoder 29.3.2012, 05:48 |
Выгрузил следующие сборки: 1. i686-mingw32-gcc-4.6.3-release-c,c++,fortran-sjlj 2. x86_64-mingw32-gcc-4.6.3-release-c,c++,fortran-sjlj 3. i686-mingw32-gcc-4.7.0-release-c,c++,fortran-sjlj 4. x86_64-mingw32-gcc-4.7.0-release-c,c++,fortran-sjlj жду отзывов |
Автор: borisbn 29.3.2012, 08:38 |
boostcoder, спасибо. Ждём 4.7.0 на LWS |
Автор: boostcoder 29.3.2012, 10:13 | ||
кстати да. совсем забыл %) готово: http://liveworkspace.org/code/6331a929ef26265c656bf1839fb8065d
|
Автор: Randajad 8.4.2012, 12:22 |
http://liveworkspace.org/code/6f1ea9af8809ddd0510e6af33c05cebf Не работаэ. Причем в заголовках функции есть. Взято с: http://en.cppreference.com/w/cpp/io/manip/get_time |
Автор: boostcoder 8.4.2012, 14:55 |
походу недореализовано. |
Автор: boostcoder 12.4.2012, 13:36 |
gcc-4.8.x будет формировать вывод информации о ошибках и варнингах по мотиву CLang. но говорят что даже лучше чем CLang. в принципе, эта фишка уже сейчас перенесена в trunk. на неделе соберу, поглядеть. |
Автор: borisbn 12.4.2012, 14:05 |
стыдно признаться, но никогда не видел CLang (да и слышал-то немного)... поэтому, можешь дать ссылку на их способ отображения ? Только не на сам CLang (его-то я найти смогу))) Спасибо. |
Автор: boostcoder 12.4.2012, 14:16 |
читай ветку: http://gcc.gnu.org/ml/gcc/2012-04/msg00477.html там примеры есть. |
Автор: boostcoder 17.4.2012, 13:27 |
Итак. В проекте http://code.google.com/p/mingw-builds/ произошли два изменения: 1. проект переехал на sf.net. http://sourceforge.net/projects/mingwbuilds/. 2. опубликованы скрипты сборки с помощью которых вы самостоятельно можете собрать MinGW. Получить вы можете выполнив эту команду: git clone git://git.code.sf.net/p/mingwbuilds/code mingw-builds Архивы с собранным MinGW вы сможете скачать http://sourceforge.net/projects/mingwbuilds/files/. На данный момент скачивать нечего. Сейчас пересобираю все доступные версии. Сегодня залью. Так же, для каждого собранного MinGW буду выгружать архивы с исходниками, ибо этого требует лицензия GPL. Буду признателен если кто-либо попробует воспроизвести процесс сборки на своей машине и в своем окружении. http://sourceforge.net/p/mingwbuilds/code/ci/72b33e43ffe791e9a3a54722c70193b2f3446f13/tree/README.TXT по использованию скриптов. Всем спасибо! |
Автор: boostcoder 18.4.2012, 05:08 |
Залил следующие сборки: https://sourceforge.net/projects/mingwbuilds/files/windows-host/4.6.2/ https://sourceforge.net/projects/mingwbuilds/files/windows-host/4.6.3/ https://sourceforge.net/projects/mingwbuilds/files/windows-host/4.6.4/ https://sourceforge.net/projects/mingwbuilds/files/windows-host/4.7.0/ https://sourceforge.net/projects/mingwbuilds/files/windows-host/4.7.1/ https://sourceforge.net/projects/mingwbuilds/files/windows-host/4.8.0/ Тестим, отписываемся. |
Автор: Randajad 26.4.2012, 12:07 | ||
© Педивикия. Однако в реальности %S в wprintf все также обозначает wchar_t * строку, а %s - все так же обычную char *. GCC 4.7. |
Автор: Randajad 29.4.2012, 14:03 |
__attribute__((packed)) Не работает на структурах на GCC 4.8, на других не тестил. Связи с чем сборка крупных прожэктов затруднена этим компилятором. |
Автор: Randajad 29.4.2012, 14:34 |
Методом тестов установлено: от 4.6.2 по ссылкам выше до 4.6.4 работает без проблем, начиная с 4.7.0 - баг. |
Автор: alexvs11 29.4.2012, 14:44 | ||
это же замечательно! честно говоря периодически не осиливая сообщения об ошибках gcc - скармливаю программу clang'у |
Автор: boostcoder 29.4.2012, 14:53 |
не ты один ;) начальную стадию уже сейчас можно посмотреть в версиях 4.8.0: https://sourceforge.net/projects/mingwbuilds/files/windows-host/4.8.0/ |
Автор: Randajad 29.4.2012, 15:05 |
Да, в гцц вырвиглазные ошибки. Кстати разницы в 4.8 по сравнению с другими не заметил. |
Автор: boostcoder 29.4.2012, 15:06 |
Randajad, покажи примеры для 4.8.0 и той, с которой сравниваешь. |
Автор: Randajad 29.4.2012, 15:14 | ||||
4.8.
4.6.
Ах, нововведение заключается в стрелочке, как я забыл. Кроме нее ничего полезного. В случае маленькой ошибки gcc выводит всякую ересь. Порой даже ересь не относится к ошибке. В MSVC с этим лучше, там таки более-менее вменяемое выдает. |
Автор: boostcoder 29.4.2012, 15:29 |
и правда. ну ждем. разрабы обещали что будет не хуже чем у кланга. |
Автор: Randajad 30.4.2012, 22:25 |
Когда кланг стоит ждать? |
Автор: boostcoder 30.4.2012, 23:18 |
эм... сейчас решается вопрос. |
Автор: Randajad 8.5.2012, 17:04 |
На гцц 4.8 лто не распаралелливается. Выдает ошибку: lto-wrapper: CreateProcess: No such file or directory |
Автор: boostcoder 8.5.2012, 17:16 |
ссылку на сборку, пожалуйста. и командную строку. и впредь - так же. |
Автор: Randajad 8.5.2012, 21:21 |
main.cpp: int main(){} g++ main.cpp -flto=4 sourceforge.net/projects/mingwbuilds/files/windows-host/4.8.0/snapshot/i686-mingw32-gcc-4.8.0-snapshot-20120430-rev-186947-c%2Cc%2B%2B%2Cfortran.7z/download |
Автор: boostcoder 9.5.2012, 00:42 | ||
Randajad, у меня происходит такая ошибка:
но это нормально если учесть, что snapshot`ы вообще работать не обязаны) |
Автор: Randajad 9.5.2012, 08:21 |
Не обязаны работать? Да ладно. Работает кошерно. Никаких особых трабл, кроме описаных выше, нету. Лто - вещь, кстати. Прирост ощутимый дает, плюс теперь гцц научилось выкидывать dead-code из экзешки по-нормальному. На крупном проекте с 6,7 метров стало всего 3,5. Правда без распаралелливания линкуется 3 минуты. Скорее бы релиз новый, что-ли. |
Автор: Randajad 9.5.2012, 11:08 |
К сведению на release gcc 4.7.0 оно тоже не распаралелливается. lto-wrapper: CreateProcess: No such file or directory gcc/bin/../lib/gcc/i686-w64-mingw32/4.7.0/../../../../i686-w64-mingw32/bin/ld.exe: lto-wrapper failed collect2.exe: error: ld returned 1 exit status http://sourceforge.net/projects/mingwbuilds/files/windows-host/4.7.0/release/i686-mingw32-gcc-4.7.0-release-c%2Cc%2B%2B%2Cfortran.7z/download Так что ваши релизы тоже не работают. |
Автор: boostcoder 9.5.2012, 11:32 | ||
смогу проверить часов через 8мь, к сожалению. но что-то мне подсказывает, что ошибка тоже будет чем-то вроде:
Добавлено через 6 минут и 17 секунд а где ты выполняешь эту команду? в смысле, откуда запускаешь? |
Автор: Randajad 9.5.2012, 15:10 |
Откуда-нибудь. gcc/bin в path стоит. Увы, ваша ошибка мне ни о чем не говорит, совсем. |
Автор: Randajad 13.5.2012, 13:28 |
Эм, а почему gcc 4.8.0 использует sse2 по-умолчанию? Экзешка отказалась запускаться на моем старом компе. Только после указания -march вручную заработало. |
Автор: boostcoder 13.5.2012, 14:22 |
а 4.7.х и 4.6.х так же? |
Автор: Randajad 13.5.2012, 15:32 |
http://sourceforge.net/projects/mingwbuilds/files/windows-host/4.7.0/release/x86_64-mingw-w64-gcc-4.7.0-release-c%2Cc%2B%2B%2Cfortran.7z/download Та же история. Добавлено через 7 минут и 56 секунд UPD: http://sourceforge.net/projects/mingwbuilds/files/windows-host/4.7.0/release/i686-mingw-w64-gcc-4.7.0-release-c%2Cc%2B%2B%2Cfortran.7z/download Тут проблемы нет. Видимо, она только с x64 хостом, который собирает x86 приложение. |
Автор: boostcoder 13.5.2012, 15:42 | ||
приведи еще код, которым детектируешь такое поведение. попробую разузнать. |
Автор: Randajad 13.5.2012, 15:46 |
3D движок irrlicht + любой из его примеров. |
Автор: boostcoder 13.5.2012, 15:53 |
и как же я девелоперам объясню это, учитывая что воспроизвести они это смогут только на примерах irrlicht ? Добавлено @ 15:55 скинь тогда обе экзешки. я на примере сгенеренного ассемблера им покажу разницу. Добавлено через 3 минуты и 6 секунд они статически линкуют зависимости от irrlicht? если нет - тогда и dll`ки тоже скинь. |
Автор: Randajad 13.5.2012, 16:06 |
Да наверняка любая программка с каким-нибудь циклом, который гцц может векторизировать. Чуть попозже сделаю таковой и предоставляю. Ирлич - текущий проект, поэтому на нем выяснилось. |
Автор: boostcoder 14.5.2012, 15:48 |
пинг? |
Автор: boostcoder 24.5.2012, 04:06 |
Сегодня, состоялся релиз системы сборки MinGW в рамках проекта MinGW-builds под версией 0.1.0. Из основных изменений произошедших с момента первого коммита, можно отметить следующие:
|
Автор: AndrewMT 31.5.2012, 18:27 |
Подскажите, пожалуйста... Всё-таки возможно собрать Qt под Windows (64-bit) 64-битным MinGW? С нормальной поддержкой OpenMP? До этого пользовалься Qt с компилятором от MSVC++, нашёл в нём баг (связанный с threadprivate), который ещё в 2005 г. GNU исправил - я сам проверял на 32-битном MinGW... Насколько я знаю, Nokia официально Qt с MinGW 64-bit не поддерживает.... |
Автор: boostcoder 31.5.2012, 19:13 |
по правде сказать, я не пробовал.. попробуйте. о проблемах отпишитесь. попробуем разобраться. |
Автор: AndrewMT 31.5.2012, 19:21 |
ОК, попробую, сообщу. Надеюсь, разберёмся )) |
Автор: Randajad 5.6.2012, 17:10 |
d:\msys\mingw-gcc-trunk-x32\lib\gcc\i686-w64-mingw32\specs Почему GCC этот файлик хочет? У меня винда из-за этого выдает табличку про отсутствие диска "D:", ибо у меня его нет. |
Автор: boostcoder 5.6.2012, 17:12 |
покажи аргументы командной строки. |
Автор: Randajad 5.6.2012, 18:28 |
gcc -v. |
Автор: boostcoder 5.6.2012, 18:45 |
похоже, ты второй человек у которого на машине нет диска D: такая же проблема описана https://sourceforge.net/mailarchive/message.php?msg_id=29336204. как решить проблему правильно - я так и не понял. можно обойти ее, собирая MinGW на диске C: |
Автор: Randajad 5.6.2012, 19:03 |
Исходники GCC есть, какие проблемы? Выпилить из кода этот участок. Все-равно не найдет же. P.S.: оно проверяет наличие файла через _access. |
Автор: boostcoder 5.6.2012, 19:18 |
никаких проблем. но почему-то от от тебя я патча так и не получил. сколько нужно ждать? как определил? |
Автор: Randajad 5.6.2012, 19:27 |
Дизассемблил. Я ж в личку ответил причину. :3 .text:00456B7B mov [esp+0Ch+var_8], 4 .text:00456B83 mov [esp+0Ch+var_C], ebx .text:00456B86 call ds:_access |
Автор: boostcoder 5.6.2012, 19:49 |
порою в этом направлении... |
Автор: borisbn 6.6.2012, 10:35 |
оно, конечно, три месяца прошло... но лучше поздно, чем никогда... вот - http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2011 п. 28 - Regular expressions и вот - http://stackoverflow.com/questions/8060025/is-this-c11-regex-error-me-or-the-compiler будем ждать они что, не могли тупо переименовать boost::regex в std::regex ? Все ж привыкли уже к бустовским, так зачем было что-то менять ??? |
Автор: Randajad 6.6.2012, 11:54 |
Видимо решили свою реализацию. Уже вон сколько времени, а до сих пор нету. |
Автор: boostcoder 14.6.2012, 23:57 |
Несколько часов назад состоялся релиз компилятора GCC версии 4.7.1. Это первый баг-фикс релиз для ветки 4.7.х. Было исправлено 117 багов. Полный список вы можете обозрить http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.1&list_id=34041. Уже сейчас вы можете скачать http://sourceforge.net/projects/mingwbuilds/files/windows-host/4.7.1/release/. |
Автор: Randajad 15.6.2012, 08:06 | ||||||
Скачал. Другие баги остались. wchar.h, 950.
Тот же файл, 973.
Добавлено через 1 минуту и 15 секунд math.h, 426:
Добавлено через 3 минуты и 1 секунду Вообщем это везде в math.h в #ifndef __CRT__NO_INLINE и выплывает при изменении стандартного calling convention. |
Автор: boostcoder 15.6.2012, 08:11 |
про эти последствия копипаста ты раньше не говорил. так что - для меня это новые баги. а для чего это делать? |
Автор: Randajad 15.6.2012, 08:13 |
Жалко, что не поправили распаралелливание лто. Добавлено через 24 секунды Ну как. В любом случае должно работать. |
Автор: boostcoder 15.6.2012, 08:21 |
какой-то баг с распаралелливанием LTO все же пофиксили: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53019 |
Автор: Randajad 15.6.2012, 08:27 |
Какой-то... А все эти багфиксы в ветку 4.8 перенесены? Если да, то когда снапшотик будет? |
Автор: boostcoder 15.6.2012, 08:36 |
конечно. воскресенье-понедельник. впрочем, как обычно |
Автор: boostcoder 19.6.2012, 15:56 |
ты баг-репорт написал? как воспроизвести баг? |
Автор: Randajad 19.6.2012, 18:23 |
Я писал в этой теме тебе. =_= Любую программу/дллку линковать с параметром -flto=4 или любым другим числом, отличным от 1. |
Автор: Randajad 26.6.2012, 18:42 |
Ом-ом-ом! Не могу обнаружить в сборке от 25 числа i686 GCC 4.8 либу winhttp. Хидер есть, либы нету. :( Добавлено через 56 секунд На случай. Выдрал из студии 10-ой. |
Автор: boostcoder 26.6.2012, 21:34 |
эм.. |
Автор: Randajad 3.7.2012, 17:56 |
http://fastpic.ru/view/40/2012/0703/9f4eba1fad24a1e8df06ae671af26f5f.png.html Это гцц/афтар специально более 9000 одинаковых копирастов оставляет? |
Автор: boostcoder 3.7.2012, 18:25 |
я всего один раз указываю. и только для gcc. |
Автор: Randajad 4.7.2012, 10:20 | ||||
Я бы сказал что это, а не GCC. http://sourceforge.net/projects/mingwbuilds/files/windows-host/4.7.1/release/i686-mingw-w64-gcc-4.7.1-release-c%2Cc%2B%2B%2Cfortran-sjlj-PREFINAL.7z/download Последняя релизная сборка. Простой пример:
Должно вывести -1. Выводит, если огородить этот пример от мира сего. Просто инклюдим boost::system(он имеет какие-то статические объекты).
Этот невинный пример начинает требовать libboost_system. О-кей. Мы ему его дали. Этот невинный пример начинает выводить 6. Поищу нехорошие вещи в boost::system, отпишусь. Но под вяндой мне этот компилятор начинает нравиться все меньше. Добавлено @ 10:30 Обнаружил волшебный макрос, который заставляет boost::system не требовать либу. Если дефайнить BOOST_SYSTEM_NO_DEPRECATED, то все собирается и без либы, но результат такой же. Для чистоты эксперимента все собиралось с одним лишь -g. Копать сотни хидеров буста не собираюсь, о баге отписался. На сим удачи! |
Автор: boostcoder 4.7.2012, 11:59 |
посмотри, в экспорте msvcrt.dll есть экспорт этой функции? или только этой же функции но с лидирующим подчерком? в msdn`е нашел только функцию с подчерком. |
Автор: Randajad 4.7.2012, 12:15 | ||||
С бустотой оно юзает это из wchar.h. Без бустоты оно юзает это
Из stdio.h. Разгадка в __USE_MINGW_ANSI_STDIO, я не знаю, что его дефайнит. |
Автор: boostcoder 4.7.2012, 12:15 |
такая мысль еще посетила... может быть boost.system предоставляет реализацию snwprintf() ? |
Автор: Randajad 4.7.2012, 12:16 | ||
Когда пофиксится моя бага с форматом строк в принтфе?
Из-за этого код непереносим под вяндой с GCC на MSVC/ICC. Добавлено через 30 секунд Нет, я подебажил. Смотреть выше. |
Автор: boostcoder 4.7.2012, 12:18 |
наверное boost.system или включаемый им boost.config... |
Автор: boostcoder 4.7.2012, 12:52 |
Randajad, так используя/не_используя __USE_MINGW_ANSI_STDIO, поведение воспроизводится по разному и без boost.system? |
Автор: Randajad 4.7.2012, 13:06 |
Ога. Без буста и без него - -1. Без буста и с ним - 6. |
Автор: boostcoder 4.7.2012, 13:39 |
попробую у разрабов CRT`ишки узнать... |
Автор: boostcoder 10.7.2012, 17:29 |
http://sourceforge.net/projects/mingwbuilds/files/windows-host/4.7.1/release/ MinGW на базе gcc-4.7.1-release. обновил GDB до версии 7.4.1, и GNU make с этого момента собирается с поддержкой job-server. для пользователей Qt это станет приятным бонусом, ибо теперь у них появится возможность производить сборку Qt и проектов основанных на .pro файлах в требуемое кол-во потоков. качать архивы с пометкой 'rev2'. зы Randajad, по поводу бага с распараллеливанием LTO - я не забил. по поводу бага с функцией snwprintf() - тоже не забил. |
Автор: Randajad 10.7.2012, 21:50 | ||
А на
Забил? Кстати, что насчет кланга? Вроде, говорил, что вопрос решается. И вообще, добавляйся ваську! Если тебе интересна перспектива, что я буду тебя мучить. :3 |
Автор: boostcoder 10.7.2012, 22:30 |
а про это забыл, да. локально - скрипты написаны. проект тоже создан. нужно собрать первые сборки, и выгрузить на страницу проекта. ну и вроде все. год как я не использую никаких IM программ, и от этого невероятно рад. нет, обратно не ворочусь давай я тебе почту свою сообщу, если еще не знаешь. |
Автор: Randajad 11.7.2012, 18:16 |
Мыло - это грустно. Насчет %S и %s в представлении gcc: как workaround юзаю функции с _ в начале, они берутся из crt мелкомягких. |
Автор: boostcoder 14.7.2012, 00:14 |
Сегодня состоялся релиз системы сборки https://sourceforge.net/projects/mingwbuilds/ под версией 0.2.0. В эту версию вошли следующие изменения:
Эта версия системы сборки MinGW-builds является последней и завершенной для нативной сборки в windows. Следующими этапами будет внесение необходимых изменений позволяющих использовать MinGW-builds как для сборки нативного MinGW, так и для сборки кросс-MinGW для Linux и OSX хостов. |
Автор: Randajad 16.7.2012, 23:40 |
Использую гцц 4.8 от 2 числа сего месяца, ссылку искать лениво. Нашлась трабла: у меня много new на мелких объектах, в итоге при некотором большом их числе вылетает bad_alloc. Кто-нибудь сталкивался? При этом еще свободно где-то 2 гига озу, а само приложение всего 70 захавывает. Буду искать траблу в коде, отпишусь. |
Автор: Randajad 17.7.2012, 00:04 |
LastError == ERROR_NOT_ENOUGH_MEMORY. С маллоком то же самое. Вряд-ли это у меня трабла. Но... Наводит на мысли. Попробую замутить test-case. |
Автор: boostcoder 17.7.2012, 10:15 |
ну, мне кажется, что компилятор тут не при чем... и CRT`ишка то же, ибо она не реализует malloc/free. |
Автор: bsa 17.7.2012, 12:42 | ||
именно CRT и реализует malloc/free. Другое дело, что реализация может сводиться только к перенаправлению вызовов на функции WinAPI. Думаю, ты просто забил всю таблицу распределения памяти (или что-то в этом духе). Тебе необходимо реализовать пул для своих объектов. Именно для этого у каждого STL-контейнера существует возможность замены аллокатора. |
Автор: boostcoder 17.7.2012, 13:01 |
CRT от проекта mingw и mingw-w64 не реализуют. |
Автор: bsa 18.7.2012, 13:43 |
странно. я думал, проект Mingw использует msvcrt.dll в качестве CRT. |
Автор: boostcoder 18.7.2012, 14:11 |
да, использует. но не реализует. |
Автор: bsa 18.7.2012, 15:16 |
а где тогда определены символы _malloc, _realloc, _free? |
Автор: boostcoder 18.7.2012, 15:30 |
они импортируются из msvcrt. |
Автор: bsa 18.7.2012, 15:39 |
boostcoder, открою тебе секрет, если ты так и не понял: msvcrt.dll - это и есть CRT (C runtime library) для программ собранных mingw. А mingw10.dll и еще одна либа - чисто служебные, необходимые для работы исключений и потоков. |
Автор: boostcoder 18.7.2012, 16:05 | ||
я бы тебе открыл другой секрет. но не хочу тебя позорить. |
Автор: Randajad 18.7.2012, 18:25 |
Спокойнее, спокойнее. Видимо, действительно некая таблица с выделенными блоками засиралась/затирало ее что. Но почему-то 1024 * 1024 и даже больше new/malloc в debug в попытке сделать test-case успехом не увенчались. Отрефакторил архитектуру, ошибка пропала. Всем спасибо. :3 |
Автор: boostcoder 19.7.2012, 10:30 |
Randajad, касательно бага описанного http://forum.vingrad.ru/forum/topic-353559.html... я патч закоммитил. приняли. но просят выслать тест в виде маленькой программы, демонстрирующей воспроизведение ошибки без патча, и исправление этой ошибки патчем. сделай плиз ;) |
Автор: Randajad 19.7.2012, 10:42 | ||
Да вроде в том топике все есть, и программка и вообще. Или надо что-то еще?
Без патча кидает. С патчем не кидает. Скомпилированные экзешки надо? |
Автор: boostcoder 19.7.2012, 10:59 | ||
так без буста же =) с бустом я мог выслать им тот пример из темы =) Добавлено @ 11:01 к примеру, первый баг который был связан с TLS, воспроизводится этим тестом.
вот нужен пример на подобии этого. но я не понимаю как его воспроизвести. |
Автор: Randajad 19.7.2012, 12:11 |
А! О-кей. Сейчас сделаю. |
Автор: boostcoder 19.7.2012, 12:16 |
да, плиз. а то я не очень понял как это воспроизвести. к тому же, на работает нет венды.. |
Автор: Randajad 19.7.2012, 12:53 | ||
На старом возвращает 0. На новом 123. Собирать без оптимизаций. |
Автор: boostcoder 19.7.2012, 12:56 |
Randajad, спасибо! |
Автор: Randajad 14.8.2012, 20:36 | ||
Ом-ном-ном!
Делает крашик, что печально и не должно быть. Оффтоп: Студия на этот код порождает вареник: warning C4722: 'A::~A' : destructor never returns, potential memory leak Она врет, да? |
Автор: EnergoHokum 15.8.2012, 09:50 | ||
Нет. |
Автор: bsa 15.8.2012, 10:35 |
Randajad, вообще-то, выход исключения из деструктора приводит к аварийному завершению работы программы. Даже, если снаружи стоит отлов исключений. |
Автор: Randajad 15.8.2012, 12:41 |
Не приводит. Кидать исключения из деструктора разрешено. Если было выкинуто другое исключение и какой-нибудь объект при разрушении кидает еще одно исключение - тогда да, краш. Почему нет? Это разрешено. |
Автор: bsa 16.8.2012, 11:17 |
точно. уже не раз на эти грабли наступаю. просто сделал себе установку - никаких исключений в деструкторах. |
Автор: boostcoder 20.8.2012, 14:44 |
в линукс отрабатывает корректно: http://liveworkspace.org/code/b441e2e80ab1ff2311295569e7eb3407 проверьте кто-нибудь в венде, что выводит? |
Автор: Randajad 20.8.2012, 21:11 | ||
|
Автор: boostcoder 20.8.2012, 22:19 |
Randajad, хм.. предположения? |
Автор: Randajad 20.8.2012, 22:51 |
Ноу предположений. |
Автор: boostcoder 26.8.2012, 12:42 |
задался целью создать онлайн инсталлятор для MinGW-builds и возникло несколько вопросов. 1. как назвать исполняемый файл инсталлятора? 2. какое использовать лого? 3. нужна ли возможность апдейтить установленную версию MinGW? т.е. к примеру узер установил 4.7.1. после, вышла версия 4.7.2. нужна ли возможность заменить установленную 4.7.1 на 4.7.2? установка предполагается в шесть шагов: 1. указание версии. 2. указание типа сборки(snapshot/prerelease/release). 3. указание архитектуры(i686/x86_64). 4. для релизов допустим выбор ревизии сборки. 5. в получившемся списке указать конкретную сборку. 6. указание каталога установки. какие будут предложения/мысли? спасибо. |
Автор: bsa 26.8.2012, 15:59 | ||
mingw-x.xx-install.exe А какие варианты? Думаю, официальное. И да и нет. Лучше оставить возможность установки одновременно разных версий компилятора в разные каталоги (например: c:\mingw\4.7.1, c:\mingw\4.8.0-pre). Иногда бывает нужно.
Лучше делать через msi пакет. Так будет возможность автоматического развертывания в домене. |
Автор: boostcoder 26.8.2012, 16:56 | ||
а иксы тут что значат? версию? версию инсталлятора? нет пока вариантов. думал, кто-то предложит. эм...а это какое?
так это само собой. я имел ввиду, при установке в каталог в который уже установлена 4.7.1 версии 4.7.2 или выше, чтоб происходила замена только тех файлов, которые были установлены предыдущей установкой. не удаляя файлы которые юзер сам добавил. но пока писал, подумал, что даже при деинсталляции, инсталлятор ведь не удаляет не свои файлы. так что обновление это лишняя путаница. вроде нет. например: 4.7.2-prerelease 4.7.2-release 4.7.1-release 4.8.0-snapshot 4.7.0-snapshot |
Автор: bsa 26.8.2012, 21:53 |
зависит от того, что будет делаться. Если инсталлятор позволяет установить все возможные версии, то номер версии нужно убрать вообще. антилопа Гну |
Автор: boostcoder 26.8.2012, 22:07 | ||
да, на то он и онлайн-инсталлер. |
Автор: boostcoder 30.8.2012, 23:51 |
немного новостей касательно gcc/MinGW. недавно, в транк, был влит патч реализующий SEH для Win64: http://gcc.gnu.org/ml/gcc-patches/2012-07/msg00512.html как оказалось, в патенте борланд на SEH нашли лазейку. а именно, то, что патент оговаривает идею SEH для Win32, но не для Win64. в виду этого, было решено принять этот патч в транк, т.к. для Win разработчиков SEH является весьма необходим. но, у этого патча есть и минусы, для меня, по крайней мере. как некоторые могли заметить, я уже больше месяца не произвожу сборки транка. и это "благодаря" этому патчу. но, транк есть транк. он и не должен собираться. надеюсь, к релизу 4.8.0 эту недоразумение пофиксят. вторая новость состоит в том, что расширение 'Intel Cilk-Plus' принято в транк: http://gcc.gnu.org/ml/gcc/2012-08/msg00355.html это означает, что gcc, начиная с версии 4.8.0 будет поддерживать 'Cilk-Plus'. тот, кто знаком с этим расширением при использовании Intel компилятора, понимает, насколько это расширение необходимо для разработчиков многопоточных алгоритмов/программ. |
Автор: boostcoder 31.8.2012, 21:16 |
http://qt-project.org/wiki/MinGW-64-bit для распространения в составе QtSDK-64bit. и я горд сообщить о том, что кандидатов всего двое: 1)сборки проекта MinGW-builds, 2)mingw-w64 персональная сборка Ruben`а. есть надежда, что сборки проекта MinGW-builds выйдут в массы |
Автор: boostcoder 10.9.2012, 13:35 |
после нескольких дней тестов и переписки, тролли склоняются к тому, чтоб не использовать готовые сборки, а собирать самим используя мои скрипты. но это еще не окончательное решение... |
Автор: Randajad 16.9.2012, 10:28 |
Лучше бы тот же regex запилили, а то достало буст таскать. К теме о троллях: конец немного предсказуем. Кстати, когда стоит ждать новые снапшоты 4.8? |
Автор: boostcoder 16.9.2012, 10:54 |
и какой он, по твоему? на прошлых выходных я собрал 4.8-x86_64 с использованием SEH. multilib сборки так и не собираются %) тебя какие конкретно архитектуры интересуют? ты пытался разобраться в чем проблема? попробуй, может быть это что-то MinGW-specific? или в линукс тоже не работает? зы эти выходные я потрачу на переписывание скриптов MinGW-builds для добавления возможности собирать MinGW из windows/linux/osx. зызы следующие выходные планирую заняться онлайн инсталлятором. |
Автор: borisbn 16.9.2012, 10:57 |
> может быть это что-то MinGW-specific? или в линукс тоже не работает? Дык у тебя же на LWS не работает. Там же линукс, насколько я понял |
Автор: boostcoder 16.9.2012, 11:02 |
правда? значит склероз |
Автор: Randajad 16.9.2012, 11:15 |
Насчет разобраться: похоже, написаны оберки, которые ничего не делают. :( Интересует x86. 64 бита пока не нужно, толку от него нет, я не пишу узкоспециализированные приложения, потребляющие > 2 гб рамы. :3 |
Автор: boostcoder 16.9.2012, 11:19 |
сегодня попробую собрать. но SEH недоступен для i686 до тех пор, пока не истечет срок борландовского патента. и я хз когда он истечет, вроде ~2014. нагуглить не получилось. |
Автор: Randajad 16.9.2012, 11:38 |
Это тот SEH, о котором я думаю? http://ru.wikipedia.org/wiki/%D1%F2%F0%F3%EA%F2%F3%F0%ED%E0%FF_%EE%E1%F0%E0%E1%EE%F2%EA%E0_%E8%F1%EA%EB%FE%F7%E5%ED%E8%E9 В студии он давным давно есть, например. Но комбинировать простые исключения с SEH в рамках одной функции, насколько помню, нельзя. А вообще, я плохо представляю случаи, когда оно действительно нужно. У меня в приложении глобальная функция-обработчик таких исключений установлена через SetUnhandledExceptionFilter. И когда приложение решает поделить на ноль - оно отправляет отчет об ошибке, а я смотрю уже дизасм и исправляю. Таких случаев было за несколько лет всего 3. |
Автор: boostcoder 16.9.2012, 11:39 |
хм.. а три месяца назад были добавлены https://github.com/mirrors/gcc/tree/master/libstdc++-v3/testsuite/28_regex/algorithms/match. к тому же, если реализация не готова, к чему писать https://github.com/mirrors/gcc/tree/master/libstdc++-v3/testsuite/28_regex да еще и добавлять? спрошу в списке рассылки.. Добавлено через 2 минуты и 6 секунд да, но за исключением новых ключевых слов _try/_except/_finaly Добавлено через 3 минуты и 44 секунды насколько я понял, единственное отличие SEH в gcc от SJLJ состоит в том, что SEH не создает оверхед.. |
Автор: Randajad 16.9.2012, 11:47 |
В mingw есть интересный хидер <excpt.h> с __try1, __except1, кстати. |
Автор: boostcoder 16.9.2012, 12:30 |
ааа, макросы. (http://mingw-w64.svn.sourceforge.net/viewvc/mingw-w64/trunk/mingw-w64-headers/crt/excpt.h?view=log) |
Автор: boostcoder 16.9.2012, 12:55 | ||
кто-то может подсказать как юзать __try1() ? типа такого:
не понимаю, как тут юзается __except1... если при возникновении исключения будет вызван except_handler(), то для чего тут макрос __except1 ? |
Автор: boostcoder 20.9.2012, 21:37 |
несколько часов назад состоялся релиз компилятора GCC версии 4.7.2. было исправлено более 70 багов. полный список http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.2&list_id=41367. сборки MinGW на базе GCC 4.7.2 вы уже сейчас можете скачать https://sourceforge.net/projects/mingwbuilds/. |
Автор: Randajad 23.9.2012, 12:56 | ||||
Скачал последний 4.7.2.
Получилось 540 кило. Пробовал -flto, то же самое. Они никогда это не поправят, да? Порой из-за раздувательства кода GCC хочется его выкинуть. А альтернативы с C++11 нету. |
Автор: boostcoder 23.9.2012, 13:02 |
это нормально... а что в этом случае нужно править? подскажи, может быть получится нам двоим пофиксить. дело в том, что тот размер который ты видишь, это начальный размер включающий все необходимое. далее, при написании большего объема кода при использованием STL, объем будет расти очень медленно. |
Автор: kemiisto 23.9.2012, 13:04 |
http://clang.llvm.org/cxx_status.html чем не альтернатива? |
Автор: Randajad 23.9.2012, 13:10 |
Ни одного билда под вянду нету. Пробовал сам собирать - остались не лучшие впечатления. |
Автор: boostcoder 23.9.2012, 13:13 |
у него нет своего ассемблера и линкера. а использовать их из gcc/binutils он не может, ибо http://llvm.org/bugs/show_bug.cgi?id=12684 __thiscall calling-convention. |
Автор: Randajad 23.9.2012, 13:13 |
То, что GCC можно сказать никак не выкидывает unused code. Надо подизассемблить экзешку и посмотреть, откуда это лезет, что-ли. Может, в сырцы GCC залезть. Hello world в 500 кило - это ужасно. Это все хорошо, что если я буду юзать все из iostream, то размер расти не будет. Но мне оно не нужно, его инклюдят boost и другие вещи. Студия тот же код компиляет в 8 кило. |
Автор: boostcoder 23.9.2012, 13:16 |
Randajad, ты не пробовал разузнать об этом? я узнавал по поводу начального размера Си-программы(22-30 кб). объяснили, что его можно уменьшить оптимизируя CRT. |
Автор: Randajad 23.9.2012, 13:23 | ||
Выцепил пару строк из iostream, которые раздувают код.
Это используется для инициализации cout, cin и прочих стандартных шняг. Надо бы в сырцы этой штуки залезть. |
Автор: boostcoder 23.9.2012, 13:25 |
вроде бы https://github.com/mirrors/gcc/blob/master/libstdc%2B%2B-v3/src/c%2B%2B98/ios_init.cc этот сорец. не? Добавлено через 4 минуты и 20 секунд судя по строкам 87-96, тут происходит инициализация. а https://github.com/mirrors/gcc/blob/master/libstdc%2B%2B-v3/include/bits/ios_base.h#L535 этого Init. Добавлено через 6 минут и 20 секунд хочу обратить твое внимание на то, что реализация Init находится в .cpp файле, а значит, в libstdc++.dll. почему же тогда код exe`шки распухает? Добавлено через 7 минут и 25 секунд хотя, это говорит об обратном. запутался Добавлено через 10 минут и 40 секунд если закомментить эту строку, размер exe`шки уменьшится? |
Автор: Randajad 23.9.2012, 13:37 |
Да вроде ничего в нем нету криминального. Ида показала, что импортируется over9000 неиспользуемых функций и строк. Внезапно. http://postimage.org/image/r7gj9zzfn/ http://postimage.org/image/6k3dujo51/ Да. Комментим - уменьшается. |
Автор: boostcoder 23.9.2012, 13:42 |
на сколько? |
Автор: Randajad 23.9.2012, 13:44 |
До 33 уменьшается. Код из одной строки int main() {} со стаческой линковкой CRT столько и весит. То есть, полностью уменьшается. |
Автор: boostcoder 23.9.2012, 13:47 | ||
ты что, статически линкуешь свой хелловорд? у меня, при динамической линковке, размер получился 34304 байт. Добавлено через 47 секунд
так значит причина именно в нем. решить можно. сейчас.. Добавлено через 4 минуты и 14 секунд нет, я запутался. решить можно было бы, если бы эта проблема была при динамической линковке. Добавлено через 5 минут и 15 секунд Randajad, а какой размер имеет экзешка твоего холловорда при статической линковке студийным компилятором, или какой ты еще юзаешь под венду? |
Автор: Randajad 23.9.2012, 13:58 |
95 кило делает 2010 студия со статической линковкой CRT. У меня в IDE в глобальных настройках компилятора всегда стоит /MT && -static. Потому что дллки таскать не люблю. |
Автор: boostcoder 23.9.2012, 14:00 |
ну... у меня идей нет. нужно тщательно исследовать. Добавлено через 8 минут и 38 секунд погуглил на эту тему. везде решение одно - upx. |
Автор: bsa 25.9.2012, 23:39 |
а LTO не поможет? |
Автор: boostcoder 26.9.2012, 00:48 |
нет. |
Автор: Randajad 26.9.2012, 23:39 |
Или мсвц/ицц. Я не уточнил: 95 кило это cout << "halo"; |
Автор: Randajad 29.9.2012, 12:34 |
А это, может стоит попробовать стандартную библиотеку собрать с -flto? |
Автор: boostcoder 29.9.2012, 12:36 |
попробую. вообще, попробую весь mingw собрать с lto. |
Автор: Randajad 6.10.2012, 15:51 |
Насяльника! Про баг напоминаю: |
Автор: boostcoder 6.10.2012, 16:49 |
снова на компе на котором нет диска D: ? Добавлено через 1 минуту и 10 секунд в этом треде эта проблема обсуждалась? не помнишь начиная с какой страницы? |
Автор: boostcoder 6.10.2012, 19:22 |
В проекте MinGW-builds произошло несколько изменений. 1) Проект изменил свое отношение касательно производимых сборок. Так, до сегодняшнего дня, проект MinGW-builds производил сборки только с использованием 'threads=posix', и не производил сборки использующие DWARF. Впредь, проект MinGW-builds будет производить сборки с использованием 'threads=posix' и 'threads=win32', а так же и с использованием как SJLJ так и DWARF и SEH(только для 4.8.0 и выше, и только для хоста x86_64) К примеру, для GCC-4.7.2-release, будут доступны следующие сборки: - x32-4.7.2-release-posix-sjlj - x32-4.7.2-release-posix-dwarf - x32-4.7.2-release-win32-sjlj - x32-4.7.2-release-win32-dwarf - x64-4.7.2-release-posix-sjlj - x64-4.7.2-release-win32-sjlj http://clip2net.com/clip/m47996/thumb640/1349433339-clip-14kb.png поясняющий назначение каждой составляющей в имени сборки. 2) Проект изменил структуру каталогов. http://clip2net.com/clip/m47996/thumb640/1349540175-fs-tree-description-23kb.png поясняющий новую структуру каталогов. 3) Все сборки будут выгружаться только в виде .7z архивов. 4) Тестовые сборки(prerelease/snapshot) будут собираться минимум раз в месяц. Возможно чаще, но не реже. 5) Из поддерживаемых сборками ЯП удален фортран. На данный момент доступны следующие сборки: - 4.6.2 - 4.6.3 - 4.7.0 - 4.7.1 - 4.7.2 Все сборки были пересобраны с использованием последних доступных версий gmp/mpfr/mpc/ppl/cloog/mingw-w64-headers/mingw-w64-crt/gdb. Огромная благодарность всем тем, кто использует сборки проекта MinGW-builds, и в особенности тем, кто тестирует сборки и сообщает о найденных ошибках. |
Автор: Randajad 7.10.2012, 08:39 |
http://forum.vingrad.ru/forum/topic-345601/180.html#st_105_view_0 Вот тут про диск D, ближе к концу. Проблема с диском D была и никуда не пропадает. Ребут спасает. Хочу сборку 4.8. :( |
Автор: Randajad 7.10.2012, 11:33 | ||
Последний 32 битный 4.7.2 с threadmodel=win32 не имеет std::thread. Там в <thread> есть такой #if:
_GLIBCXX_HAS_GTHREADS не задефайнен. Хочу потоки! |
Автор: boostcoder 7.10.2012, 12:18 | ||
это и есть то ограничение, которое связанно с недореализацией win32 threads бэкэнда. но у тебя есть возможность исправить ситуацию. |
Автор: boostcoder 7.10.2012, 12:38 | ||
т.е. после ребута, диск D уже не просит? на твоем компе сейчас нет диска D? Добавлено через 4 минуты и 52 секунды Randajad,
прочти последний пост в http://sourceforge.net/mailarchive/message.php?msg_id=29336204 треде. |
Автор: Randajad 7.10.2012, 16:09 |
Да. Оно работает нормально некоторое время, а потом внезапно начинает требовать D. После ребута все возвращается на круги своя до следующего появления. |
Автор: boostcoder 7.10.2012, 16:16 |
так у тебя на компе нет диска D? (третий раз спрашиваю) Добавлено через 1 минуту и 14 секунд все равно странно, почему вдруг начинает требовать диск D, и почему перестает его требовать после перезагрузки впредь, постараюсь не забыть производить сборки на C: диске. |
Автор: Randajad 7.10.2012, 17:20 |
Нету у меня его. :( |
Автор: Randajad 14.10.2012, 15:07 | ||||||||
Если Магомед не идет к горе, то гора идет к Магомеду... Решил собрать GCC 4.8 своими силами. Скачал https://sourceforge.net/projects/mingwbuilds/files/mingw-builds-sources/mingw-builds-0.3.0.zip/download Скачал оттуда же MSYS последний. Надыбал инструкцию, все сделал по ней. Пишу:
Получаю:
Смотрю файлы - архивы по 20 кило из-за кривых ссылок, видимо. О-кей, скачал вручную, подсунул, он их распаковал. Пищу опять, получаю:
Смотрю лог:
Зачем оно стало мне устанавливать x64 версии? Скрипты работают в каких-то тепличных условиях, да? |
Автор: boostcoder 14.10.2012, 15:16 | ||||||
сорри. все выходные работаю над добавлением поддержки linux и osx.
в этой версии mingw-builds ссылки на архивы были для прежнего дерева файлов. недавно дерево файлов изменилось, и ссылки стали невалидны. последние версии скриптов живут https://github.com/niXman/mingw-builds. на sf.net заливаю только релизы.
если ты помнишь, сборки от mingw-builds по умолчанию мультитаргетные. отсюда и две версии хостового тулчейна. я так понял, у тебя 32ух битная ОСь? если хочешь собрать 32ух битный мингв, добавь опцию '--no-multilib'. т.е. в итоге должно получится:
и глянь доку, ее там совсем чуть-чуть ;) '--threads=posix' кстати, установлен по умолчанию. (ах да, в той версии доки об этом не написано. исправлено в разрабатываемой версии.) |
Автор: Randajad 14.10.2012, 15:20 |
Окай. У меня ось 64 бита. Но я хочу 32 битный mingw. Буду пробовать, спасибо. |
Автор: boostcoder 14.10.2012, 15:23 |
покажи тогда config.log Добавлено через 8 минут и 35 секунд и да, '--use-lto' не используй. наткнешься на ошибку линковки cc1plus.exe. хотя, можешь попробовать) |
Автор: Randajad 14.10.2012, 20:07 | ||||||
Не буду. Вряд-ли GCC соберется с LTO и без ошибок. Всплыла ощибка при сборке binutils.
Исправил в сурсах. Хотелось бы, чтобы ключик -Werror убрался из конфига. Потом в самом конце ошибка, я так и не понял, какая:
И оно мне открыло:
|
Автор: boostcoder 14.10.2012, 20:15 | ||
хм.. я сегодня собирал 4.6.3 и 4.7.2 в нескольких вариантах, и этой ошибки небыло... в скриптах этот ключик не используется. добавь в правило binutils ключик '--disable-werror'. scripts/binutils.sh после 70ой строки.
какая-то крень с версиями automake. MSYS откуда взял? |
Автор: Randajad 14.10.2012, 20:16 |
Отсюда. https://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/msys%2B7za%2Bwget%2Bsvn%2Bgit%2Bmercurial%2Bcvs-rev4.zip/download Лучше бы ты добавил. |
Автор: boostcoder 14.10.2012, 20:39 | ||
ты ничего не путаешь? покажи вывод следующих команд: >$ aclocal --version >$ automake --version >$ autoconf --version о чем речь? |
Автор: Randajad 15.10.2012, 05:45 | ||
Речь о флажке `--disable-werror'. Добавлено через 1 минуту и 21 секунду Вот у меня на рабочем столе: msys+7za+wget+svn+git+mercurial+cvs-rev4. Я ничего не путаю. :( |
Автор: Randajad 15.10.2012, 06:20 |
С ошибкой насчет 64 версии либ, похоже, разобрался. Это из-за моих ключиков было. |
Автор: boostcoder 15.10.2012, 08:58 | ||
ах епс, ты же используешь скрипты 0.3, а они используют другую ревизию исходников make. |
Автор: Randajad 15.10.2012, 16:51 | ||
Я скачал по твоей ссылке новые скрипты. Problem still exists.
Ну запили --disable-werror! |
Автор: boostcoder 15.10.2012, 17:08 |
какой версии у тебя хостовый компилятор? Добавлено через 1 минуту и 57 секунд ты с поддержкой LTO собираешь? |
Автор: Randajad 15.10.2012, 17:12 |
Без поддержки. Версии той, которой оно скачало. Я удолил все, зафигачил новые скрипты и написал билд гцц-транк х32. |
Автор: Randajad 15.10.2012, 17:36 |
Предлагаю также сырцы брать отсюда: ftp://gcc.gnu.org/pub/gcc/snapshots/LATEST-4.8 А не качать свном, ибо это слишком долго. |
Автор: Randajad 15.10.2012, 20:35 | ||||
Не собирается(мультилиб), похоже на багу в гцц транковском.
А еще я посмотрел флаги, которые оно передает компилятору.
Причем они дублируются по стопицот раз. Откуда свои корни берет -g и -O2? Хочу выпилить. Совсем. |
Автор: Randajad 16.10.2012, 05:35 | ||
Собралось x32 без мультилиб. Причем на тестах застряло.
|
Автор: boostcoder 16.10.2012, 08:53 | ||||
оформи предложение https://github.com/niXman/mingw-builds/issues/new. Добавлено через 6 минут и 33 секунды с транком полный ахтунг. без рукоблудства, мультитаргет пока не собрать. -O2 и -pipe https://github.com/niXman/mingw-builds/blob/master/build#L42. остальные не мои.
исправил. |
Автор: Randajad 16.10.2012, 13:40 |
Эта-та я понял, что - твои. Надо поискать откуда оно свои корни берет и выпилить. А тут предложение оформить нельзя? :С И что насчет --disable-werror? |
Автор: boostcoder 16.10.2012, 16:28 |
я забуду. за год существования проекта, небыло необходимости в этой опции. оформи предложение. а лучше, внеси изменения и пришли pull request. |
Автор: Randajad 18.10.2012, 17:26 |
binutils НЕ собирается без --disable-werror. Я не знаю, почему у тебя все так хорошо, а у меня искаропки не работает. Видимо, магия. Может, мне сделать свои скрипты, документировать их, собрать все версии GCC, а потом прислать тебе? :С |
Автор: boostcoder 18.10.2012, 17:32 | ||
не я один собираю с использованием своих скриптов. проблемы встречаются разные, но ни у кого не случалось так, чтоб не собирался binutils. возможно, включу запись на время сборки, и вышлю тебе. других идей почему именно у тебя не собирается, у меня нет. Добавлено @ 17:33 Randajad, повторюсь. я не против этой опции. если есть желание добавить эту опцию - пришли патч. я не думаю что эта опция кому-то может помешать. Добавлено через 11 минут и 1 секунду Randajad, ты добавлял какте-то свои оптимизации, типа -O3 ? вообще, ты хоть что-то в скриптах изменял? |
Автор: Randajad 18.10.2012, 18:28 |
Я изменял только одну строчку в скрипте build, в самом начале. Заменил твои -s -O2 на -s -Os. Мне как-то слабо верится, что из-за оптимизаций появляется варнинг о том, что переменная не инициализирована. |
Автор: boostcoder 18.10.2012, 19:25 |
варнинг о том, что переменная не инициализирована, и варнинг о том, что переменная может использоваться неинициализированной - разные варнинги. второй свойственен LTO. при попытке собрать binutils с использованием LTO я http://sourceware.org/ml/binutils/2012-09/msg00322.html на такой варнинг. |
Автор: Randajad 19.10.2012, 16:21 |
Я нашел упоротую ошибку. Все версии GCC на данный момент фэйлят. Все окей, честная ошибка: http://liveworkspace.org/code/1110068f996076a08d835ab18789c034 Краш: http://liveworkspace.org/code/3d5e51c9059ea4f37ce2d0d23739d374 Добавлено @ 16:27 Можно минимизировать так. http://liveworkspace.org/code/30fd3222a9650d68b7f9746754e86f03 Шаблоны туманят разум GCC. |
Автор: boostcoder 20.10.2012, 00:49 |
Randajad, надеюсь, багрепорт оформил? ;) |
Автор: Randajad 20.10.2012, 09:13 |
Да! Чуточку не дотянул до 55000 гета. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54995 |
Автор: boostcoder 20.10.2012, 10:20 |
тут ошибка проверки того, что лямбда имеет список захвата. ибо согласно стандарту(искать влом), лямбда со списком захвата не может кастится к указателю на функцию. т.е. ошибка должна быть при вызове: foo(func); |
Автор: Randajad 20.10.2012, 10:23 |
Да. Класс излишен, наверное. Просто у меня в сырцах как раз класс и я долго пытался понять, почему получаю крашик. Добавлено через 7 минут и 40 секунд http://liveworkspace.org/code/d677608666f47d99d1d32ddd572fdf84 |
Автор: boostcoder 20.10.2012, 10:47 |
вот более детальный вариант: http://liveworkspace.org/code/6759617e8fb196cc862b16d0235ea5fd запости в баг-репорт. |
Автор: alexx83 25.10.2012, 17:42 |
Со следующих билдов mingw-builds будет поставляться с полноценным Python-2.7.3, который будет собираться из исходников вместе со сборкой, в поддиректории "opt". С этим Python будет линковаться gdb. На данный момент код для сборки Python из исходников с помощью mingw добавлен в репозиторий. Существует несколько проблем после решения которых все сборки будут комплектоваться Python собственной сборки. |
Автор: boostcoder 25.10.2012, 17:45 |
эм.. позвольте представить нового девелопера проекта MinGW-builds. таки да, alexx83 проделал огромную работу, чтоб собрать пайтон с использованием MinGW. напомню, что офф сборки пайтон, собираются с использованием MSVC. Добавлено через 3 минуты осталось только проверить, будет ли gdb работать с python-3.3. если да, то готовься к сборке оного |
Автор: Randajad 26.10.2012, 10:14 |
Что значит полноценный? Теперь вместе с MinGW будет идти интерпретатор питона в придачу? |
Автор: boostcoder 26.10.2012, 10:15 |
Randajad, не за что. |
Автор: borisbn 26.10.2012, 10:18 |
Я только собрался поблагодарить за питон... Довольно часть им пользуюсь. И Вам советую. Вот только не очень понял, а чем сборка от MSVC хуже ? 2 boostcoder, я не забыл о просьбе. работаю и даже подключил одного профи - QA-рщика |
Автор: Randajad 26.10.2012, 10:21 |
Питон упорот. Я C++ программист и я не хочу таскать с собой интерпретатор того, что мне нафиг не сдалось. |
Автор: boostcoder 26.10.2012, 10:30 | ||||
не хуже. не раз мне было высказано мнение о том, что юзеры не доверяют предкомпилированым бинарникам. так же, дважды мне писали(пендосы) о том, что им приходится удалять gdb и python из моих сборок прежде чем использовать мингв, по той же самой причине.
спасибо. я весь в ожидании. Добавлено через 8 минут и 20 секунд
ты до сих пор это делал, и ничего не произошло. пайтон используется gdb для pretty-printers. |
Автор: Randajad 28.10.2012, 15:42 |
Странные пендосы. Что мешает тебе в свои сборки добавлять вредоносный код? Тебе доверяют, а питону - нет... Таскалась одна дллка. А тут будет полноценный интерпретатор(хоть и маленький, но он будет). Может, засунем еще несколько компиляторов и интерпретаторов в сборку? Сильно она не потолстеет, а вот многие будут рады. Пойдем дальше - начнем собирать коллекцию компиляторов и интерпретаторов в одном флаконе! |
Автор: boostcoder 28.10.2012, 15:52 | ||
дело в том, что доверяют не мне, а тому, что юзеры могут сами воспроизвести процесс сборки пайтона, и, таким образом, делают вывод о том, что мне незачем мошейничать..
сам интерпретатор весит что-то около 60бк, если не ошибаюсь. Добавлено через 1 минуту и 54 секунды кстати, ты единственный кто высказал недовольство по этому поводу. |
Автор: boostcoder 5.11.2012, 09:26 |
были пересобраны все сборки версии 4.7.2 с суффиксом 'rev1', в связи с двумя(https://github.com/niXman/mingw-builds/blob/master/patches/make-linebuf-mingw.patch, https://github.com/niXman/mingw-builds/blob/master/patches/make-remove-double-quote.patch) добавленными патчами для make, и в связи с появлением в проекте MinGW-builds пайтона собственной сборки. думаю, через несколько недель тестов, будет релиз 0.4.0. |
Автор: boostcoder 24.11.2012, 09:36 |
в качестве подготовки к релизу 4.8.0, были собраны сборки с использованием dwarf/sjlj/seh. (dwarf только 32бита, seh только 64бита) найти их вы можете в поддереве testing: http://sourceforge.net/projects/mingwbuilds/files/host-windows/testing/4.8.0/ |
Автор: boostcoder 26.12.2012, 11:00 |
такой вопрос возник. есть желание производить сборки так, чтоб минимально необходимый минимум по архитектуре проца, был nocona. кто на каких архитектурах работает? был найден человек, который использует mingw-builds на каком-то p4, на котором сборка собранная для nocona не хотела работать. появилась ошибка типа "неизвестная инструкция". спасибо. |
Автор: boostcoder 23.1.2013, 15:23 |
вчера, разработчики Qt приняли решение относительно официального MinGW, используемого для сборки QtSDK, и поставляемого в составе QtSDK. и все же, их http://lists.qt-project.org/pipermail/development/2013-January/009415.html, чему я несказанно рад! это наша(проекта MinGW-builds) маленькая победа, надеюсь что не последняя хочу выразить благодарность от лица авторов проекта(я и https://github.com/Alexpux) всем пользователям наших сборок, за баг-репорты, рекомендации, и просто за фид-бэк. спасибо вам! |
Автор: borisbn 23.1.2013, 15:36 |
Поздравляю !!! |
Автор: boostcoder 23.3.2013, 10:50 |
вчера состоялся релиз gcc-4.8.0. уже сейчас вы можете скачать сборки MinGW на базе gcc-4.8.0 http://sourceforge.net/projects/mingwbuilds/. в 4.8.0 для windows платформы, появилась возможность использовать SEH(http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.8.0/64-bit/threads-win32/seh/x64-4.8.0-release-win32-seh-rev0.7z, http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.8.0/64-bit/threads-posix/seh/x64-4.8.0-release-posix-seh-rev0.7z). но, из-за патентных ограничений, эта возможность доступна только в x86_64 сборках. |
Автор: borisbn 23.3.2013, 12:09 |
1) Не подскажешь, они regex'ы починили? 2) Разреши поздравить: LWS стал официальным online компилятором на SO - http://stackoverflow.com/tags/c%2b%2b/info |
Автор: boostcoder 23.3.2013, 18:36 | ||
нет. это будет сделано в 4.9.0.
да, я в курсе =) спасибо но это только начало ;) |
Автор: bsa 3.4.2013, 16:33 |
Сборка 4.8.0, кстати, глючная. С помощью 32-х битной версии 4.8.0 пробовал собрать avr-gcc-4.7.2 и avr-gcc-4.8.0. В результате они вываливались с сообщением internal compiler error (4.7.2 при компиляции libgcc, 4.8.0 при компиляции avr-libc). Когда собрал avr-gcc-4.7.2 с использованием стандартного mingw32-4.7.2, то все работает отлично. |
Автор: boostcoder 3.4.2013, 16:43 | ||
кто-бы сомневался. нулевые багфиксы всегда глючные, и кроме как для тестов, ни для чего не подходят ;)
какая ревизия сборки 4.7.2 использовалась? |
Автор: bsa 3.4.2013, 18:03 |
boostcoder, твои сборки 4.7.2 не использовал - не успел, так как очень долго под виндой binutils и gcc компилируются!!! Кстати, у тебя не совсем корректное полное именование тулсета. В частности, отсутствует nm с таким же префиксом, что и gcc. Т.е. надо конфигурировать указывая одинаковые --target, что для binutils, что для gcc. w64 вводит в заблуждение (качал универсальный пакет, но там только ...-w64-...). Универсальный пакет под win64 не линкует приложения под win32. именование должно быть такое: mingw32-gcc, i686-pc-mingw32-gcc, mingw64-gcc... |
Автор: boostcoder 3.4.2013, 20:08 | ||||
ну...оно не у меня. имена не я задаю.
не-не-не. для '*-w64-*' как в gcc, так и во многих других тулчейнах собираемых для вендус. '*-w64-*' дает конфигураторам тулчейнов понять, что используется API/CRT не mingw.org можешь написать мне в ЛС инструкцию по сборке нужного тебе кросса? потыкаю на выходных. |
Автор: bsa 4.4.2013, 11:48 |
boostcoder, нужный мне кросс классно собирается под линем за пол часа, в отличие от винды, где на это уходит пол ночи Поэтому, я решил, что уж лучше буду делать это под linux, где сборка 3-х наборов кросс-компиляторов (linux->avr, linux->mingw, windows->avr) происходит значительно быстрее, чем под windows. |
Автор: boostcoder 4.4.2013, 12:42 |
bsa, что-то я так и не понял...mingw-4.8.0(который от mingw-builds), у тебя бажит под линуксом? |
Автор: bsa 4.4.2013, 16:26 |
boostcoder, нет. с его помощью я собирал компилятор gcc-avr, который должен был работать под виндой. gcc-avr-4.8.0 собрался, но при сборке avr-libc вылетал с ошибкой internal compiler error. avr-gcc-4.7.2 не смог собраться - вылетал на сборке libgcc. |
Автор: boostcoder 5.4.2013, 01:26 | ||
тогда повторяю:
|
Автор: boostcoder 13.4.2013, 09:02 |
вчера состоялся релиз GCC за версией 4.7.3. всего было исправлено http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.3. MinGW на базе gcc-4.7.3 уже сейчас вы можете скачать на http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.7.3/. |
Автор: boostcoder 7.6.2013, 11:20 |
несколько дней назад состоялся релиз GCC под версией 4.8.1. сборку, на основе gcc-4.8.1 вы уже сейчас можете http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.8.1/ со страницы проекта. так же, проект MinGW-builds выпустил универсальный онлайн инсталлятор, который вы можете скачать тут. инсталлятор получает всю необходимую информацию из http://sourceforge.net/projects/mingwbuilds/files/host-windows/repository.txt. так что обновлять инсталлятор при выходе новых сборок - не нужно. |
Автор: boostcoder 24.6.2013, 16:23 |
популярность MinGW-builds растет, и кол-во пользователей тоже. в связи с этим, есть желание переименовать MinGW-builds в нечто более осмысленное и запустить для него отдельный сайт. предлагайте. благодарен. |
Автор: boostcoder 6.7.2013, 13:05 |
благодарен всем за предложения. вчера была пересобрана версия 4.8.1 под ревизией rev2, со следующими изменениями: - add support for Ada, ObjC and ObjC++ languages - 32-bit GCC linked with --large-address-aware - mingw-w64 runtime rev. 5934 находится http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.8.1/. |
Автор: boostcoder 16.7.2013, 19:25 |
после длительных переговоров, было принято решение об объединении проектов https://sourceforge.net/projects/mingwbuilds/ и https://sourceforge.net/projects/mingw-w64/. целью является: 1. усиленная поддержка/фиксинг windows-specific багов/фитчей. 2. уменьшение зоопарка сборок, который, даже бывалого вводит в ступор. проект MinGW-builds получает статус официального сборщика тулчейнов для win32/win64. (до этого момента, MinGW-builds считался персональными сборками) проект MinGW-w64 получает официальные сборки. (до этого момента, напомню, MinGW-w64 не предоставлял официальных сборок, только персональные, за которые отвечали авторы сборок) таким образом, проект MinGW-builds вливается в команду MinGW-w64, и перестает существовать. о точной дате прекращения поддержки/обновления MinGW-builds - я сообщу дополнительно. вопросы? |
Автор: boostcoder 21.10.2013, 20:59 | ||
свершилось! |
Автор: Rooctor 14.2.2019, 11:39 |
GCC под windows ставил из этой ссылки: https://solarianprogrammer.com/2017/11/22/install-codeblocks-gcc-windows/ CodeBlock 17.12 + MinGW("Distro") [GCC 8.2.0 + Boost 1.69.0] полет нормальный |
Автор: Zonanor 4.1.2021, 01:11 |
Модератор: Сообщение скрыто. |