Сделал сборку Mingw-GCC-4.3.0 для виндов
От: 0xDEADBEEF Ниоткуда  
Дата: 14.03.08 18:30
Оценка: 108 (7)
...Как и обещал в свое время.
Взять можно здесь (10 мегов): http://dbxdeadbeef.googlepages.com/gcc-4.3.0.tar.bz2
Содержимое сборки:
— сам компилятор C/C++ 4.3.0
— отладчик GDB 6.7.50 с примитивным текстовым интерфейсом (TUI)
— ассемблер и линкер (binutils-2.18.50)
— документация на GCC и GDB в CHM-ах (английский)
— стандартные библиотеки — STL/OpenMP/pthread

Процедура установки:
— отсутствует Распаковывайте куда-нибудь и наслаждайтесь. Постарайтесь только не называть каталог установки GCC — будут проблемы.

Что там интересного:
— OpenMP и pthreads (флаг -fopenmp)
— реализована часть TR1 в C++ standard library. Подробнее здесь: http://gcc.gnu.org/onlinedocs/libstdc++/ext/tr1.html
— в STL добавлен "параллельный режим" для некоторых алгоритмов. Подробнее здесь: http://gcc.gnu.org/onlinedocs
— C++ поддерживает кое-что из C++0x. Cтатус здесь: http://gcc.gnu.org/gcc-4.3/cxx0x_status.html
--- variadic templates
--- decltype (но не auto!)
--- rvalue references
--- type traits, которые не могут быть реализованы без помощи компилятора

А теперь дисклеймеры:
— эта сборка предназначена для того "чтобы поиграться". Дело в том, что версии x.x.0 у GCC как правило весьма сырые
— я врядли смогу ответить на вопросы об ошибках компиляции. Если думаете что это баг — говорите о нем сюда: http://gcc.gnu.org/bugzilla/
— если будут проблемы с запуском — т.е. не найденные библиотеки, .h-файлы и прочая — это скорее всего моя вина — обращайтесь сюда.
__________
16.There is no cause so right that one cannot find a fool following it.
Re: Сделал сборку Mingw-GCC-4.3.0 для виндов
От: remark Россия http://www.1024cores.net/
Дата: 14.03.08 18:45
Оценка: 12 (3)
Здравствуйте, 0xDEADBEEF, Вы писали:

DEA>- в STL добавлен "параллельный режим" для некоторых алгоритмов. Подробнее здесь: http://gcc.gnu.org/onlinedocs


http://gcc.gnu.org/onlinedocs/libstdc++/ext/parallel_mode.html


1024cores — all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re: Сделал сборку Mingw-GCC-4.3.0 для виндов
От: Vain Россия google.ru
Дата: 15.03.08 00:21
Оценка:
Здравствуйте, 0xDEADBEEF, Вы писали:

DEA>...Как и обещал в свое время.

Не подскажите заодно, как утянуть с svn://gcc.gnu.org какой-нить тег без ".svn" директорий, а то оно весит уже очень много и не нужно?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[2]: Сделал сборку Mingw-GCC-4.3.0 для виндов
От: skeptik_  
Дата: 15.03.08 04:11
Оценка: 6 (1)
Здравствуйте, Vain, Вы писали:

V>Здравствуйте, 0xDEADBEEF, Вы писали:


DEA>>...Как и обещал в свое время.

V>Не подскажите заодно, как утянуть с svn://gcc.gnu.org какой-нить тег без ".svn" директорий, а то оно весит уже очень много и не нужно?

svn export [-r rev] [--ignore-externals] URL Export_PATH
Re: Сделал сборку Mingw-GCC-4.3.0 для виндов
От: _nn_ www.nemerleweb.com
Дата: 15.03.08 12:33
Оценка:
Здравствуйте, 0xDEADBEEF, Вы писали:

