Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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=. бесплатно! smile 

при использовании классов из http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.4/a01000.html, добавляйте опцию "-lpthread". в будущих сборках исправлю.

Автор: kemiisto 31.7.2011, 08:07
Цитата(Sahab @  30.7.2011,  19:26 Найти цитируемый пост)
ато в инете только офф.сборки да tdm, ито - 4.5.2

Неа. Есть ещё http://www.equation.com/servlet/equation.cmd?fa=fortran. Там и 4.6 и 4.7 есть.

boostcoder, а ты можешь запилить поддержку LTO (Link-Time Optimization)?

Автор: boostcoder 31.7.2011, 08:20
Цитата(kemiisto @  31.7.2011,  08:07 Найти цитируемый пост)
Есть ещё сборки от Equation Solution.

они иногда грешат тем, что собирают компилеры на Cygwin`е. на продукт производимый компилятором это конечно никак не сказывается, но все же, зачем эмуляция, если можно нативно?


Цитата(kemiisto @  31.7.2011,  08:07 Найти цитируемый пост)
можешь запилить поддержку LTO (Link-Time Optimization)?

в смысле "запилить" ? в этих сборках она есть. по твоему блогу проверял: http://kemiisto.blogspot.com/2010/09/lto.html

Автор: kemiisto 31.7.2011, 08:27
Цитата(boostcoder @  31.7.2011,  07:20 Найти цитируемый пост)
в этих сборках она есть.

boostcoder, извини, не посмотрел.

Автор: boostcoder 31.7.2011, 08:41
эм.. обнаружил такую неудобность...

если собирать коды из блога kemiisto с отключенным LTO, то линкер ругается на unresolved externals на pthread`ы.
если LTO включить - все ок.

получется что с отключенным LTO ничего не собрать.
ушел разбираться. сорри smile

Добавлено через 3 минуты и 27 секунд
OpenMP линкуется как надо.

и этот код тоже:
Код


#include <iostream>
#include <thread>
#include <mutex>
#include <condition_variable>

static const int cnt = 1024;

int main() {
   std::mutex mutex;
   {
      std::condition_variable cond;
      std::unique_lock<std::mutex> l(mutex);
      std::cout << "before std::condition_variable::wait_for()" << std::endl;
      cond.wait_for(l, std::chrono::milliseconds(1000));
      std::cout << "after std::condition_variable::wait_for()" << std::endl;
   }
   
   std::thread t1(
      [&mutex]() {
         for ( int idx = 0; idx < cnt; ++idx ) {
            std::this_thread::sleep_for(std::chrono::milliseconds(100));
            std::unique_lock<std::mutex> locker(mutex);
            std::cout << "id: " << std::this_thread::get_id() << ": Hello from thread!" << std::endl;
         }
      }
   );
   std::thread t2(
      [&mutex]() {
         for ( int idx = 0; idx < cnt; ++idx ) {
            std::unique_lock<std::mutex> locker(mutex);
            std::cout << "id: " << std::this_thread::get_id() << ": Hello from thread!" << std::endl;
         }
      }
   );
   std::thread t3(
      [&mutex]() {
         for ( int idx = 0; idx < cnt; ++idx ) {
            std::unique_lock<std::mutex> locker(mutex);
            std::cout << "id: " << std::this_thread::get_id() << ": Hello from thread!" << std::endl;
         }
      }
   );
   t1.join();
   t2.join();
   t3.join();
}



странно... что-то я с ключами configure намутил smile

Добавлено через 8 минут и 5 секунд
если отключить LTO и при этом добавить "-lpthread" - все равно линкер ругается. какие-то взаимоисключающие опции ведать указал..

