Столкнулся (при сборке openmw) с вот этим багом буста. Если коротко, то надо либо собирать буст с c++11, либо собирать пользовательский код без c++11, либо специальный дефайн (-DBOOST_NO_CXX11_SCOPED_ENUMS
). Workaround понятен и не интересен. Посмотрел в
tear ~ # emerge -p =dev-libs/boost-1.55.0-r1
These are the packages that would be merged, in reverse order:
Calculating dependencies... done!
[ebuild R ~] dev-libs/boost-1.55.0-r1:0/1.55.0 USE="doc icu nls threads -context -debug -mpi -python -static-libs -tools" PYTHON_TARGETS="python2_7 python3_2 python3_3 (-python2_6)" 0 kB
Total: 1 package (1 reinstall), Size of downloads: 0 kB
tear ~ #
USE флага c++11 не увидел, посмотрел в ebuild:
tear ~ # grep -i cxx /usr/portage/dev-libs/boost/boost-1.55.0-r1.ebuild
mpi? ( || ( sys-cluster/openmpi[cxx] sys-cluster/mpich2[cxx,threads] ) )
compiler_executable="$(tc-getCXX)"
compiler_executable="$(tc-getCXX)"
using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
compilerVersion=$($(tc-getCXX) -v | sed '1q' \
compilerExecutable=$(tc-getCXX)
append-cxxflags -std=gnu++98
tear ~ # grep -i std /usr/portage/dev-libs/boost/boost-1.55.0-r1.ebuild
append-cxxflags -std=gnu++98
# boost's build system truely sucks for not having a destdir. Because for
tear ~ #
Увидел <cxxflags>"${CXXFLAGS}"
Вопрос: идеологически верно добавлять c++11
к своим системным (или в env) CXXFLAGS или просить на багзилле добавить юз к ебилдам буста?