Хотелось бы знать если есть там поддержка SEH.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[2]: Сделал сборку Mingw-GCC-4.3.0 для виндов
От: 0xDEADBEEF Ниоткуда  
Дата: 15.03.08 15:15
Оценка:
Здравствуйте, _nn_, Вы писали:

__>Хотелось бы знать если есть там поддержка SEH.

Нету. Т.к алгоритмы использующиеся в SEH она запатентованы Борландом.
Данная сборка G++ использует ту же самую модель исключений, что и на Линухе — DWARF Exceptions.
__________
16.There is no cause so right that one cannot find a fool following it.
Re[3]: Сделал сборку Mingw-GCC-4.3.0 для виндов
От: Tonal- Россия www.promsoft.ru
Дата: 16.03.08 06:21
Оценка:
Здравствуйте, 0xDEADBEEF, Вы писали:
__>>Хотелось бы знать если есть там поддержка SEH.
DEA>Нету. Т.к алгоритмы использующиеся в SEH она запатентованы Борландом.
DEA>Данная сборка G++ использует ту же самую модель исключений, что и на Линухе — DWARF Exceptions.
А поддержка MS specific __try/__except или _set_se_translator?
Сейчас на мингву не получается полностью перевести некоторые вещи как раз из за отсутствия поддержки этих вещей.

К тому же, если я правильно понял 19.4 System error support, в любом случае придёться что-то подобное организовывать.
... << RSDN@Home 1.2.0 alpha 3 rev. 896>>
Re[4]: Сделал сборку Mingw-GCC-4.3.0 для виндов
От: 0xDEADBEEF Ниоткуда  
Дата: 17.03.08 12:13
Оценка: 12 (1)
Здравствуйте, Tonal-, Вы писали:

DEA>>Нету. Т.к алгоритмы использующиеся в SEH она запатентованы Борландом.

DEA>>Данная сборка G++ использует ту же самую модель исключений, что и на Линухе — DWARF Exceptions.
T>А поддержка MS specific __try/__except или _set_se_translator?
Гуголь тебе в помощь. Попробуй поискать "GCC SEH" или "Gygwin Mingw SEH". Конечно, полной функциональности __try/__catch ты не получишь, но какой-то костыль из макросов и inline assembler-а вполне реально собрать.

T>Сейчас на мингву не получается полностью перевести некоторые вещи как раз из за отсутствия поддержки этих вещей.

А начерта тебе мингва, если есть "родной" (для винды) бесплатный MSVC-Express? На мингву имхо, имеет смысл переползать только для последующего переползания на юниха. А там SEH отсутствует. Ерго, надо избавляться от него.

T>К тому же, если я правильно понял 19.4 System error support, в любом случае придёться что-то подобное организовывать.

Не-а. Не придется. Там все завязано на коды ошибок и SEH туда никаким боком не лезет.

ЗЫ. Материалы по теме:
http://gcc.gnu.org/ml/gcc/2005-05/msg00511.html — Почему сеха нету и не будет.
http://cygwin.com/ml/cygwin/2002-08/msg01598.html — "костыль" для сеха
— где-то в недрах ReactOS некоторое время назад ходил патч для C (не C++) с полной поддержкой SEH. Но я что-то не могу его найти.
__________
16.There is no cause so right that one cannot find a fool following it.
Re[5]: Сделал сборку Mingw-GCC-4.3.0 для виндов
От: 0xDEADBEEF Ниоткуда  
Дата: 17.03.08 12:19
Оценка: 12 (1)
Здравствуйте, 0xDEADBEEF, Вы писали:

DEA>- где-то в недрах ReactOS некоторое время назад ходил патч для C (не C++) с полной поддержкой SEH. Но я что-то не могу его найти.