Автор: boostcoder 31.7.2011, 09:06
Цитата(boostcoder @  31.7.2011,  08:41 Найти цитируемый пост)
если собирать коды из блога kemiisto с отключенным LTO, то линкер ругается на unresolved externals на pthread`ы.

и -
Цитата(boostcoder @  31.7.2011,  08:41 Найти цитируемый пост)
OpenMP линкуется как надо.

и этот код тоже:

что-то не сходится...

Автор: 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
Код

#include <iostream>
using namespace std;
 
int main()
{
     cout<<"HELLO, WORLD!!!"<<endl;
     return 0;
}


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 smile

Автор: 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
Цитата(kemiisto @  17.9.2011,  22:44 Найти цитируемый пост)
А сложно под вынду собирать?

теперь нет. но по началу, когда я только задался этой целью, у меня ушло около месяца на попытки... нет, я не каждый день и не целый день этим занимался. но в сумме, все равно очень много времени ушло на эти попытки. и это я пробовал собрать в венде, на виртуалке. и, из-за того что в венде приходилось ждать по 8 часов чтоб увидеть очередную ошибку, я решил попробовать собирать в лине, кросскомпилятором. и да, помогло. в лине, все это дело собиралось в двое быстрее. в общем я однажды все таки собрал свой первый мингв. но без OpenMP+Graphite+LTO+std_threads. но кому он такой был нужен? в инете полно подобных сборок smile т.е. еще немало времени ушло на это. потом, осознав неудобность того, что в лине не запустишь тесты, а переносить на венду недособранный компилятор ооочень не просто, я все же решил второй раз попытаться собрать его нативно. однажды таки получилось.

так что, в сумме, я бы сказал, месяца четыре попыток...
и да, без 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, вот это щаз в тему было (про раскраску критера). Да? smile 

Автор: 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
Цитата(Sahab @  20.9.2011,  10:06 Найти цитируемый пост)
имелось в виду не самостоятельно набивать а готовые...
где их найти в файловой и в настройках и сам знаю. 
Настроить цвета по готовому шаблону - дело пяти минут. Боюсь такому ленивцу предлагать гуглить, но все же: "kate color scheme", в т.ч. несколько есть на kde-look.

Автор: Sahab 20.9.2011, 14:36
newbee, с гуглом я знаком и без Вас... и уж поверьте, делаю это регулярно... и до того как постить что-либо.
Вы уважаемый сами пробовали это делать? 

Цитата(newbee @  20.9.2011,  12:58 Найти цитируемый пост)
kde-look. 
 бывал не только тут.

з.ы. не скажу что в гугле нет... но толкового совсем мало.  


Автор: 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 не пишу, но возможно кому-то эта новость покажется полезной. мне же, интересно, соберется ли фронтэнд в венде smile 

Автор: 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(так далее будет называться проект) включающая:
  • компилятор MinGW
  • IDE Code::Block, Dev-C++, wxDev-C++, QtCreator
  • множество предкомпилированных библиотек
все из перечисленного будет доступно при помощи онлайн-инсталлятора.

Автор: 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, что позволит сделать мир многопоточных программ проще smile отдельно хочется поблагодарить 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. совершенно бесплатно smile 

Автор: 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" при линковке. иначе получите сегфолт. проблема известная, и девелоперы обещают ее пофиксить.

зы
Цитата(boostcoder @  24.12.2011,  11:17 Найти цитируемый пост)
релиз 4.7.0 обещают в феврале, после чего, ветка перейдет в stage 4(regression fixes and optimization).

оказывается, я не правильно понял. разрабатываемая ветка сначала перейдет в stage 4, и после, в феврале, ожидается релиз.
в stage 4 ветка уже перешла.

Автор: boostcoder 17.1.2012, 08:30
с гордостью хочу сообщить о том, что исправил последний мне известный баг MinGW, вынуждающий использовать статическую линковку при использовании std_threads!
некоторое время я (на пару с вами) буду тестить этот fix, после чего закоммичу патч.

так же, исправил баг LTO в сборках 4.7.0, который не давал мне покоя уже 4 месяца.

выложил snapshot сборки 4.7.0.
готовлюсь к релизу smile 

качать 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 окружении:
Цитата

Intel Core-i3/i5/i7 chips are quite prevalent now, and I'm lazy, so, with no disrespect intended towards AMD and other non-Intel x86 CPUs, I ran the benchmarks only on my home PC, a 2010-vintage system with a Core i5-670 CPU that turbo boosts to 3.73 GHz. My motherboard is an Asus P7H57D-V EVO with 16 GB of DDR-3 1333 MHz RAM. The O/S is 64-bit Windows 7 Ultimate.

в пяти из десяти тестов 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
Вот это
Цитата
This is computed by dividing all of the run times by the best run time.

перевести то перевёл, но что это значит - не понял. Зачем делить все времена (и что значит все??? сумму всех?) на лучший результат ?
Можешь разжевать для тупого ?

Автор: newbee 19.1.2012, 19:13
Цитата(borisbn @  19.1.2012,  20:05 Найти цитируемый пост)
Можешь разжевать для тупого ? 
Можешь считать это средним результатом после проведения серии экспериментов.

Добавлено через 2 минуты и 30 секунд
Гцц оказался еще и самым тормозным в плане времени компиляции. Хотя это уже давно известно.

Автор: boostcoder 19.1.2012, 19:19
Цитата(newbee @  19.1.2012,  19:13 Найти цитируемый пост)
Можешь считать это средним результатом после проведения серии экспериментов.

угу.

Цитата(newbee @  19.1.2012,  19:13 Найти цитируемый пост)
Гцц оказался еще и самым тормозным в плане времени компиляции. Хотя это уже давно известно.

не нужно быть голословной.
все дело в том, что MSVC как и Intel производят сборку в несколько потоков. по умолчанию - сколько ядер. а gcc, точнее make.exe в венде работает в один поток. т.е. опция -j не дает эффекта ;)

Автор: borisbn 19.1.2012, 19:29
Цитата(newbee @  19.1.2012,  19:13 Найти цитируемый пост)
Можешь считать это средним результатом после проведения серии экспериментов.

скорее это говорит о разбросе в серии тестов. вот взять, например, первый тест.
Цитата
intel11    X    X    64-bit    321    3.55    17.1    1.00

и
Цитата
tcc925       32-bit    21    3.99    91.1    5.31

вроде бы и время работы у tcc925 бешенное (91,1) и этот злополучный параметр плохой (5,31). Но ведь если время выполнения 91,1 сек, а отношение этого времени к лучшему = 5,3, то лучшее время 91,1 / 5,31 = 17,2. А у интела - 17,1 / 1,0 = 17,1.
Нифига не понимаю.  smile 

Автор: boostcoder 19.1.2012, 19:33
Цитата(borisbn @  19.1.2012,  19:29 Найти цитируемый пост)
tcc925

на сколько я помню, это вообще Си компилятор, при том не оптимизирующий. нафег его вообще приплели к тестам?

Цитата(borisbn @  19.1.2012,  19:29 Найти цитируемый пост)
Нифига не понимаю.

в моих расчетах, я суммировал время работы теста(не компиляции) и поделил на кол-во тестов.

Автор: newbee 19.1.2012, 19:40
Цитата(borisbn @  19.1.2012,  20:29 Найти цитируемый пост)
Нифига не понимаю. 
Лучшее время - 17.1, отношение времени тцц к лучшему равно 5.3. Вообще я плохо первый ответ дала, на самом деле это показатель того, во сколько раз одно хуже лучшего. Вот интел - лучший, гцц хуже в полтора раза, тцц - в пять.

Добавлено через 3 минуты и 21 секунду
Цитата(boostcoder @  19.1.2012,  20:19 Найти цитируемый пост)
не нужно быть голословной.
Я знаю про этот баг, но гцц все равно тормоз в соотношении качество/скорость компиляции.

Цитата(boostcoder @  19.1.2012,  20:33 Найти цитируемый пост)
на сколько я помню, это вообще Си компилятор, при том не оптимизирующий. нафег его вообще приплели к тестам?
Ога. Он еще и интерпретировать не компилируя умеет - это главная его фишка. А к тестам его приплели просто чтобы показать насколько простое решение хуже продвинутых технологий. В пять раз всегоsmile

Автор: boostcoder 19.1.2012, 19:49
newbee, нет, ты чтоб не потроллить о наболевшем, не можешь.

Автор: newbee 19.1.2012, 19:51
Цитата(boostcoder @  19.1.2012,  20:49 Найти цитируемый пост)
newbee, нет, ты чтоб не потроллить о наболевшем, не можешь. 
Дохтур, у меня ничего не болит, вы о чем вообще? ;;я честно не поняла, где троллинг.

Добавлено через 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
Цитата(Alca @  2.3.2012,  11:20 Найти цитируемый пост)
Когда будут сборки mingw64 ?

эх... руки не доходят.
по возможности, на выходных постараюсь.

Автор: 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
Цитата(bsa @  2.3.2012,  22:19 Найти цитируемый пост)
trunk стабильная?

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
Цитата(Randajad @  15.3.2012,  13:22 Найти цитируемый пост)
std::regex запилили бы лучше.

полагаю, это M$ специфик. в линуксе-то он работает. попробую разобраться на досуге.

Автор: borisbn 15.3.2012, 13:56
 smile  кажется понял...
http://liveworkspace.org/code/5633b7a65228b9509264ebd0e7853b69

Автор: boostcoder 15.3.2012, 13:56
borisbn, говорят что не работает. кто-то говорит что тупо сегфолтит. я пока не проверял.

Добавлено через 41 секунду
Цитата(borisbn @  15.3.2012,  13:56 Найти цитируемый пост)
кажется понял...

хм.. а когда-то оно работало. в линуксе точно.

Автор: 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. smile

Автор: 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

жду отзывов smile

Автор: borisbn 29.3.2012, 08:38
boostcoder, спасибо. Ждём 4.7.0 на LWS  smile 

Автор: boostcoder 29.3.2012, 10:13
Цитата(borisbn @  29.3.2012,  08:38 Найти цитируемый пост)
4.7.0 на LWS

кстати да. совсем забыл %)

готово: http://liveworkspace.org/code/6331a929ef26265c656bf1839fb8065d
Цитата

gcc version: 4.7.0
boost version: 1_50


Автор: 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
Цитата(boostcoder @  12.4.2012,  13:36 Найти цитируемый пост)
 по мотиву CLang

стыдно признаться, но никогда не видел 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 — вывод строки с нулевым завершающим байтом; если модификатор длины — l, выводится строка wchar_t*. В Windows значения типа s зависят от типа используемых функций. Если используется семейство printf функций, то s обозначает строку char*. Если используется семейство wprintf функций, то s обозначает строку wchar_t*.
S — то же самое что и s с модификатором длины l; В Windows значения типа S зависит от типа используемых функций. Если используется семейство printf функций, то S обозначает строку wchar_t*. Если используется семейство wprintf функций, то S обозначает строку char*.


© Педивикия.

Однако в реальности %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
Цитата(boostcoder @  12.4.2012,  13:36 Найти цитируемый пост)
gcc-4.8.x будет формировать вывод информации о ошибках и варнингах по мотиву CLang. но говорят что даже лучше чем CLang.в принципе, эта фишка уже сейчас перенесена в trunk. на неделе соберу, поглядеть.

это же замечательно!
честно говоря периодически не осиливая сообщения об ошибках gcc - скармливаю программу clang'у smile 

Автор: 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 по сравнению с другими не заметил. smile

Автор: boostcoder 29.4.2012, 15:06
Randajad, покажи примеры для 4.8.0 и той, с которой сравниваешь.

Автор: Randajad 29.4.2012, 15:14
4.8.
Цитата

In file included from Q:\Tools\CodeBlocks\Custom\include/boost/program_options/value_semantic.hpp:14:0,
                 from Q:\Tools\CodeBlocks\Custom\include/boost/program_options/options_description.hpp:13,
                 from Q:\Tools\CodeBlocks\Custom\include/boost/program_options.hpp:15,
                 from Q:\Tools\CodeBlocks\Custom\include/lib/options.h:2,
                 from Q:\Work\rwork\nedtest\main.cpp:1:
Q:\Tools\CodeBlocks\Custom\include/boost/lexical_cast.hpp: In instantiation of 'bool boost::detail::lexical_stream_limited_src<CharT, Traits, RequiresStringbuffer>::shr_using_base_class(InputStreamable&) [with InputStreamable = main(int, const char**)::<anonymous struct>; CharT = wchar_t; Traits = std::char_traits<wchar_t>; bool RequiresStringbuffer = false]':
Q:\Tools\CodeBlocks\Custom\include/boost/lexical_cast.hpp:1704:90:   required from 'bool boost::detail::lexical_stream_limited_src<CharT, Traits, RequiresStringbuffer>::operator>>(InputStreamable&) [with InputStreamable = main(int, const char**)::<anonymous struct>; CharT = wchar_t; Traits = std::char_traits<wchar_t>; bool RequiresStringbuffer = false]'
Q:\Tools\CodeBlocks\Custom\include/boost/lexical_cast.hpp:1920:17:   required from 'static Target boost::detail::lexical_cast_do_cast<Target, Source>::lexical_cast_impl(const Source&) [with Target = main(int, const char**)::<anonymous struct>; Source = std::basic_string<wchar_t>]'
Q:\Tools\CodeBlocks\Custom\include/boost/lexical_cast.hpp:2087:50:   required from 'Target boost::lexical_cast(const Source&) [with Target = main(int, const char**)::<anonymous struct>; Source = std::basic_string<wchar_t>]'
Q:\Tools\CodeBlocks\Custom\include/boost/program_options/detail/value_semantic.hpp:88:13:   required from 'void boost::program_options::validate(boost::any&, const std::vector<std::basic_string<charT> >&, T*, long int) [with T = main(int, const char**)::<anonymous struct>; charT = wchar_t]'
Q:\Tools\CodeBlocks\Custom\include/boost/program_options/detail/value_semantic.hpp:169:13:   required from 'void boost::program_options::typed_value<T, charT>::xparse(boost::any&, const std::vector<std::basic_string<charT> >&) const [with T = main(int, const char**)::<anonymous struct>; charT = wchar_t]'
Q:\Work\rwork\nedtest\main.cpp:23:1:   required from here
Q:\Tools\CodeBlocks\Custom\include/boost/lexical_cast.hpp:1544:29: error: cannot bind 'std::basic_istream<wchar_t>' lvalue to 'std::basic_istream<wchar_t>&&'
                 Traits::eof();
                             ^


4.6.
Цитата

In file included from Q:\Tools\CodeBlocks\Custom\include/boost/program_options/value_semantic.hpp:14:0,
                 from Q:\Tools\CodeBlocks\Custom\include/boost/program_options/options_description.hpp:13,
                 from Q:\Tools\CodeBlocks\Custom\include/boost/program_options.hpp:15,
                 from Q:\Tools\CodeBlocks\Custom\include/lib/options.h:2,
                 from Q:\Work\rwork\nedtest\main.cpp:1:
Q:\Tools\CodeBlocks\Custom\include/boost/lexical_cast.hpp: In member function 'bool boost::detail::lexical_stream_limited_src<CharT, Traits, RequiresStringbuffer>::shr_using_base_class(InputStreamable&) [with InputStreamable = main(int, const char**)::<anonymous struct>, CharT = wchar_t, Traits = std::char_traits<wchar_t>, bool RequiresStringbuffer = false]':
Q:\Tools\CodeBlocks\Custom\include/boost/lexical_cast.hpp:1704:90:   instantiated from 'bool boost::detail::lexical_stream_limited_src<CharT, Traits, RequiresStringbuffer>::operator>>(InputStreamable&) [with InputStreamable = main(int, const char**)::<anonymous struct>, CharT = wchar_t, Traits = std::char_traits<wchar_t>, bool RequiresStringbuffer = false]'
Q:\Tools\CodeBlocks\Custom\include/boost/lexical_cast.hpp:1920:17:   instantiated from 'static Target boost::detail::lexical_cast_do_cast<Target, Source>::lexical_cast_impl(const Source&) [with Target = main(int, const char**)::<anonymous struct>, Source = std::basic_string<wchar_t>]'
Q:\Tools\CodeBlocks\Custom\include/boost/lexical_cast.hpp:2087:50:   instantiated from 'Target boost::lexical_cast(const Source&) [with Target = main(int, const char**)::<anonymous struct>, Source = std::basic_string<wchar_t>]'
Q:\Tools\CodeBlocks\Custom\include/boost/program_options/detail/value_semantic.hpp:88:13:   instantiated from 'void boost::program_options::validate(boost::any&, const std::vector<std::basic_string<charT> >&, T*, long int) [with T = main(int, const char**)::<anonymous struct>, charT = wchar_t]'
Q:\Tools\CodeBlocks\Custom\include/boost/program_options/detail/value_semantic.hpp:169:13:   instantiated from 'void boost::program_options::typed_value<T, charT>::xparse(boost::any&, const std::vector<std::basic_string<charT> >&) const [with T = main(int, const char**)::<anonymous struct>, charT = wchar_t]'
Q:\Work\rwork\nedtest\main.cpp:23:1:   instantiated from here
Q:\Tools\CodeBlocks\Custom\include/boost/lexical_cast.hpp:1544:29: error: cannot bind 'std::basic_istream<wchar_t>' lvalue to 'std::basic_istream<wchar_t>&&'


Ах, нововведение заключается в стрелочке, как я забыл.
Кроме нее ничего полезного. В случае маленькой ошибки gcc выводит всякую ересь. Порой даже ересь не относится к ошибке. smile
В MSVC с этим лучше, там таки более-менее вменяемое выдает.

Автор: boostcoder 29.4.2012, 15:29
и правда.
ну ждем. разрабы обещали что будет не хуже чем у кланга.

Автор: Randajad 30.4.2012, 22:25
Когда кланг стоит ждать? smile

Автор: 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, у меня происходит такая ошибка:
Цитата

"make": [C:\Users\юзер\AppData\Local\Temp\ccKXUcye.ltrans0.ltrans.o] Error 1 (ignored)


но это нормально если учесть, что snapshot`ы вообще работать не обязаны)

Автор: Randajad 9.5.2012, 08:21
Не обязаны работать? Да ладно. smile
Работает кошерно. Никаких особых трабл, кроме описаных выше, нету. Лто - вещь, кстати. Прирост ощутимый дает, плюс теперь гцц научилось выкидывать dead-code из экзешки по-нормальному. На крупном проекте с 6,7 метров стало всего 3,5. Правда без распаралелливания линкуется 3 минуты. smile
Скорее бы релиз новый, что-ли. smile

Автор: 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

Так что ваши релизы тоже не работают.  smile 

Автор: boostcoder 9.5.2012, 11:32
Цитата(Randajad @  9.5.2012,  11:08 Найти цитируемый пост)
release gcc 4.7.0 оно тоже не распаралелливается

смогу проверить часов через 8мь, к сожалению.
но что-то мне подсказывает, что ошибка тоже будет чем-то вроде:
Цитата

"make": [C:\Users\юзер\AppData\Local\Temp\ccKXUcye.ltrans0.ltrans.o] Error 1 (ignored)


Добавлено через 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
Цитата(Randajad @  13.5.2012,  13:28 Найти цитируемый пост)
почему gcc 4.8.0 использует sse2 по-умолчанию?

а 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:32 Найти цитируемый пост)
Видимо, она только с x64 хостом, который собирает x86 приложение.

приведи еще код, которым детектируешь такое поведение. попробую разузнать.

Автор: Randajad 13.5.2012, 15:46
3D движок irrlicht + любой из его примеров.

Автор: boostcoder 13.5.2012, 15:53
Цитата(Randajad @  13.5.2012,  15:46 Найти цитируемый пост)
3D движок irrlicht + любой из его примеров.

 smile 
и как же я девелоперам объясню это, учитывая что воспроизвести они это смогут только на примерах irrlicht ?

Добавлено @ 15:55
скинь тогда обе экзешки. я на примере сгенеренного ассемблера им покажу разницу.

Добавлено через 3 минуты и 6 секунд
они статически линкуют зависимости от irrlicht?
если нет - тогда и dll`ки тоже скинь.

Автор: Randajad 13.5.2012, 16:06
Да наверняка любая программка с каким-нибудь циклом, который гцц может векторизировать. smile
Чуть попозже сделаю таковой и предоставляю. 
Ирлич - текущий проект, поэтому на нем выяснилось. smile

Автор: boostcoder 14.5.2012, 15:48
Цитата(Randajad @  13.5.2012,  16:06 Найти цитируемый пост)
Чуть попозже сделаю таковой и предоставляю.

пинг?

Автор: boostcoder 24.5.2012, 04:06
Сегодня, состоялся релиз системы сборки MinGW в рамках проекта MinGW-builds под версией 0.1.0.
Из основных изменений произошедших с момента первого коммита, можно отметить следующие:
  • Добавлен ключ --preload, заставляющий систему сборки сначала скачать все исходники, и только потом собирать. Необходим для одновременной сборки сразу нескольких версий.
  • Добавлен ключ --dwarf, информирующий систему сборки использовать DWARF вместо SJLJ. При этом, доступна сборка только для i686 хоста, и только для i686 цели.
  • Для каждой версии GCC отныне отдельный конфигурационный файл.
  • Аргументы командной строки более не зависят от порядка написания.
  • Логи сборки более не вставляются в архив со сборкой.
  • С этого момента, архивы со сборками снова содержат суффикс используемой сборкой реализации исключений.
  • https://sourceforge.net/projects/mingwbuilds/files/External%20binary%20packages/, со всеми необходимыми для сборки MinGW тулзами(7z+wget+svn+git+mercurial+cvs) вы теперь можете скачать на странице проекта.
  • Добавлен патч исправляющий https://sourceforge.net/mailarchive/message.php?msg_id=29215821 возникающую при генерации компилятором кода развертывания стека и использованием http://msdn.microsoft.com/en-us/library/windows/desktop/ms679360(v=vs.85).aspx в этом скопе.
  • Добавлены следующие тесты: 1)тест POSIX-RT функций, 2)тест С++11 sleep_for/sleep_until функций, 3)тест GetLastError() при развертывании стека.
Инструкцию по использованию системы сборки MinGW-builds вы можете прочесть http://sourceforge.net/p/mingwbuilds/wiki/Installing%20MinGW-builds/.

Автор: 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: smile 
такая же проблема описана https://sourceforge.net/mailarchive/message.php?msg_id=29336204.

как решить проблему правильно - я так и не понял.
можно обойти ее, собирая MinGW на диске C:

Автор: Randajad 5.6.2012, 19:03
Исходники GCC есть, какие проблемы? smile
Выпилить из кода этот участок. smile Все-равно не найдет же.

P.S.: оно проверяет наличие файла через _access.

Автор: boostcoder 5.6.2012, 19:18
Цитата(Randajad @  5.6.2012,  19:03 Найти цитируемый пост)
какие проблемы?

никаких проблем.
но почему-то от от тебя я патча так и не получил. сколько нужно ждать?

Цитата(Randajad @  5.6.2012,  19:03 Найти цитируемый пост)
оно проверяет наличие файла через _access

как определил?

Автор: Randajad 5.6.2012, 19:27
Дизассемблил. smile
Я ж в личку ответил причину. :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
Цитата(Randajad @  15.3.2012,  13:22 Найти цитируемый пост)
std::regex запилили бы лучше. 

оно, конечно, три месяца прошло... но лучше поздно, чем никогда...
вот - 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
Видимо решили свою реализацию. Уже вон сколько времени, а до сих пор нету. smile

Автор: 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.

Код

  int wmemcmp(const wchar_t *s1, const wchar_t *s2,size_t n);


Тот же файл, 973.

Код

  __CRT_INLINE int [color=red]__cdecl[/color] wmemcmp(const wchar_t *_S1,const wchar_t *_S2,size_t _N) {


Добавлено через 1 минуту и 15 секунд
math.h, 426:

Код

  extern float [color=red]__cdecl[/color] sinhf(float _X);
#ifndef __CRT__NO_INLINE
  __CRT_INLINE float sinhf(float _X) { return ((float)sinh((double)_X)); }
#endif


Добавлено через 3 минуты и 1 секунду
Вообщем это везде в math.h в #ifndef __CRT__NO_INLINE и выплывает при изменении стандартного calling convention.

Автор: boostcoder 15.6.2012, 08:11
про эти последствия копипаста ты раньше не говорил.
так что -
Цитата(Randajad @  15.6.2012,  08:06 Найти цитируемый пост)
Другие баги остались.

для меня это новые баги.


Цитата(Randajad @  15.6.2012,  08:06 Найти цитируемый пост)
выплывает при изменении стандартного calling convention.

а для чего это делать?

Автор: Randajad 15.6.2012, 08:13
Жалко, что не поправили распаралелливание лто.

Добавлено через 24 секунды
Ну как. smile
В любом случае должно работать. smile

Автор: 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 перенесены? Если да, то когда снапшотик будет? smile

Автор: boostcoder 15.6.2012, 08:36
Цитата(Randajad @  15.6.2012,  08:27 Найти цитируемый пост)
А все эти багфиксы в ветку 4.8 перенесены?

конечно.

Цитата(Randajad @  15.6.2012,  08:27 Найти цитируемый пост)
Если да, то когда снапшотик будет?

воскресенье-понедельник.
впрочем, как обычно smile

Автор: boostcoder 19.6.2012, 15:56
Цитата(Randajad @  15.6.2012,  08:13 Найти цитируемый пост)
не поправили распаралелливание лто.

ты баг-репорт написал?
как воспроизвести баг?

Автор: 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
Последняя релизная сборка.

Простой пример:

Код

int main() {
    wchar_t buf[2];
    int len = snwprintf(buf, sizeof(buf) / 2, L"world!");

    printf("%d\n", len);
}


Должно вывести -1. Выводит, если огородить этот пример от мира сего.

Просто инклюдим boost::system(он имеет какие-то статические объекты).
Код

#include <boost/system/system_error.hpp>


Этот невинный пример начинает требовать 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
Код

/* __attribute__((__format__ (gnu_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3)
int snwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, ...)
{
  register int __retval;
  __builtin_va_list __local_argv; __builtin_va_start( __local_argv, __format );
  __retval = __mingw_vsnwprintf( __stream, __n, __format, __local_argv );
  __builtin_va_end( __local_argv );
  return __retval;
}


С бустотой оно юзает это из wchar.h.

Без бустоты оно юзает это

Код

  int snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...)
  {
    int r;
    va_list argp;
    __builtin_va_start (argp, format);
    r = _vsnwprintf (s, n, format, argp);
    __builtin_va_end (argp);
    return r;
  }
  __mingw_ovr
  int __cdecl vsnwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, va_list arg)
  {
    return _vsnwprintf(s,n,format,arg);
  }


Из stdio.h. smile

Разгадка в __USE_MINGW_ANSI_STDIO, я не знаю, что его дефайнит.

Автор: boostcoder 4.7.2012, 12:15
такая мысль еще посетила... может быть boost.system предоставляет реализацию snwprintf() ? smile 

Автор: Randajad 4.7.2012, 12:16
Когда пофиксится моя бага с форматом строк в принтфе?


Цитата

Цитата

s — вывод строки с нулевым завершающим байтом; если модификатор длины — l, выводится строка wchar_t*. В Windows значения типа s зависят от типа используемых функций. Если используется семейство printf функций, то s обозначает строку char*. Если используется семейство wprintf функций, то s обозначает строку wchar_t*.
S — то же самое что и s с модификатором длины l; В Windows значения типа S зависит от типа используемых функций. Если используется семейство printf функций, то S обозначает строку wchar_t*. Если используется семейство wprintf функций, то S обозначает строку char*.


© Педивикия.

Однако в реальности %S в wprintf все также обозначает wchar_t * строку, а %s - все так же обычную char *.
GCC 4.7.



Из-за этого код непереносим под вяндой с GCC на MSVC/ICC.

Добавлено через 30 секунд
Нет, я подебажил. Смотреть выше. smile

Автор: boostcoder 4.7.2012, 12:18
Цитата(Randajad @  4.7.2012,  12:15 Найти цитируемый пост)
Разгадка в __USE_MINGW_ANSI_STDIO, я не знаю, что его дефайнит.

наверное 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
А на

Цитата

s — вывод строки с нулевым завершающим байтом; если модификатор длины — l, выводится строка wchar_t*. В Windows значения типа s зависят от типа используемых функций. Если используется семейство printf функций, то s обозначает строку char*. Если используется семейство wprintf функций, то s обозначает строку wchar_t*.
S — то же самое что и s с модификатором длины l; В Windows значения типа S зависит от типа используемых функций. Если используется семейство printf функций, то S обозначает строку wchar_t*. Если используется семейство wprintf функций, то S обозначает строку char*.


© Педивикия.

Однако в реальности %S в wprintf все также обозначает wchar_t * строку, а %s - все так же обычную char *.
GCC 4.7.


Забил? smile
Кстати, что насчет кланга? Вроде, говорил, что вопрос решается. smile
И вообще, добавляйся ваську! Если тебе интересна перспектива, что я буду тебя мучить. :3

Автор: boostcoder 10.7.2012, 22:30
Цитата(Randajad @  10.7.2012,  21:50 Найти цитируемый пост)
Забил?

а про это забыл, да.

Цитата(Randajad @  10.7.2012,  21:50 Найти цитируемый пост)
что насчет кланга?

локально - скрипты написаны. проект тоже создан. нужно собрать первые сборки, и выгрузить на страницу проекта. ну и вроде все.

Цитата(Randajad @  10.7.2012,  21:50 Найти цитируемый пост)
добавляйся ваську!

год как я не использую никаких IM программ, и от этого невероятно рад. нет, обратно не ворочусь smile

Цитата(Randajad @  10.7.2012,  21:50 Найти цитируемый пост)
Если тебе интересна перспектива, что я буду тебя мучить.

давай я тебе почту свою сообщу, если еще не знаешь.

Автор: 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.
В эту версию вошли следующие изменения:
  • Добавлен ключ --download, выполняющий только загрузку исходников, без сборки.
  • Добавлен ключ --no-multilib, информирующий систему сборки собрать одноцелевой MinGW.
  • Добавлен ключ --rev=N, использующийся для указания номера ревизии сборки.
  • Добавлен ключ --threads=model, использующийся для указания используемой сборкой модели потоков. Доступны: posix/win32. При использовании win32 модели, функционал из http://en.cppreference.com/w/cpp/thread окажется недоступным. (требуется WIN-программер способный дореализовать http://gcc.gnu.org/viewcvs/trunk/libgcc/gthr.h?view=markup)
  • Добавлен ключ --mingw-compress, использующийся для указания системе сборки сжать собранный MinGW в архив.
  • Добавлен ключ --srcs-compress, использующийся для указания системе сборки сжать исходники используемые для сборки MinGW в архив.
  • Добавлен патч исправляющий ошибку, возникающую при генерации компилятором кода эпилога развертывания стека и затирающую WIN32 LastError в этом скопе.
  • С этого момента, GNU make поставляемый в составе сборок производимых проектом MinGW-builds, собирается с поддержкой job-сервера.
  • MSYS доступный для загрузки со страницы проекта MinGW-builds обновлен. Добавлен модуль gettext для M4 макропроцессора. (https://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/ архивы с суффиксом 'rev1')
Благодарность коммитерам и тестерам за внесенные изменений и тесты.

Эта версия системы сборки 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
Цитата(boostcoder @  17.7.2012,  11:15 Найти цитируемый пост)
ну, мне кажется, что компилятор тут не при чем... и CRT`ишка то же, ибо она не реализует malloc/free. 

