Форум программистов, компьютерный форум CyberForum.ru

Сборки MinGW(GCC-win32/win64) от niXman - C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 1004, средняя оценка - 4.94
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
30.07.2011, 22:48     Сборки MinGW(GCC-win32/win64) от niXman #1
с этого момента, буду производить тестовые/пререлизные/релизные сборки mingw.
файлы с пометкой snapshot и prerelease - не стабильные версии. в реальных проектах использовать не рекомендую. использую для тестирования новых фитчей.
файлы с пометкой release - стабильные, прошедшие тесты.
скачать можно тут.
скачать онлайн-инсталятор можно тут.
скачать msys2 можно тут

в скором времени начну формировать пакеты для разработчиков состоящие из компилятора(mingw), IDE(QtCreator/CodeBlock/Dev-C++/wxDev-cpp), и некоторого набора предкомпилированных библиотек(boost, Wx, Qt, OpenSsl, и еще каких-то.. понять бы что в спросе...). пакеты не будут требовать установки/настройки. распаковал - используй.

Не по теме:

старая ссылка тут.

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nenin
2 / 2 / 0
Регистрация: 03.12.2012
Сообщений: 59
30.12.2013, 01:49     Сборки MinGW(GCC-win32/win64) от niXman #361
Поковырял lto. Если всё делать правильно, то скорость выполнения может сильно возрастать (до 30%), но объем кода уменьшается незначительно. При этом скорость линковки падает очень сильно (как бы до скорости компиляции с теми же ключами). Такие дела.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16942 / 5347 / 329
Регистрация: 30.03.2009
Сообщений: 14,377
Записей в блоге: 26
30.12.2013, 11:03     Сборки MinGW(GCC-win32/win64) от niXman #362
Цитата Сообщение от nenin Посмотреть сообщение
Если всё делать правильно, то скорость выполнения может сильно возрастать (до 30%)
Такое, как правило, говорит о неправильном проектировании программы

Цитата Сообщение от nenin Посмотреть сообщение
При этом скорость линковки падает очень сильно
В процессе линковки запускается докомпиляция (с учётом межмодульных фич)
Nick Alte
Эксперт С++
1594 / 986 / 117
Регистрация: 27.09.2009
Сообщений: 1,902
Завершенные тесты: 1
30.12.2013, 12:53     Сборки MinGW(GCC-win32/win64) от niXman #363
Цитата Сообщение от nenin Посмотреть сообщение
но объем кода уменьшается незначительно
Что неудивительно на своём коде, который используется в объёме, близком или равном 100%. А вот стандартные библиотеки под ножницами lto - совсем другой коленкор. И дело тут даже не в объёме, хотя это тоже приятно, а в оптимизации стандартных функций и возможности задёшево освободиться от динамически линкуемой RT.
Впрочем, похоже, что lto-совместимая RT нам в ближайшем будущем не грозит, так что можно выдохнуть.
nenin
2 / 2 / 0
Регистрация: 03.12.2012
Сообщений: 59
30.12.2013, 13:20     Сборки MinGW(GCC-win32/win64) от niXman #364
Это я все не про lto (прелести которого я постиг ещё на pathscale), а про то, что lto не заменяет удаление неиспользуемых функций на стадии линковки, или делает это вяло.
На счет lto-фикации стандартных библиотек: я я перебилдил FLTK. fluid был 1.4М, стал 1.2М. Это библиотека классов, врядли стоит ждать большего от RT.
Nick Alte
Эксперт С++
1594 / 986 / 117
Регистрация: 27.09.2009
Сообщений: 1,902
Завершенные тесты: 1
30.12.2013, 14:12     Сборки MinGW(GCC-win32/win64) от niXman #365
Думаю, ждать как раз можно. Одно дело - библиотека, в которой должно всё присутствовать, потому что заранее неизвестно, что именно пригодится. Другое дело - конкретное приложение, из которого можно выкинуть всё неиспользуемое, пройдясь по графу достижимости и размахивая во все стороны топором -fwhole-program. Подходящим сравнением здесь было бы внедрение FLTK в приложение в виде исходных кодов с ключами -flto и -fwhole-program против построения со статической библиотекой.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16942 / 5347 / 329
Регистрация: 30.03.2009
Сообщений: 14,377
Записей в блоге: 26
30.12.2013, 14:16     Сборки MinGW(GCC-win32/win64) от niXman #366
Цитата Сообщение от Nick Alte Посмотреть сообщение
и размахивая во все стороны топором -fwhole-program
Топор обязателен, возможно, что nenin его не подавал. Без топора компилятор не сможет быть на 100% уверенным, что к функции нет какого-нибудь хитрого доступа типа через dlopen/dlsym или из ассемблерной части программы (которую компилятор не видит)
nenin
2 / 2 / 0
Регистрация: 03.12.2012
Сообщений: 59
30.12.2013, 14:52     Сборки MinGW(GCC-win32/win64) от niXman #367
Так fluid и fltk, грубо выражаясь, одним мейком деланы. -fwhole-program на fluid я сейчас накачу.