Нашел в своей файловой свалке. Брать здесь: http://files.rsdn.ru/33732/gcc-3.4.0-seh.zip
__________
16.There is no cause so right that one cannot find a fool following it.
Re[5]: Сделал сборку Mingw-GCC-4.3.0 для виндов
От: Tonal- Россия www.promsoft.ru
Дата: 17.03.08 15:54
Оценка:
Здравствуйте, 0xDEADBEEF, Вы писали:
T>>К тому же, если я правильно понял 19.4 System error support, в любом случае придёться что-то подобное организовывать.
DEA>Не-а. Не придется. Там все завязано на коды ошибок и SEH туда никаким боком не лезет.
Лезет. Как-то же нужно будет этот код вытащить из seh-ного исключения чтобы выкинуть system_error
Стало быть нужен будет механизм перехвата SEH-а.

DEA>ЗЫ. Материалы по теме:

DEA>- http://gcc.gnu.org/ml/gcc/2005-05/msg00511.html — Почему сеха нету и не будет.
DEA>- http://cygwin.com/ml/cygwin/2002-08/msg01598.html — "костыль" для сеха
DEA>- где-то в недрах ReactOS некоторое время назад ходил патч для C (не C++) с полной поддержкой SEH. Но я что-то не могу его найти.
Спасибо, поизучаю.
... << RSDN@Home 1.2.0 alpha 3 rev. 929>>
Re[6]: Сделал сборку Mingw-GCC-4.3.0 для виндов
От: 0xDEADBEEF Ниоткуда  
Дата: 17.03.08 20:53
Оценка:
Здравствуйте, Tonal-, Вы писали:

DEA>>Не-а. Не придется. Там все завязано на коды ошибок и SEH туда никаким боком не лезет.

T>Лезет. Как-то же нужно будет этот код вытащить из seh-ного исключения чтобы выкинуть system_error
Согласно изложенного в http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2521.pdf (Последний working draft)
таки не следует. Там определена иерархия исключений с кодами ошибок и не более того. Все это можно легко получить из errno/strerror (posix) и GetLastError/FormatMessage (Win23). На злобные вещи типа SIGSEGV ака "Access Violation" стандарт вроде бы не замахивается и это есть хорошо.
Так что, если можно, поподробнее плз... Мне действительно любопытно...
__________
16.There is no cause so right that one cannot find a fool following it.
Re: Сделал сборку Mingw-GCC-4.3.0 для виндов
От: Lorenzo_LAMAS  
Дата: 19.03.08 12:41
Оценка:
Слушай, а может здесь что подскажешь?

http://rsdn.ru/forum/message/2880833.1.aspx
Автор: Lorenzo_LAMAS
Дата: 19.03.08
Of course, the code must be complete enough to compile and link.
Re[7]: Сделал сборку Mingw-GCC-4.3.0 для виндов
От: Tonal- Россия www.promsoft.ru
Дата: 19.03.08 15:01
Оценка:
Здравствуйте, 0xDEADBEEF, Вы писали:
DEA>>>Не-а. Не придется. Там все завязано на коды ошибок и SEH туда никаким боком не лезет.
T>>Лезет. Как-то же нужно будет этот код вытащить из seh-ного исключения чтобы выкинуть system_error
DEA>Согласно изложенного в http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2521.pdf (Последний working draft)
DEA>таки не следует. Там определена иерархия исключений с кодами ошибок и не более того. Все это можно легко получить из errno/strerror (posix) и GetLastError/FormatMessage (Win23). На злобные вещи типа SIGSEGV ака "Access Violation" стандарт вроде бы не замахивается и это есть хорошо.
DEA>Так что, если можно, поподробнее плз... Мне действительно любопытно...
Просмотрел стандарт — похоже действительно прогнал.
Подвела сноска из пункта 19.4.5.1:

If an error represents an out-of-memory condition, implementations are encouraged to throw an exception object
of type bad_alloc 18.5.2.1 rather than system_error.

Out-of-memory — это сигнал в posix и seh-исключение в винде.
Ход мысли такой — раз специально оговаривают, что исключение нехватки памяти надо обрабатывать особым образом, без генерации system_error, то остальные системные исключения должны system_error генерировать.
А если по системным исключениям system_error не генерируется, то какой смысл в этой сноске?
... << RSDN@Home 1.2.0 alpha 3 rev. 956>>
Re[3]: Сделал сборку Mingw-GCC-4.3.0 для виндов
От: Аноним  
Дата: 19.03.08 16:48
Оценка:
Здравствуйте, 0xDEADBEEF, Вы писали:

DEA>Здравствуйте, _nn_, Вы писали:


__>>Хотелось бы знать если есть там поддержка SEH.

DEA>Нету. Т.к алгоритмы использующиеся в SEH она запатентованы Борландом.
DEA>Данная сборка G++ использует ту же самую модель исключений, что и на Линухе — DWARF Exceptions.
Re[3]: Сделал сборку Mingw-GCC-4.3.0 для виндов
От: Michael7 Россия  
Дата: 19.03.08 20:46
Оценка:
Здравствуйте, 0xDEADBEEF, Вы писали:

DEA>Здравствуйте, _nn_, Вы писали:


__>>Хотелось бы знать если есть там поддержка SEH.

DEA>Нету. Т.к алгоритмы использующиеся в SEH она запатентованы Борландом.

Может меня сильно плющит, но по-моему, эти алгоритмы использовались еще в PL/1, что это борланд заптентовала?
Re[4]: Сделал сборку Mingw-GCC-4.3.0 для виндов
От: 0xDEADBEEF Ниоткуда  
Дата: 20.03.08 10:44
Оценка:
Здравствуйте, Michael7, Вы писали:

DEA>>Нету. Т.к алгоритмы использующиеся в SEH она запатентованы Борландом.

M>Может меня сильно плющит, но по-моему, эти алгоритмы использовались еще в PL/1, что это борланд заптентовала?
Это вопросы не ко мне. А патент на самом деле существует — можно посмотреть здесь.
И закончится он ой как нескоро — в 2014-м.
__________
16.There is no cause so right that one cannot find a fool following it.
Re[4]: Сделал сборку Mingw-GCC-4.3.0 для виндов
От: remark Россия http://www.1024cores.net/
Дата: 20.03.08 11:04
Оценка:
Здравствуйте, Michael7, Вы писали:

M>Здравствуйте, 0xDEADBEEF, Вы писали:


DEA>>Здравствуйте, _nn_, Вы писали:


__>>>Хотелось бы знать если есть там поддержка SEH.

DEA>>Нету. Т.к алгоритмы использующиеся в SEH она запатентованы Борландом.

M>Может меня сильно плющит, но по-моему, эти алгоритмы использовались еще в PL/1, что это борланд заптентовала?


Это вообще тенденция последнего времени — всё больше и больше известных алгоритмов из public domain патентуется. К сожалению это не вопрос здравого смысла, это вопрос крутизны твоих юристов
Хорошо, что мы в России и можем плевать с высокой колокольни на американские патенты и патентное законодательство


1024cores &mdash; all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re: Сделал сборку Mingw-GCC-4.3.0 для виндов
От: urquan  
Дата: 20.03.08 13:54
Оценка:
Здравствуйте, 0xDEADBEEF, Вы писали:

DEA>- в STL добавлен "параллельный режим" для некоторых алгоритмов. Подробнее здесь: http://gcc.gnu.org/onlinedocs

DEA>- C++ поддерживает кое-что из C++0x. Cтатус здесь: http://gcc.gnu.org/gcc-4.3/cxx0x_status.html

Объясните пожалуйста на пальцах, как они сделали "параллельный режим", например, для for_each. Ведь в стандарте написано:

template<class InputIterator, class Function>
Function for_each(InputIterator first, InputIterator last, Function f);

1 Effects: Applies f to the result of dereferencing every iterator in the range [first,last), starting from first
and proceeding to last — 1
Re: Сделал сборку Mingw-GCC-4.3.0 для виндов
От: 8bit  
Дата: 20.03.08 14:11
Оценка:
Кстати, вот step-by-step мануал как собрать gcc под mingw.

MinGW &mdash; How to Compile GCC
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.