именно CRT и реализует malloc/free. Другое дело, что реализация может сводиться только к перенаправлению вызовов на функции WinAPI.
Цитата(Randajad @  17.7.2012,  00:40 Найти цитируемый пост)
у меня много new на мелких объектах, в итоге при некотором большом их числе вылетает bad_alloc
Думаю, ты просто забил всю таблицу распределения памяти (или что-то в этом духе). Тебе необходимо реализовать пул для своих объектов. Именно для этого у каждого STL-контейнера существует возможность замены аллокатора.

Автор: boostcoder 17.7.2012, 13:01
Цитата(bsa @  17.7.2012,  12:42 Найти цитируемый пост)
именно CRT и реализует malloc/free.

CRT от проекта mingw и mingw-w64 не реализуют.

Автор: bsa 18.7.2012, 13:43
Цитата(boostcoder @  17.7.2012,  14:01 Найти цитируемый пост)
CRT от проекта mingw и mingw-w64 не реализуют.

странно. я думал, проект Mingw использует msvcrt.dll в качестве CRT. 

Автор: boostcoder 18.7.2012, 14:11
Цитата(bsa @  18.7.2012,  13:43 Найти цитируемый пост)
я думал, проект Mingw использует msvcrt.dll

да, использует. но не реализует.

Автор: bsa 18.7.2012, 15:16
Цитата(boostcoder @  18.7.2012,  15:11 Найти цитируемый пост)
да, использует. но не реализует.

а где тогда определены символы _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
Цитата(bsa @  18.7.2012,  15:39 Найти цитируемый пост)
msvcrt.dll - это и есть CRT (C runtime library) для программ собранных mingw.

я бы тебе открыл другой секрет. но не хочу тебя позорить.

Автор: 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
Да вроде в том топике все есть, и программка и вообще. smile
Или надо что-то еще?

Код

int main() {
   boost::filesystem::exists("FFFFFFFUUUUUUUUUUU");
}


Без патча кидает. С патчем не кидает.

Скомпилированные экзешки надо?

Автор: boostcoder 19.7.2012, 10:59
так без буста же =)
с бустом я мог выслать им тот пример из темы =)

Добавлено @ 11:01
к примеру, первый баг который был связан с TLS, воспроизводится этим тестом.
Код

#include <windows.h>

struct C { ~C() {} };

int Test() {
    C t;
    return ::GetLastError();
}

int main(int, const char**) {
    ::SetLastError(2);

    return Test()-2;
}


вот нужен пример на подобии этого. но я не понимаю как его воспроизвести.

Автор: Randajad 19.7.2012, 12:11
А! О-кей. Сейчас сделаю.

Автор: boostcoder 19.7.2012, 12:16
Цитата(Randajad @  19.7.2012,  12:11 Найти цитируемый пост)
Сейчас сделаю.

да, плиз. а то я не очень понял как это воспроизвести. к тому же, на работает нет венды..

Автор: Randajad 19.7.2012, 12:53
Код

#include <windows.h>

struct S {
    ~S() {
        SetLastError(123);
    }
};

void foo() {
    S();
}

int main() {
    foo();
    return GetLastError();
}


На старом возвращает 0. На новом 123. Собирать без оптимизаций. smile

Автор: boostcoder 19.7.2012, 12:56
Randajad, спасибо!

Автор: Randajad 14.8.2012, 20:36
Ом-ном-ном!

Код

struct A {
    ~A() {
        throw 0;
    }
};

int main() {
    try {
        A a;
    } catch(...) {}
}


Делает крашик, что печально и не должно быть.

Оффтоп:
Студия на этот код порождает вареник:
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
Цитата

terminate called after throwing an instance of 'int'

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.


Автор: 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
Цитата(boostcoder @  26.8.2012,  13:42 Найти цитируемый пост)
1. как назвать исполняемый файл инсталлятора?
mingw-x.xx-install.exe
Цитата(boostcoder @  26.8.2012,  13:42 Найти цитируемый пост)
2. какое использовать лого?
А какие варианты? Думаю, официальное.
Цитата(boostcoder @  26.8.2012,  13:42 Найти цитируемый пост)
3. нужна ли возможность апдейтить установленную версию MinGW?
И да и нет. Лучше оставить возможность установки одновременно разных версий компилятора в разные каталоги (например: c:\mingw\4.7.1, c:\mingw\4.8.0-pre). Иногда бывает нужно.
Цитата(boostcoder @  26.8.2012,  13:42 Найти цитируемый пост)
1. указание версии.
2. указание типа сборки(snapshot/prerelease/release).
Противоречий тут случаем нет?

Лучше делать через msi пакет. Так будет возможность автоматического развертывания в домене.

Автор: boostcoder 26.8.2012, 16:56
Цитата(bsa @  26.8.2012,  15:59 Найти цитируемый пост)
mingw-x.xx-install.exe

а иксы тут что значат? версию? версию инсталлятора?

Цитата(bsa @  26.8.2012,  15:59 Найти цитируемый пост)
А какие варианты?

нет пока вариантов. думал, кто-то предложит.

Цитата(bsa @  26.8.2012,  15:59 Найти цитируемый пост)
Думаю, официальное.

эм...а это какое?

Цитата(bsa @  26.8.2012,  15:59 Найти цитируемый пост)
Лучше оставить возможность установки одновременно разных версий компилятора в разные каталоги

так это само собой.
я имел ввиду, при установке в каталог в который уже установлена 4.7.1 версии 4.7.2 или выше, чтоб происходила замена только тех файлов, которые были установлены предыдущей установкой. не удаляя файлы которые юзер сам добавил.
но пока писал, подумал, что даже при деинсталляции, инсталлятор ведь не удаляет не свои файлы. так что обновление это лишняя путаница.

Цитата(bsa @  26.8.2012,  15:59 Найти цитируемый пост)
Противоречий тут случаем нет?

вроде нет.

например:
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,  17:56 Найти цитируемый пост)
а иксы тут что значат? версию? версию инсталлятора?
зависит от того, что будет делаться. Если инсталлятор позволяет установить все возможные версии, то номер версии нужно убрать вообще.
Цитата(boostcoder @  26.8.2012,  17:56 Найти цитируемый пост)
эм...а это какое?
антилопа Гну

Автор: boostcoder 26.8.2012, 22:07
Цитата(bsa @  26.8.2012,  21:53 Найти цитируемый пост)
Если инсталлятор позволяет установить все возможные версии, то номер версии нужно убрать вообще.

да, на то он и онлайн-инсталлер.

Автор: 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 выйдут в массы smile

Автор: boostcoder 10.9.2012, 13:35
после нескольких дней тестов и переписки, тролли склоняются к тому, чтоб не использовать готовые сборки, а собирать самим используя мои скрипты.
но это еще не окончательное решение...

Автор: Randajad 16.9.2012, 10:28
Лучше бы тот же regex запилили, а то достало буст таскать.
К теме о троллях: конец немного предсказуем.

Кстати, когда стоит ждать новые снапшоты 4.8?

Автор: boostcoder 16.9.2012, 10:54
Цитата(Randajad @  16.9.2012,  10:28 Найти цитируемый пост)
К теме о троллях: конец немного предсказуем.

и какой он, по твоему?

Цитата(Randajad @  16.9.2012,  10:28 Найти цитируемый пост)
когда стоит ждать новые снапшоты 4.8?

на прошлых выходных я собрал 4.8-x86_64 с использованием SEH.
multilib сборки так и не собираются %)
тебя какие конкретно архитектуры интересуют?

Цитата(Randajad @  16.9.2012,  10:28 Найти цитируемый пост)
Лучше бы тот же regex запилили