Добавлено через 30 минут
Разницы от -fwhole-program нету.
Nick Alte
Эксперт С++
1594 / 986 / 117
Регистрация: 27.09.2009
Сообщений: 1,902
Завершенные тесты: 1
30.12.2013, 16:13     Сборки MinGW(GCC-win32/win64) от niXman #368
Не могу прокомментировать, потому что с FLTK дела не имел и структуру сборки не представляю. Даже одним мейком можно сначала собирать статическую библиотеку, которая потом подключается к утилите или утилитам, как это часто делается.
Лично мне доводилось наблюдать разительное похудение небольшого проекта от -fwhole-program.
nenin
2 / 2 / 0
Регистрация: 03.12.2012
Сообщений: 59
30.12.2013, 16:19     Сборки MinGW(GCC-win32/win64) от niXman #369
Если всё делается на make с одними ключами- должно работать. Если статические библиотеки даже с согласованными ключами не обрабатываются нормально, то это несерьёзно.
Nick Alte
Эксперт С++
1594 / 986 / 117
Регистрация: 27.09.2009
Сообщений: 1,902
Завершенные тесты: 1
30.12.2013, 16:23     Сборки MinGW(GCC-win32/win64) от niXman #370
Статические библиотеки и не могут обрабатываться. flto предполагает другой, более "недоваренный" формат объектных файлов и выполнение оптимизаций уже на стадии связывания (по каковой причине и рекомендуется в этом режиме делать объектные файлы без оптимизаций, а флаги оптимизации передавать уже на стадии линковки). Обычные объектные файлы и статические библиотеки обрабатываются в обычном режиме.
nenin
2 / 2 / 0
Регистрация: 03.12.2012
Сообщений: 59
30.12.2013, 16:29     Сборки MinGW(GCC-win32/win64) от niXman #371
А в библиотеку их всунуть нельзя?

Добавлено через 53 секунды
К слову, если разным файлам нужны разные флаги, как их скормить на линковке?
Nick Alte
Эксперт С++
1594 / 986 / 117
Регистрация: 27.09.2009
Сообщений: 1,902
Завершенные тесты: 1
30.12.2013, 16:35     Сборки MinGW(GCC-win32/win64) от niXman #372
Насколько я понимаю, текущий формат библиотек, зародившийся задолго до появления LTO в нынешнем виде, этого не предусматривает. Сама идея lto и особенно whole-program подразумевает, что всё слепляется в однородный ком, который обрабатывается как единое целое. Если кому-то нужны разные настройки оптимизации для разных файлов, линковать придётся в обычном режиме.
nenin
2 / 2 / 0
Регистрация: 03.12.2012
Сообщений: 59
30.12.2013, 16:52     Сборки MinGW(GCC-win32/win64) от niXman #373
Ну, тогда толк с того может быть только на маленьких проектах.
Nick Alte
Эксперт С++
1594 / 986 / 117
Регистрация: 27.09.2009
Сообщений: 1,902
Завершенные тесты: 1
30.12.2013, 17:11     Сборки MinGW(GCC-win32/win64) от niXman #374
В текущем состоянии - да, так оно и есть. Разве что всё же специально заморачиваться со сборкой крупных библиотек из исходников. А когда настанет светлое будущее, в котором будет внедрена поддержка LTO в статических библиотеках, включая стандартные RT, тогда-то и потекут молочные реки в кисельных берегах...
nenin
2 / 2 / 0
Регистрация: 03.12.2012
Сообщений: 59
30.12.2013, 23:27     Сборки MinGW(GCC-win32/win64) от niXman #375
Похоже, что должно таки работать: http://gcc.gnu.org/ml/gcc-help/2011-12/msg00129.html
К слову, .a с lto опухают почти в 10 раз.
Nick Alte
Эксперт С++
1594 / 986 / 117
Регистрация: 27.09.2009
Сообщений: 1,902
Завершенные тесты: 1
31.12.2013, 10:37     Сборки MinGW(GCC-win32/win64) от niXman #376
Это интересно. Надо бы поглубже покопаться, а вдруг окончательная победа сил добра над силами разума ближе, чем кажется?
nenin
2 / 2 / 0
Регистрация: 03.12.2012
Сообщений: 59
31.12.2013, 16:12     Сборки MinGW(GCC-win32/win64) от niXman #377
Взял я амальгаму SQLite, сделал из неё .а и попробовал: вставил sqlite3_open_v2 и sqlite3_errmsg в хелуворда. Эффект такой:
хелуворд- 33.00 KB
хелуворд с lto -33.00 KB
обычный код - 724.00 KB
lto + lto-библиотека - 558.00 KB
lto с обычной библиотекой 724.50 KB

Добавлено через 23 минуты
и самое странно:
обычный билд с lto-библиотекой - 581.50 KB

Добавлено через 13 минут
теперь всё исправилось:
обычный код - 581.50 KB
Я сначала пустил библитеку без lto сбилженную под c2d, а lto- под 686.

Добавлено через 1 минуту
В целом lto на библиотеках, похоже, работает, но лишний код урезает слабо.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
17.01.2014, 20:58     Сборки MinGW(GCC-win32/win64) от niXman #378
А MSys больше не обновляется? Или я просто что то упустил?
nenin
2 / 2 / 0
Регистрация: 03.12.2012
Сообщений: 59
17.01.2014, 21:52     Сборки MinGW(GCC-win32/win64) от niXman #379
Объявляли же, 32 и 64
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2014, 22:39     Сборки MinGW(GCC-win32/win64) от niXman
Еще ссылки по теме:

Как создать немодальный диалог на Win64 API? C++ WinAPI
C++ Gcc без MinGW
Компиляция для win32 bit на win64 C++
C++ Builder Запуск программы на Win64
C++ Mingw-w64 MinGW TDM-GCC

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
17.01.2014, 22:39     Сборки MinGW(GCC-win32/win64) от niXman #380
А теперь прочитайте еще раз мой вопрос.
Yandex
Объявления
17.01.2014, 22:39     Сборки MinGW(GCC-win32/win64) от niXman
Ответ Создать тему

Метки
mingw, mingw-w64, nixman, Сборки
Опции темы

Текущее время: 06:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru