Summary: | dev-libs/boost-1.55.0-r1 USE=tools - regression/src/compiler_status.cpp:131:20: error: ‘itr’ does not name a type | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Jeremy Murphy <jeremy.william.murphy> |
Component: | [OLD] Library | Assignee: | C++ Team [disbanded] <cpp+disabled> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | Adrian.Bassett, alexxy, andriy155, atoth, ed, gentoo, ibuyandtrade0+bugs.gentoo.org, jgeboski, jmesmon, kkrizka, m.debruijne, milosvova, oli.huber, pageexec, piorekf, proteuss, randy-andy-, rauchwolke, rob, rose, zeekec |
Priority: | Normal | Keywords: | PATCH |
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
build.log
c++98.patch |
+1 for me The problem is the use of C++11 when C++98 is being forced: "x86_64-pc-linux-gnu-g++" -ftemplate-depth-128 -O2 -pipe -mtune=native -march=native -O2 -std=gnu++98 -finline-functions -Wno-inline -Wall -pthread -DBOOST_ALL_NO_LIB=1 -DBOOST_FILESYSTEM_STATIC_LINK=1 -DBOOST_S YSTEM_STATIC_LINK=1 -DNDEBUG -I".." -c -o "regression/build/bin/gcc-4.8/gentoorelease/link-static/pch-off/threading-multi/compiler_status.o" "regression/src/compiler_status.cpp" regression/src/compiler_status.cpp: In function ‘std::string {anonymous}::revision(const boost::filesystem::path&)’: regression/src/compiler_status.cpp:131:15: warning: ‘auto’ changes meaning in C++11; please remove it [-Wc++0x-compat] for(auto itr = ln.begin()+10; itr != ln.end() && isdigit(*itr); ++itr) ^ regression/src/compiler_status.cpp:131:20: error: ‘itr’ does not name a type for(auto itr = ln.begin()+10; itr != ln.end() && isdigit(*itr); ++itr) ^ regression/src/compiler_status.cpp:131:41: error: expected ‘;’ before ‘itr’ for(auto itr = ln.begin()+10; itr != ln.end() && isdigit(*itr); ++itr) I have the same issue. Is there any patch? +1 for me It seems to be an upstream problem -- it happens when I try to build the tarball from distfiles by itself. For some reason b2 is wanting to insert the flag requiring c++98. For now, disabling the tools use flag disables building the broken code. boost-1.55.0-r1.ebuild: # Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard. append-cxxflags -std=gnu++98 Should be easy to make it C++98 compatible though. Created attachment 372900 [details, diff]
c++98.patch
(In reply to Ed Catmur from comment #7) Patch works here. Tools compiled fine. Thank you. *** Bug 504970 has been marked as a duplicate of this bug. *** (In reply to Ed Catmur from comment #7) > Created attachment 372900 [details, diff] [details, diff] > c++98.patch Works for me. (In reply to Ed Catmur from comment #7) > Created attachment 372900 [details, diff] [details, diff] > c++98.patch +1 for me *** Bug 506262 has been marked as a duplicate of this bug. *** Why is it still unconfirmed? There are 11 votes and 2 duplicates. I had the same bug and the patch fixed it. *** Bug 506630 has been marked as a duplicate of this bug. *** (In reply to Ed Catmur from comment #7) > Created attachment 372900 [details, diff] [details, diff] > c++98.patch Patch works for me on ~amd64. The addition of epatch_user would go down well in Boost ... + 07 Apr 2014; Sergey Popov <pinkbyte@gentoo.org> boost-1.55.0-r1.ebuild, + +files/boost-1.55.0-tools-c98-compat.patch: + Fix building with USE='tools', wrt bug #506064, patch by Ed Catmur <ed AT + catmur.co.uk> |
Created attachment 371752 [details] build.log Compile error on compiler_status.cpp: "x86_64-pc-linux-gnu-g++" -ftemplate-depth-128 -O2 -pipe -w -march=native -std=gnu++98 -finline-functions -Wno-inline -Wall -pthread -DBOOST_ALL_NO_LIB=1 -DBOOST_FILESYSTEM_STATIC_LINK=1 -DBOOST_SYSTEM_STATIC_LINK=1 -DNDEBUG -I".." -c -o "regression/build/bin/gcc-4.7/gentoorelease/link-static/pch-off/threading-multi/compiler_status.o" "regression/src/compiler_status.cpp" regression/src/compiler_status.cpp: In function ‘std::string {anonymous}::revision(const boost::filesystem::path&)’: regression/src/compiler_status.cpp:131:20: error: ‘itr’ does not name a type regression/src/compiler_status.cpp:131:41: error: expected ‘;’ before ‘itr’ regression/src/compiler_status.cpp:131:41: error: ‘itr’ was not declared in this scope