ты пытался разобраться в чем проблема?
попробуй, может быть это что-то MinGW-specific? или в линукс тоже не работает?

зы
эти выходные я потрачу на переписывание скриптов MinGW-builds для добавления возможности собирать MinGW из windows/linux/osx.

зызы
следующие выходные планирую заняться онлайн инсталлятором.

Автор: borisbn 16.9.2012, 10:57
> может быть это что-то MinGW-specific? или в линукс тоже не работает?
Дык у тебя же на LWS не работает. Там же линукс, насколько я понял

Автор: boostcoder 16.9.2012, 11:02
Цитата(borisbn @  16.9.2012,  10:57 Найти цитируемый пост)
у тебя же на LWS не работает.

правда? значит склероз smile 

Автор: Randajad 16.9.2012, 11:15
Насчет разобраться: похоже, написаны оберки, которые ничего не делают. :(
Интересует x86. 64 бита пока не нужно, толку от него нет, я не пишу узкоспециализированные приложения, потребляющие > 2 гб рамы. :3

Автор: boostcoder 16.9.2012, 11:19
Цитата(Randajad @  16.9.2012,  11:15 Найти цитируемый пост)
Интересует x86.

сегодня попробую собрать.
но 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. smile

Автор: boostcoder 16.9.2012, 11:39
Цитата(Randajad @  16.9.2012,  11:15 Найти цитируемый пост)
похоже, написаны оберки, которые ничего не делают.

хм.. а три месяца назад были добавлены 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 секунд
Цитата(Randajad @  16.9.2012,  11:38 Найти цитируемый пост)
Это тот SEH, о котором я думаю?

да, но за исключением новых ключевых слов _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() ?

типа такого:
Код

EXCEPTION_DISPOSITION except_handler(struct _EXCEPTION_RECORD*, void*, struct _CONTEXT*, void*) {
}

int main() {
   __try1(except_handler) {
      *((int*)0) = 33;
   } __except1 {
   }
}


не понимаю, как тут юзается __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.
Код

#include <iostream>

using namespace std;

int main() {
    cout << "Hello world!" << endl;
    return 0;
}



Цитата

g++ -s -Os main.cpp

Получилось 540 кило. Пробовал -flto, то же самое.
Они никогда это не поправят, да? Порой из-за раздувательства кода GCC хочется его выкинуть. А альтернативы с C++11 нету.

Автор: boostcoder 23.9.2012, 13:02
Цитата(Randajad @  23.9.2012,  12:56 Найти цитируемый пост)
Получилось 540 кило.

это нормально...

Цитата(Randajad @  23.9.2012,  12:56 Найти цитируемый пост)
Они никогда это не поправят, да?

а что в этом случае нужно править? подскажи, может быть получится нам двоим пофиксить.

дело в том, что тот размер который ты видишь, это начальный размер включающий все необходимое. далее, при написании большего объема кода при использованием STL, объем будет расти очень медленно.

Автор: kemiisto 23.9.2012, 13:04
Цитата(Randajad @  23.9.2012,  11:56 Найти цитируемый пост)
А альтернативы с C++11 нету. 

http://clang.llvm.org/cxx_status.html чем не альтернатива?

Автор: Randajad 23.9.2012, 13:10
Ни одного билда под вянду нету. Пробовал сам собирать - остались не лучшие впечатления.

Автор: boostcoder 23.9.2012, 13:13
Цитата(kemiisto @  23.9.2012,  13:04 Найти цитируемый пост)
Clang чем не альтернатива?

у него нет своего ассемблера и линкера. а использовать их из 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, которые раздувают код.

Код

#include <istream>

namespace std
{
  static ios_base::Init __ioinit;
} // namespace


Это используется для инициализации 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 секунд
Цитата(Randajad @  23.9.2012,  13:23 Найти цитируемый пост)
static ios_base::Init __ioinit;

хотя, это говорит об обратном.
запутался smile

Добавлено через 10 минут и 40 секунд
Цитата(Randajad @  23.9.2012,  13:23 Найти цитируемый пост)
static ios_base::Init __ioinit;

если закомментить эту строку, размер 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:37 Найти цитируемый пост)
Комментим - уменьшается.

на сколько?

Автор: Randajad 23.9.2012, 13:44
До 33 уменьшается.
Код из одной строки int main() {} со стаческой линковкой CRT столько и весит. То есть, полностью уменьшается.

Автор: boostcoder 23.9.2012, 13:47
ты что, статически линкуешь свой хелловорд?
у меня, при динамической линковке,  размер получился 34304 байт.

Добавлено через 47 секунд
Цитата(Randajad @  23.9.2012,  13:44 Найти цитируемый пост)
До 33 уменьшается.
Код из одной строки int main() {} со стаческой линковкой CRT столько и весит. То есть, полностью уменьшается. 

так значит причина именно в нем.

решить можно. сейчас..

Добавлено через 4 минуты и 14 секунд
Цитата(boostcoder @  23.9.2012,  13:47 Найти цитируемый пост)
решить можно. сейчас.. 

нет, я запутался.
решить можно было бы, если бы эта проблема была при динамической линковке.

Добавлено через 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
Или мсвц/ицц. smile
Я не уточнил: 95 кило это cout << "halo";

Автор: Randajad 29.9.2012, 12:34
А это, может стоит попробовать стандартную библиотеку собрать с -flto?

Автор: boostcoder 29.9.2012, 12:36
попробую. вообще, попробую весь mingw собрать с lto.

Автор: Randajad 6.10.2012, 15:51
Насяльника! Про баг напоминаю:
user posted image

Автор: 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 была и никуда не пропадает. smile Ребут спасает.

Хочу сборку 4.8. :(

Автор: Randajad 7.10.2012, 11:33
Последний 32 битный 4.7.2 с threadmodel=win32 не имеет std::thread.

Там в <thread> есть такой #if:
Код

#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)


_GLIBCXX_HAS_GTHREADS не задефайнен. Хочу потоки!

Автор: boostcoder 7.10.2012, 12:18
Цитата(Randajad @  7.10.2012,  11:33 Найти цитируемый пост)
Последний 32 битный 4.7.2 с threadmodel=win32 не имеет std::thread.

это и есть то ограничение, которое связанно с недореализацией win32 threads бэкэнда.
но у тебя есть возможность исправить ситуацию.

Автор: boostcoder 7.10.2012, 12:38
Цитата(Randajad @  7.10.2012,  08:39 Найти цитируемый пост)
Ребут спасает.

т.е. после ребута, диск D уже не просит?
на твоем компе сейчас нет диска D?

Добавлено через 4 минуты и 52 секунды
Randajad
Цитата(Randajad @  7.10.2012,  08:39 Найти цитируемый пост)
http://forum.vingrad.ru/forum/topic-345601...l#st_105_view_0
Вот тут про диск D, ближе к концу.
Проблема с диском D была и никуда не пропадает.  Ребут спасает.

прочти последний пост в 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, и почему перестает его требовать после перезагрузки smile 
впредь, постараюсь не забыть производить сборки на 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 последний. Надыбал инструкцию, все сделал по ней.
Пишу:

Цитата

$ ./build gcc-trunk --threads=posix x32


Получаю:
Цитата

host toolchains is not installed. you wish to install (y/n)?: y
-> x32 toolchain
---> downloaded
--> unpack... error!
uncompress error. terminate.
host toolchain install error. terminate.


Смотрю файлы - архивы по 20 кило из-за кривых ссылок, видимо. О-кей, скачал вручную, подсунул, он их распаковал.
Пищу опять, получаю:
Цитата

$ ./build gcc-trunk --threads=posix x32
-> start building MinGW-gcc-trunk-multilib-x32-sjlj
-> libiconv-x32-pre
-> libiconv-x32
---> downloaded
---> unpacked
---> configured
---> built
---> installed
-> libiconv-x32-post
-> libiconv-x64-pre
-> libiconv-x64
---> downloaded
---> unpacked
--> configure... error!


Смотрю лог:
Цитата

checking for a BSD-compatible install... /bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make sets $(MAKE)... (cached) yes
checking for i686-w64-mingw32-gcc... no
checking for gcc... gcc
checking whether the C compiler works... no
configure: error: in `/home/Admin/mingw-gcc-trunk-sjlj-build-x32/libiconv-x64':
configure: error: C compiler cannot create executables
See `config.log' for more details


Зачем оно стало мне устанавливать x64 версии?
Скрипты работают в каких-то тепличных условиях, да?

Автор: boostcoder 14.10.2012, 15:16
Цитата(Randajad @  14.10.2012,  15:07 Найти цитируемый пост)
Если Магомед не идет к горе, то гора идет к Магомеду...

сорри. все выходные работаю над добавлением поддержки linux и osx.

Цитата(Randajad @  14.10.2012,  15:07 Найти цитируемый пост)
--> unpack... error!
uncompress error. terminate.
host toolchain install error. terminate.

в этой версии mingw-builds ссылки на архивы были для прежнего дерева файлов.
недавно дерево файлов изменилось, и ссылки стали невалидны.
последние версии скриптов живут https://github.com/niXman/mingw-builds. на sf.net заливаю только релизы.

Цитата(Randajad @  14.10.2012,  15:07 Найти цитируемый пост)
-> libiconv-x64-pre
-> libiconv-x64
---> downloaded
---> unpacked
--> configure... error!

если ты помнишь, сборки от mingw-builds по умолчанию мультитаргетные. отсюда и две версии хостового тулчейна.
я так понял, у тебя 32ух битная ОСь?
если хочешь собрать 32ух битный мингв, добавь опцию '--no-multilib'.
т.е. в итоге должно получится:
Цитата

$ ./build gcc-trunk x32 --no-multilib

и глянь доку, ее там совсем чуть-чуть ;)

