Сбой с BoostPolygonSet после обновления gcc до 4.9.0

Мой дистрибутив Linux недавно обновился с gcc 4.8.x до 4.9.0. С тех пор я испытываю сбой при работе с набором повышающих полигонов, даже при простейшем использовании из примеров:

using namespace boost::polygon;
using namespace boost::polygon::operators;

geometry::BoostPolygonSet ps;
ps += rectangle_data<int>(0,0,10,10);

Сбои в строке ps += с последним элементом:

/usr/include/boost/polygon/detail/polygon_arbitrary_formation.hpp

Строка 289, в которой говорится:

Unit localx = *x_;

И *x_ равно нулю

Я пробовал разные обходные пути, но ничего не помогает. К сожалению, ArchLinux не позволяет параллельно установить более 1 версии gcc, поэтому мне нужно заставить его работать.

Любые идеи? Спасибо!

Обновление:

Недавнее обновление archlinux для пакета gcc gcc 4.9.0-2 решило проблему. Либо ошибка в gcc, либо, из-за нумерации, более возможная ошибка в системе пакетов ArchLinux. Не знаю, как закрыть вопрос (и да, я искал справку ;-)), считайте, что он решен.


person Hellagot    schedule 09.05.2014    source источник
comment
Вы уверены, что полностью перестроили все связанные объекты?   -  person sehe    schedule 09.05.2014
comment
Ну, я в значительной степени был, но просто чтобы убедиться, что это не какие-то зависимости сборки b0rken, я просто удалил все каталоги сборки из проекта и построил с нуля: Crash все еще остается.   -  person Hellagot    schedule 09.05.2014
comment
И зависимости библиотеки boost (если они есть для Boost Geometry)   -  person sehe    schedule 09.05.2014
comment
Я не использую самодельный буст, это установка системы из ArchLinux... им действительно нужно перекомпилировать все библиотеки? Это было бы утомительно, и они точно не сделали этого до сих пор.   -  person Hellagot    schedule 09.05.2014
comment
Да, вам нужно перекомпилировать все библиотеки, если вы переключаете основные версии GCC из-за изменений, нарушающих ABI. Что-нибудь еще - › неопределенное поведение   -  person sehe    schedule 09.05.2014
comment
Нет, конечно нет. GCC совместим с ABI и имеет много, много основных версий. libstdc++ для 4.7.0 и 4.7.1 несовместимы по ABI с другими по причинам, но все другие версии полностью совместимы. Вероятно, это ошибка в Boost, я чувствую, что обновление GCC просто выявило.   -  person Puppy    schedule 09.05.2014
comment
Вы имеете в виду, что *x_ равно нулю, или x_ равно нулю? Если второе, то очевидно, что это ошибка в коде, а не в компиляторе.   -  person Jonathan Wakely    schedule 09.05.2014
comment
Не уверен, что я имею в виду ;) - QtCreator говорит: Имя: this-›x_, Значение: 0x0, Тип: *int - Я предположил, что это означает нулевой указатель.   -  person Hellagot    schedule 09.05.2014
comment
Совместимость с ABI. Начиная с gcc-3.4.0, ABI совместим с предыдущими версиями. т.е. библиотека, созданная с использованием более старой версии, может быть связана с более новой, и она должна работать (обратное не работает). (stackoverflow.com/questions/2801938/gcc-abi-compatibility)   -  person SChepurin    schedule 09.05.2014
comment
Это Boost.Polygon, а НЕ Boost.Geometry.   -  person Adam Wulkiewicz    schedule 10.05.2014
comment
Я столкнулся с той же проблемой с gcc 4.9.0 (на gentoo). Поскольку ArchLinux обновился до более свежей версии gcc, я надеюсь, что эта проблема будет решена в gcc 4.9.1!   -  person Xoph    schedule 05.06.2014
comment
Вопрос не требует закрытия. Нужен ответ, и теперь вы можете предоставить его, как я думаю :). После этого вы можете утвердить ответ, и все готово :)   -  person laurisvr    schedule 15.05.2015