Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 489172 - dev-db/mongodb[-spidermonkey] fails to build with >=sys-devel/gcc-4.8 (due to -Werror and more warnings)
Summary: dev-db/mongodb[-spidermonkey] fails to build with >=sys-devel/gcc-4.8 (due to...
Status: RESOLVED DUPLICATE of bug 482576
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All All
: Normal normal (vote)
Assignee: Ultrabug
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: werror
  Show dependency tree
 
Reported: 2013-10-23 16:06 UTC by Arfrever Frehtes Taifersar Arahesis
Modified: 2013-10-25 14:20 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Arfrever Frehtes Taifersar Arahesis 2013-10-23 16:06:22 UTC
dev-db/mongodb-2.4.7[-spidermonkey] fails to build.
>=dev-db/mongodb-2.4.6-r2[-spidermonkey] uses internal copy of v8, which uses -Werror.
(Ebuilds of dev-lang/v8 pass -Dwerror= to its build system to disable -Werror.)

Compilation failure of dev-db/mongodb occurs at least with GCC >=4.8, which enables many more warnings.

...
x86_64-pc-linux-gnu-g++ -o build/linux2/cc_x86_64-pc-linux-gnu-gcc/cxx_x86_64-pc-linux-gnu-g++/ssl/use-system-boost/use-system-pcre/use-system-snappy/use-system-tcmalloc/usev8/third_party/v8/src/x64/assembler-x64.o -c -march=native -O2 -pipe -fPIC -fno-strict-aliasing -pthread -Wall -Wsign-compare -Wno-unknown-pragmas -Winvalid-pch -fno-builtin-memcmp -O3 -ansi -pedantic -Werror -W -Wno-unused-parameter -Woverloaded-virtual -Wnon-virtual-dtor -D_SCONS -DMONGO_EXPOSE_MACROS -DSUPPORT_UTF8 -D_FILE_OFFSET_BITS=64 -DMONGO_SSL -DMONGO_HAVE_HEADER_UNISTD_H -DMONGO_HAVE_EXECINFO_BACKTRACE -DV8_TARGET_ARCH_X64 -DENABLE_DEBUGGER_SUPPORT -Ibuild/linux2/cc_x86_64-pc-linux-gnu-gcc/cxx_x86_64-pc-linux-gnu-g++/ssl/use-system-boost/use-system-pcre/use-system-snappy/use-system-tcmalloc/usev8/third_party/v8/src -Isrc/third_party/v8/src -Ibuild/linux2/cc_x86_64-pc-linux-gnu-gcc/cxx_x86_64-pc-linux-gnu-g++/ssl/use-system-boost/use-system-pcre/use-system-snappy/use-system-tcmalloc/usev8/third_party/libstemmer_c/include -Isrc/third_party/libstemmer_c/include -Ibuild/linux2/cc_x86_64-pc-linux-gnu-gcc/cxx_x86_64-pc-linux-gnu-g++/ssl/use-system-boost/use-system-pcre/use-system-snappy/use-system-tcmalloc/usev8/third_party/s2 -Isrc/third_party/s2 -Ibuild/linux2/cc_x86_64-pc-linux-gnu-gcc/cxx_x86_64-pc-linux-gnu-g++/ssl/use-system-boost/use-system-pcre/use-system-snappy/use-system-tcmalloc/usev8 -Isrc -Ibuild/linux2/cc_x86_64-pc-linux-gnu-gcc/cxx_x86_64-pc-linux-gnu-g++/ssl/use-system-boost/use-system-pcre/use-system-snappy/use-system-tcmalloc/usev8/mongo -Isrc/mongo -Ibuild/linux2/cc_x86_64-pc-linux-gnu-gcc/cxx_x86_64-pc-linux-gnu-g++/ssl/use-system-boost/use-system-pcre/use-system-snappy/use-system-tcmalloc/usev8/third_party/s2 -Isrc/third_party/s2 src/third_party/v8/src/x64/assembler-x64.cc
In file included from src/third_party/v8/src/v8globals.h:32:0,
                 from src/third_party/v8/src/v8.h:53,
                 from src/third_party/v8/src/x64/assembler-x64.cc:28:
src/third_party/v8/src/v8utils.h: In function ‘void v8::internal::CopyWords(T*, T*, int)’:
src/third_party/v8/src/checks.h:251:22: error: typedef ‘__StaticAssertTypedef__128’ locally defined but not used [-Werror=unused-local-typedefs]
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
                      ^
src/third_party/v8/src/checks.h:241:39: note: in definition of macro ‘SEMI_STATIC_JOIN_HELPER’
 #define SEMI_STATIC_JOIN_HELPER(a, b) a##b
                                       ^
src/third_party/v8/src/checks.h:251:5: note: in expansion of macro ‘SEMI_STATIC_JOIN’
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
     ^
src/third_party/v8/src/checks.h:283:30: note: in expansion of macro ‘STATIC_CHECK’
 #define STATIC_ASSERT(test)  STATIC_CHECK(test)
                              ^
src/third_party/v8/src/v8utils.h:128:3: note: in expansion of macro ‘STATIC_ASSERT’
   STATIC_ASSERT(sizeof(T) == kPointerSize);
   ^
src/third_party/v8/src/objects-visiting.h: In member function ‘void v8::internal::VisitorDispatchTable<Callback>::RegisterSpecializations()’:
src/third_party/v8/src/checks.h:251:22: error: typedef ‘__StaticAssertTypedef__188’ locally defined but not used [-Werror=unused-local-typedefs]
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
                      ^
src/third_party/v8/src/checks.h:241:39: note: in definition of macro ‘SEMI_STATIC_JOIN_HELPER’
 #define SEMI_STATIC_JOIN_HELPER(a, b) a##b
                                       ^
src/third_party/v8/src/checks.h:251:5: note: in expansion of macro ‘SEMI_STATIC_JOIN’
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
     ^
src/third_party/v8/src/checks.h:283:30: note: in expansion of macro ‘STATIC_CHECK’
 #define STATIC_ASSERT(test)  STATIC_CHECK(test)
                              ^
src/third_party/v8/src/objects-visiting.h:187:5: note: in expansion of macro ‘STATIC_ASSERT’
     STATIC_ASSERT(
     ^
src/third_party/v8/src/scanner.h: In member function ‘void v8::internal::Scanner::Init()’:
src/third_party/v8/src/checks.h:251:22: error: typedef ‘__StaticAssertTypedef__450’ locally defined but not used [-Werror=unused-local-typedefs]
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
                      ^
src/third_party/v8/src/checks.h:241:39: note: in definition of macro ‘SEMI_STATIC_JOIN_HELPER’
 #define SEMI_STATIC_JOIN_HELPER(a, b) a##b
                                       ^
src/third_party/v8/src/checks.h:251:5: note: in expansion of macro ‘SEMI_STATIC_JOIN’
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
     ^
src/third_party/v8/src/checks.h:283:30: note: in expansion of macro ‘STATIC_CHECK’
 #define STATIC_ASSERT(test)  STATIC_CHECK(test)
                              ^
src/third_party/v8/src/scanner.h:450:5: note: in expansion of macro ‘STATIC_ASSERT’
     STATIC_ASSERT(kCharacterLookaheadBufferSize == 1);
     ^
src/third_party/v8/src/objects-inl.h: In member function ‘bool v8::internal::Object::IsSymbol()’:
src/third_party/v8/src/checks.h:251:22: error: typedef ‘__StaticAssertTypedef__200’ locally defined but not used [-Werror=unused-local-typedefs]
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
                      ^
src/third_party/v8/src/checks.h:241:39: note: in definition of macro ‘SEMI_STATIC_JOIN_HELPER’
 #define SEMI_STATIC_JOIN_HELPER(a, b) a##b
                                       ^
src/third_party/v8/src/checks.h:251:5: note: in expansion of macro ‘SEMI_STATIC_JOIN’
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
     ^
src/third_party/v8/src/checks.h:283:30: note: in expansion of macro ‘STATIC_CHECK’
 #define STATIC_ASSERT(test)  STATIC_CHECK(test)
                              ^
src/third_party/v8/src/objects-inl.h:200:3: note: in expansion of macro ‘STATIC_ASSERT’
   STATIC_ASSERT(kSymbolTag != 0);
   ^
src/third_party/v8/src/objects-inl.h: In member function ‘bool v8::internal::StringShape::IsSymbol()’:
src/third_party/v8/src/checks.h:251:22: error: typedef ‘__StaticAssertTypedef__285’ locally defined but not used [-Werror=unused-local-typedefs]
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
                      ^
src/third_party/v8/src/checks.h:241:39: note: in definition of macro ‘SEMI_STATIC_JOIN_HELPER’
 #define SEMI_STATIC_JOIN_HELPER(a, b) a##b
                                       ^
src/third_party/v8/src/checks.h:251:5: note: in expansion of macro ‘SEMI_STATIC_JOIN’
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
     ^
src/third_party/v8/src/checks.h:283:30: note: in expansion of macro ‘STATIC_CHECK’
 #define STATIC_ASSERT(test)  STATIC_CHECK(test)
                              ^
src/third_party/v8/src/objects-inl.h:285:3: note: in expansion of macro ‘STATIC_ASSERT’
   STATIC_ASSERT(kSymbolTag != 0);
   ^
src/third_party/v8/src/objects-inl.h: In member function ‘bool v8::internal::String::IsAsciiRepresentationUnderneath()’:
src/third_party/v8/src/checks.h:251:22: error: typedef ‘__StaticAssertTypedef__304’ locally defined but not used [-Werror=unused-local-typedefs]
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
                      ^
src/third_party/v8/src/checks.h:241:39: note: in definition of macro ‘SEMI_STATIC_JOIN_HELPER’
 #define SEMI_STATIC_JOIN_HELPER(a, b) a##b
                                       ^
src/third_party/v8/src/checks.h:251:5: note: in expansion of macro ‘SEMI_STATIC_JOIN’
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
     ^
src/third_party/v8/src/checks.h:283:30: note: in expansion of macro ‘STATIC_CHECK’
 #define STATIC_ASSERT(test)  STATIC_CHECK(test)
                              ^
src/third_party/v8/src/objects-inl.h:304:3: note: in expansion of macro ‘STATIC_ASSERT’
   STATIC_ASSERT(kIsIndirectStringTag != 0);
   ^
src/third_party/v8/src/checks.h:251:22: error: typedef ‘__StaticAssertTypedef__305’ locally defined but not used [-Werror=unused-local-typedefs]
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
                      ^
src/third_party/v8/src/checks.h:241:39: note: in definition of macro ‘SEMI_STATIC_JOIN_HELPER’
 #define SEMI_STATIC_JOIN_HELPER(a, b) a##b
                                       ^
src/third_party/v8/src/checks.h:251:5: note: in expansion of macro ‘SEMI_STATIC_JOIN’
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
     ^
src/third_party/v8/src/checks.h:283:30: note: in expansion of macro ‘STATIC_CHECK’
 #define STATIC_ASSERT(test)  STATIC_CHECK(test)
                              ^
src/third_party/v8/src/objects-inl.h:305:3: note: in expansion of macro ‘STATIC_ASSERT’
   STATIC_ASSERT((kIsIndirectStringMask & kStringEncodingMask) == 0);
   ^
src/third_party/v8/src/objects-inl.h: In member function ‘bool v8::internal::String::IsTwoByteRepresentationUnderneath()’:
src/third_party/v8/src/checks.h:251:22: error: typedef ‘__StaticAssertTypedef__320’ locally defined but not used [-Werror=unused-local-typedefs]
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
                      ^
src/third_party/v8/src/checks.h:241:39: note: in definition of macro ‘SEMI_STATIC_JOIN_HELPER’
 #define SEMI_STATIC_JOIN_HELPER(a, b) a##b
                                       ^
src/third_party/v8/src/checks.h:251:5: note: in expansion of macro ‘SEMI_STATIC_JOIN’
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
     ^
src/third_party/v8/src/checks.h:283:30: note: in expansion of macro ‘STATIC_CHECK’
 #define STATIC_ASSERT(test)  STATIC_CHECK(test)
                              ^
src/third_party/v8/src/objects-inl.h:320:3: note: in expansion of macro ‘STATIC_ASSERT’
   STATIC_ASSERT(kIsIndirectStringTag != 0);
   ^
src/third_party/v8/src/checks.h:251:22: error: typedef ‘__StaticAssertTypedef__321’ locally defined but not used [-Werror=unused-local-typedefs]
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
                      ^
src/third_party/v8/src/checks.h:241:39: note: in definition of macro ‘SEMI_STATIC_JOIN_HELPER’
 #define SEMI_STATIC_JOIN_HELPER(a, b) a##b
                                       ^
src/third_party/v8/src/checks.h:251:5: note: in expansion of macro ‘SEMI_STATIC_JOIN’
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
     ^
src/third_party/v8/src/checks.h:283:30: note: in expansion of macro ‘STATIC_CHECK’
 #define STATIC_ASSERT(test)  STATIC_CHECK(test)
                              ^
src/third_party/v8/src/objects-inl.h:321:3: note: in expansion of macro ‘STATIC_ASSERT’
   STATIC_ASSERT((kIsIndirectStringMask & kStringEncodingMask) == 0);
   ^
src/third_party/v8/src/objects-inl.h: In member function ‘bool v8::internal::Object::IsJSReceiver()’:
src/third_party/v8/src/checks.h:251:22: error: typedef ‘__StaticAssertTypedef__493’ locally defined but not used [-Werror=unused-local-typedefs]
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
                      ^
src/third_party/v8/src/checks.h:241:39: note: in definition of macro ‘SEMI_STATIC_JOIN_HELPER’
 #define SEMI_STATIC_JOIN_HELPER(a, b) a##b
                                       ^
src/third_party/v8/src/checks.h:251:5: note: in expansion of macro ‘SEMI_STATIC_JOIN’
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
     ^
src/third_party/v8/src/checks.h:283:30: note: in expansion of macro ‘STATIC_CHECK’
 #define STATIC_ASSERT(test)  STATIC_CHECK(test)
                              ^
src/third_party/v8/src/objects-inl.h:493:3: note: in expansion of macro ‘STATIC_ASSERT’
   STATIC_ASSERT(LAST_JS_RECEIVER_TYPE == LAST_TYPE);
   ^
src/third_party/v8/src/objects-inl.h: In member function ‘bool v8::internal::Object::IsJSObject()’:
src/third_party/v8/src/checks.h:251:22: error: typedef ‘__StaticAssertTypedef__500’ locally defined but not used [-Werror=unused-local-typedefs]
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
                      ^
src/third_party/v8/src/checks.h:241:39: note: in definition of macro ‘SEMI_STATIC_JOIN_HELPER’
 #define SEMI_STATIC_JOIN_HELPER(a, b) a##b
                                       ^
src/third_party/v8/src/checks.h:251:5: note: in expansion of macro ‘SEMI_STATIC_JOIN’
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
     ^
src/third_party/v8/src/checks.h:283:30: note: in expansion of macro ‘STATIC_CHECK’
 #define STATIC_ASSERT(test)  STATIC_CHECK(test)
                              ^
src/third_party/v8/src/objects-inl.h:500:3: note: in expansion of macro ‘STATIC_ASSERT’
   STATIC_ASSERT(LAST_JS_OBJECT_TYPE == LAST_TYPE);
   ^
src/third_party/v8/src/objects-inl.h: In member function ‘v8::internal::String* v8::internal::String::GetUnderlying()’:
src/third_party/v8/src/checks.h:251:22: error: typedef ‘__StaticAssertTypedef__2385’ locally defined but not used [-Werror=unused-local-typedefs]
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
                      ^
src/third_party/v8/src/checks.h:241:39: note: in definition of macro ‘SEMI_STATIC_JOIN_HELPER’
 #define SEMI_STATIC_JOIN_HELPER(a, b) a##b
                                       ^
src/third_party/v8/src/checks.h:251:5: note: in expansion of macro ‘SEMI_STATIC_JOIN’
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
     ^
src/third_party/v8/src/checks.h:283:30: note: in expansion of macro ‘STATIC_CHECK’
 #define STATIC_ASSERT(test)  STATIC_CHECK(test)
                              ^
src/third_party/v8/src/objects-inl.h:2385:3: note: in expansion of macro ‘STATIC_ASSERT’
   STATIC_ASSERT(ConsString::kFirstOffset == SlicedString::kParentOffset);
   ^
src/third_party/v8/src/objects-inl.h: In member function ‘void v8::internal::Code::set_flags(v8::internal::Code::Flags)’:
src/third_party/v8/src/checks.h:251:22: error: typedef ‘__StaticAssertTypedef__3038’ locally defined but not used [-Werror=unused-local-typedefs]
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
                      ^
src/third_party/v8/src/checks.h:241:39: note: in definition of macro ‘SEMI_STATIC_JOIN_HELPER’
 #define SEMI_STATIC_JOIN_HELPER(a, b) a##b
                                       ^
src/third_party/v8/src/checks.h:251:5: note: in expansion of macro ‘SEMI_STATIC_JOIN’
     SEMI_STATIC_JOIN(__StaticAssertTypedef__, __LINE__)
     ^
src/third_party/v8/src/checks.h:283:30: note: in expansion of macro ‘STATIC_CHECK’
 #define STATIC_ASSERT(test)  STATIC_CHECK(test)
                              ^
src/third_party/v8/src/objects-inl.h:3038:3: note: in expansion of macro ‘STATIC_ASSERT’
   STATIC_ASSERT(Code::NUMBER_OF_KINDS <= KindField::kMax + 1);
   ^
...
cc1plus: all warnings being treated as errors
scons: *** [build/linux2/cc_x86_64-pc-linux-gnu-gcc/cxx_x86_64-pc-linux-gnu-g++/ssl/use-system-boost/use-system-pcre/use-system-snappy/use-system-tcmalloc/usev8/third_party/v8/src/x64/assembler-x64.o] Error 1
scons: building terminated because of errors.
 * ERROR: dev-db/mongodb-2.4.7::gentoo failed (compile phase):
 *   escons failed.
Comment 1 Mike Auty (RETIRED) gentoo-dev 2013-10-24 13:10:12 UTC
*** Bug 488890 has been marked as a duplicate of this bug. ***
Comment 2 Mike Auty (RETIRED) gentoo-dev 2013-10-24 13:15:59 UTC
Suggested patch from duplicate bug is at:

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=701324#14
Comment 3 Arfrever Frehtes Taifersar Arahesis 2013-10-24 17:38:23 UTC
(In reply to Mike Auty from comment #2)
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=701324#14

This is incomplete solution. -Werror should simply not be used. Users are allowed to add -Wall -Wextra -W${something_else} to CXXFLAGS.
Comment 4 Jeroen Roovers (RETIRED) gentoo-dev 2013-10-25 14:20:10 UTC

*** This bug has been marked as a duplicate of bug 482576 ***