'--threads=posix' кстати, установлен по умолчанию. (ах да, в той версии доки об этом не написано. исправлено в разрабатываемой версии.)

Автор: Randajad 14.10.2012, 15:20
Окай.
У меня ось 64 бита. Но я хочу 32 битный mingw.
Буду пробовать, спасибо.

Автор: boostcoder 14.10.2012, 15:23
Цитата(Randajad @  14.10.2012,  15:20 Найти цитируемый пост)
У меня ось 64 бита.

покажи тогда config.log

Добавлено через 8 минут и 35 секунд
и да, '--use-lto' не используй. наткнешься на ошибку линковки cc1plus.exe.
хотя, можешь попробовать)

Автор: Randajad 14.10.2012, 20:07
Не буду. Вряд-ли GCC соберется с LTO и без ошибок.

Всплыла ощибка при сборке binutils.
Цитата

../../../mingw-sources/binutils-2.22.90/binutils/stabs.c: In function 'parse_stab_type':
../../../mingw-sources/binutils-2.22.90/binutils/stabs.c:2797:57: error: 'physname' may be used uninitialized in this function [-Werror=maybe-uninitialized]
../../../mingw-sources/binutils-2.22.90/binutils/stabs.c:2596:16: note: 'physname' was declared here
cc1.exe: all warnings being treated as errors
make[4]: *** [stabs.o] Error 1


Исправил в сурсах. Хотелось бы, чтобы ключик -Werror убрался из конфига.

Потом в самом конце ошибка, я так и не понял, какая:
Цитата

-> make_cvs
--> download... done
--> patching...done
--> execute commands...error!


И оно мне открыло:
Цитата

Copying file ABOUT-NLS
Copying file config/config.rpath
Copying file config/codeset.m4
Copying file config/gettext.m4
Copying file config/glibc21.m4
Copying file config/iconv.m4
Copying file config/intdiv0.m4
Copying file config/intmax.m4
Copying file config/inttypes-pri.m4
Copying file config/inttypes.m4
Copying file config/inttypes_h.m4
Copying file config/isc-posix.m4
Copying file config/lcmessage.m4
Copying file config/lib-ld.m4
Copying file config/lib-link.m4
Copying file config/lib-prefix.m4
Copying file config/longdouble.m4
Copying file config/longlong.m4
Copying file config/nls.m4
Copying file config/po.m4
Copying file config/printf-posix.m4
Copying file config/progtest.m4
Copying file config/signed.m4
Copying file config/size_max.m4
Copying file config/stdint_h.m4
Copying file config/uintmax_t.m4
Copying file config/ulonglong.m4
Copying file config/wchar_t.m4
Copying file config/wint_t.m4
Copying file config/xsize.m4
Copying file config/mkinstalldirs
Copying file po/Makefile.in.in
Copying file po/Makevars.template
Copying file po/Rules-quot
Copying file po/boldquot.sed
Copying file po/[email protected]
Copying file po/[email protected]
Copying file po/insert-header.sin
Copying file po/quot.sed
Copying file po/remove-potcdate.sin
aclocal: warning: autoconf input should be named 'configure.ac', not 'configure.in'
automake: warning: autoconf input should be named 'configure.ac', not 'configure.in'
configure.in:78: installing 'config/compile'
configure.in:42: installing 'config/config.guess'
configure.in:42: installing 'config/config.sub'
configure.in:30: installing 'config/install-sh'
configure.in:30: installing 'config/missing'
automake: warning: autoconf input should be named 'configure.ac', not 'configure.in'
Makefile.am: installing 'config/depcomp'
doc/Makefile.am:21: installing 'config/mdate-sh'
doc/Makefile.am:21: installing 'config/texinfo.tex'


Автор: boostcoder 14.10.2012, 20:15
Цитата(Randajad @  14.10.2012,  20:07 Найти цитируемый пост)
Всплыла ощибка при сборке binutils.

хм.. я сегодня собирал 4.6.3 и 4.7.2 в нескольких вариантах, и этой ошибки небыло...

Цитата(Randajad @  14.10.2012,  20:07 Найти цитируемый пост)
Хотелось бы, чтобы ключик -Werror убрался из конфига.

в скриптах этот ключик не используется.
добавь в правило binutils ключик '--disable-werror'.
scripts/binutils.sh после 70ой строки.

Цитата(Randajad @  14.10.2012,  20:07 Найти цитируемый пост)
aclocal: warning: autoconf input should be named 'configure.ac', not 'configure.in'
automake: warning: autoconf input should be named 'configure.ac', not 'configure.in'
configure.in:78: installing 'config/compile'
configure.in:42: installing 'config/config.guess'
configure.in:42: installing 'config/config.sub'
configure.in:30: installing 'config/install-sh'
configure.in:30: installing 'config/missing'
automake: warning: autoconf input should be named 'configure.ac', not 'configure.in'

какая-то крень с версиями 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
Цитата(Randajad @  14.10.2012,  20:16 Найти цитируемый пост)
Отсюда.
https://sourceforge.net/projects/mingwbuild...v4.zip/download

ты ничего не путаешь?
покажи вывод следующих команд:
>$ aclocal --version
>$ automake --version
>$ autoconf --version

Цитата(Randajad @  14.10.2012,  20:16 Найти цитируемый пост)
Лучше бы ты добавил.

о чем речь?

Автор: Randajad 15.10.2012, 05:45
Цитата

$ aclocal --version
aclocal (GNU automake) 1.12.4

$ automake --version
automake (GNU automake) 1.12.4

$ autoconf --version
autoconf (GNU Autoconf) 2.69


Речь о флажке `--disable-werror'.

Добавлено через 1 минуту и 21 секунду
Вот у меня на рабочем столе: msys+7za+wget+svn+git+mercurial+cvs-rev4.
Я ничего не путаю. :(

Автор: Randajad 15.10.2012, 06:20
С ошибкой насчет 64 версии либ, похоже, разобрался. Это из-за моих ключиков было. smile

Автор: boostcoder 15.10.2012, 08:58
Цитата(Randajad @  15.10.2012,  05:45 Найти цитируемый пост)
$ aclocal --version
aclocal (GNU automake) 1.12.4

$ automake --version
automake (GNU automake) 1.12.4

$ autoconf --version
autoconf (GNU Autoconf) 2.69

ах епс, ты же используешь скрипты 0.3, а они используют другую ревизию исходников make.

Автор: Randajad 15.10.2012, 16:51
Я скачал по твоей ссылке новые скрипты.
Problem still exists.

Цитата

../../../mingw-sources/binutils-2.22.90/binutils/stabs.c: In function 'parse_stab_type':
../../../mingw-sources/binutils-2.22.90/binutils/stabs.c:2797:57: error: 'physname' may be used uninitialized in this function [-Werror=maybe-uninitialized]
../../../mingw-sources/binutils-2.22.90/binutils/stabs.c:2596:16: note: 'physname' was declared here
cc1.exe: all warnings being treated as errors


Ну запили --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
Не собирается(мультилиб), похоже на багу в гцц транковском.

Цитата

../../../../../mingw-sources/gcc-trunk/libgcc/unwind-c.c: In function '__gcc_personality_seh0':
../../../../../mingw-sources/gcc-trunk/libgcc/unwind-c.c:242:14: error: '__gcc_personality_imp' undeclared (first use in this function)


А еще я посмотрел флаги, которые оно передает компилятору.

Цитата

-g -O2 -s -Os -pipe


Причем они дублируются по стопицот раз.
Откуда свои корни берет -g и -O2? Хочу выпилить. Совсем.


Автор: Randajad 16.10.2012, 05:35
Собралось x32 без мультилиб.
Причем на тестах застряло.

Цитата

mingw-builds/tests/lto_int.cpp:1:20: fatal error: ltoint.h: No such file or directory

Автор: boostcoder 16.10.2012, 08:53
Цитата(Randajad @  15.10.2012,  17:36 Найти цитируемый пост)
Предлагаю также сырцы брать отсюда:
ftp://gcc.gnu.org/pub/gcc/snapshots/LATEST-4.8
А не качать свном, ибо это слишком долго. 

оформи предложение https://github.com/niXman/mingw-builds/issues/new.

Добавлено через 6 минут и 33 секунды
Цитата(Randajad @  15.10.2012,  20:35 Найти цитируемый пост)
Не собирается(мультилиб), похоже на багу в гцц транковском.

с транком полный ахтунг. без рукоблудства, мультитаргет пока не собрать.

Цитата(Randajad @  15.10.2012,  20:35 Найти цитируемый пост)
-g -O2 -s -Os -pipe

-O2 и -pipe https://github.com/niXman/mingw-builds/blob/master/build#L42. остальные не мои.

Цитата(Randajad @  16.10.2012,  05:35 Найти цитируемый пост)
lto_int.cpp:1:20: fatal error: ltoint.h: No such file or directory

исправил.

Автор: Randajad 16.10.2012, 13:40
Эта-та я понял, что - твои.
Надо поискать откуда оно свои корни берет и выпилить.

А тут предложение оформить нельзя? :С
И что насчет --disable-werror?

Автор: boostcoder 16.10.2012, 16:28
Цитата(Randajad @  16.10.2012,  13:40 Найти цитируемый пост)
тут предложение оформить нельзя?

я забуду.

Цитата(Randajad @  16.10.2012,  13:40 Найти цитируемый пост)
что насчет --disable-werror?

за год существования проекта, небыло необходимости в этой опции.
оформи предложение. а лучше, внеси изменения и пришли pull request.

Автор: Randajad 18.10.2012, 17:26
binutils НЕ собирается без --disable-werror.
Я не знаю, почему у тебя все так хорошо, а у меня искаропки не работает. Видимо, магия.

Может, мне сделать свои скрипты, документировать их, собрать все версии GCC, а потом прислать тебе? :С

Автор: boostcoder 18.10.2012, 17:32
Цитата(Randajad @  18.10.2012,  17:26 Найти цитируемый пост)
Я не знаю, почему у тебя все так хорошо, а у меня искаропки не работает. Видимо, магия.

не я один собираю с использованием своих скриптов. проблемы встречаются разные, но ни у кого не случалось так, чтоб не собирался 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
Цитата(Randajad @  18.10.2012,  18:28 Найти цитируемый пост)
варнинг о том, что переменная не инициализирована.

варнинг о том, что переменная не инициализирована, и варнинг о том, что переменная может использоваться неинициализированной - разные варнинги. второй свойственен 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 минуты
Цитата(alexx83 @  25.10.2012,  17:42 Найти цитируемый пост)
mingw-builds будет поставляться с полноценным Python-2.7.3

осталось только проверить, будет ли gdb работать с python-3.3.
если да, то готовься к сборке оного smile 

Автор: Randajad 26.10.2012, 10:14
Что значит полноценный?
Теперь вместе с MinGW будет идти интерпретатор питона в придачу?

Автор: boostcoder 26.10.2012, 10:15
Randajad, не за что.

Автор: borisbn 26.10.2012, 10:18
Цитата(Randajad @  26.10.2012,  10:14 Найти цитируемый пост)
Простите, а зачем этот ваш питон нужен? 

 smile 
Я только собрался поблагодарить за питон... Довольно часть им пользуюсь. И Вам советую. Вот только не очень понял, а чем сборка от MSVC хуже ?
boostcoder, я не забыл о просьбе. работаю и даже подключил одного профи - QA-рщика

Автор: Randajad 26.10.2012, 10:21
Питон упорот.
Я C++ программист и я не хочу таскать с собой интерпретатор того, что мне нафиг не сдалось.

Автор: boostcoder 26.10.2012, 10:30
Цитата(borisbn @  26.10.2012,  10:18 Найти цитируемый пост)
а чем сборка от MSVC хуже ?

не хуже. не раз мне было высказано мнение о том, что юзеры не доверяют предкомпилированым бинарникам.
так же, дважды мне писали(пендосы) о том, что им приходится удалять gdb и python из моих сборок прежде чем использовать мингв, по той же самой причине.

Цитата
borisbn, я не забыл о просьбе. работаю и даже подключил одного профи - QA-рщика

спасибо. я весь в ожидании.


Добавлено через 8 минут и 20 секунд
Цитата(Randajad @  26.10.2012,  10:21 Найти цитируемый пост)
Я C++ программист и я не хочу таскать с собой интерпретатор того, что мне нафиг не сдалось.

ты до сих пор это делал, и ничего не произошло.
пайтон используется gdb для pretty-printers.

Автор: Randajad 28.10.2012, 15:42
Странные пендосы.
Что мешает тебе в свои сборки добавлять вредоносный код? Тебе доверяют, а питону - нет...

Таскалась одна дллка. А тут будет полноценный интерпретатор(хоть и маленький, но он будет).
Может, засунем еще несколько компиляторов и интерпретаторов в сборку? Сильно она не потолстеет, а вот многие будут рады.
Пойдем дальше - начнем собирать коллекцию компиляторов и интерпретаторов в одном флаконе!

Автор: boostcoder 28.10.2012, 15:52
Цитата(Randajad @  28.10.2012,  15:42 Найти цитируемый пост)
Тебе доверяют, а питону - нет

дело в том, что доверяют не мне, а тому, что юзеры могут сами воспроизвести процесс сборки пайтона, и, таким образом, делают вывод о том, что мне незачем мошейничать..

Цитата(Randajad @  28.10.2012,  15:42 Найти цитируемый пост)
Таскалась одна дллка. А тут будет полноценный интерпретатор(хоть и маленький, но он будет).

сам интерпретатор весит что-то около 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) маленькая победа, надеюсь что не последняя smile 

хочу выразить благодарность от лица авторов проекта(я и 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
Цитата(borisbn @  23.3.2013,  12:09 Найти цитируемый пост)
они regex'ы починили?

нет. это будет сделано в 4.9.0.

Цитата(borisbn @  23.3.2013,  12:09 Найти цитируемый пост)
Разреши поздравить: LWS стал официальным online компилятором на SO - http://stackoverflow.com/tags/c%2b%2b/info

да, я в курсе =)
спасибо smile
но это только начало ;)

Автор: 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
Цитата(bsa @  3.4.2013,  16:33 Найти цитируемый пост)
Сборка 4.8.0, кстати, глючная.

кто-бы сомневался. нулевые багфиксы всегда глючные, и кроме как для тестов, ни для чего не подходят ;)

Цитата(bsa @  3.4.2013,  16:33 Найти цитируемый пост)
пробовал собрать avr-gcc-4.7.2 и avr-gcc-4.8.0. В результате они вываливались с сообщением internal compiler error (4.7.2 при компиляции libgcc, 4.8.0 при компиляции avr-libc)

какая ревизия сборки 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
Цитата(bsa @  3.4.2013,  18:03 Найти цитируемый пост)
не совсем корректное полное именование тулсета. В частности, отсутствует nm с таким же префиксом, что и gcc. Т.е. надо конфигурировать указывая одинаковые --target, что для binutils, что для gcc.

ну...оно не у меня. имена не я задаю.

Цитата(bsa @  3.4.2013,  18:03 Найти цитируемый пост)
именование должно быть такое: mingw32-gcc, i686-pc-mingw32-gcc, mingw64-gcc...

не-не-не. для '*-w64-*' как в gcc, так и во многих других тулчейнах собираемых для вендус. '*-w64-*' дает конфигураторам тулчейнов понять, что используется API/CRT не mingw.org

можешь написать мне в ЛС инструкцию по сборке нужного тебе кросса? потыкаю на выходных.

Автор: bsa 4.4.2013, 11:48
boostcoder, нужный мне кросс классно собирается под линем за пол часа, в отличие от винды, где на это уходит пол ночи smile Поэтому, я решил, что уж лучше буду делать это под 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 @  3.4.2013,  20:08 Найти цитируемый пост)
можешь написать мне в ЛС инструкцию по сборке нужного тебе кросса?


Автор: 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
Цитата(boostcoder @  16.7.2013,  19:25 Найти цитируемый пост)
таким образом, проект MinGW-builds вливается в команду MinGW-w64, и перестает существовать. о точной дате прекращения поддержки/обновления MinGW-builds - я сообщу дополнительно.

свершилось!

Автор: 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
Модератор: Сообщение скрыто.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)