Hi all, I am trying to upgrade from V8 6.5 to V8 6.7 (6.7.288.51) but on linux(I tried on both Ubuntu 14.04 and Amazon Linux) it fails to compile googletest with the following errors:
CXX obj/third_party/googletest/gtest/gtest-filepath.o > > FAILED: obj/third_party/googletest/gtest/gtest-filepath.o > > ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF > obj/third_party/googletest/gtest/gtest-filepath.o.d > -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_NSS_CERTS=1 > -DUSE_X11=1 -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD > -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED > -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE > -DCR_CLANG_REVISION=\"328716-2\" -DNDEBUG -DNVALGRIND > -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGTEST_API_= -DGTEST_HAS_POSIX_RE=0 > -DGTEST_LANG_CXX11=1 -DGTEST_HAS_STD_TUPLE=1 > -I../../third_party/googletest/src/googletest -I../.. -Igen > -I../../third_party/googletest/custom > -I../../third_party/googletest/src/googletest/include -fno-strict-aliasing > -fmerge-all-constants --param=ssp-buffer-size=4 -fstack-protector > -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= > -funwind-tables -fPIC -pipe > -B../../third_party/binutils/Linux_x64/Release/bin -pthread > -fcolor-diagnostics -Xclang -mllvm -Xclang -instcombine-lower-dbg-declare=0 > -no-canonical-prefixes -m64 -march=x86-64 -O2 -fno-ident -fdata-sections > -ffunction-sections -fno-omit-frame-pointer -g1 -fvisibility=hidden -Xclang > -load -Xclang > ../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so > -Xclang -add-plugin -Xclang find-bad-constructs -Xclang > -plugin-arg-find-bad-constructs -Xclang no-realpath -Xclang > -plugin-arg-find-bad-constructs -Xclang check-ipc -Wheader-hygiene > -Wstring-conversion -Wtautological-overlap-compare -Werror -Wall > -Wno-unused-variable -Wno-missing-field-initializers -Wno-unused-parameter > -Wno-c++11-narrowing -Wno-covered-switch-default > -Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override > -Wno-undefined-var-template -Wno-nonportable-include-path > -Wno-address-of-packed-member -Wno-unused-lambda-capture > -Wno-user-defined-warnings -Wno-enum-compare-switch > -Wno-null-pointer-arithmetic -Wno-ignored-pragma-optimize -std=gnu++14 > -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -c > ../../third_party/googletest/src/googletest/src/gtest-filepath.cc -o > obj/third_party/googletest/gtest/gtest-filepath.o > > In file included from > ../../third_party/googletest/src/googletest/src/gtest-filepath.cc:30: > > In file included from > ../../third_party/googletest/src/googletest/include/gtest/internal/gtest-filepath.h:42: > > In file included from > ../../third_party/googletest/src/googletest/include/gtest/internal/gtest-string.h:52: > > In file included from > ../../third_party/googletest/src/googletest/include/gtest/internal/gtest-port.h:750: > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:130:5: > > **error: **declaration conflicts with target of using declaration already > in scope* > > class tuple : public _Tuple_impl<0, _Elements...> > > * ^* > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tuple:556:11: > **note: *target of using declaration > > class tuple : public _Tuple_impl<0, _Elements...> > > * ^* > > *../../third_party/googletest/custom/gtest/internal/custom/gtest-port.h:21:12: > > **note: *using declaration > > using std::tuple; > > * ^* > > In file included from > ../../third_party/googletest/src/googletest/src/gtest-filepath.cc:30: > > In file included from > ../../third_party/googletest/src/googletest/include/gtest/internal/gtest-filepath.h:42: > > In file included from > ../../third_party/googletest/src/googletest/include/gtest/internal/gtest-string.h:52: > > In file included from > ../../third_party/googletest/src/googletest/include/gtest/internal/gtest-port.h:750: > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:164:20: > > **error: **explicit specialization of non-template class 'tuple'* > > template<> class tuple<> { }; > > * ^ ~~* > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:168:11: > > **error: **explicit specialization of non-template class 'tuple'* > > class tuple<_T1, _T2> : public _Tuple_impl<0, _T1, _T2> > > * ^ ~~~~~~~~~~* > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:230:31: > > **error: **reference to 'tuple' is ambiguous* > > struct tuple_element<__i, tuple<_Head, _Tail...> > > > * ^* > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:130:11: > > **note: *candidate found by name lookup is 'std::tr1::tuple' > > class tuple : public _Tuple_impl<0, _Elements...> > > * ^* > > *../../third_party/googletest/custom/gtest/internal/custom/gtest-port.h:21:12: > > **note: *candidate found by name lookup is 'std::tr1::tuple' > > using std::tuple; > > * ^* > > In file included from > ../../third_party/googletest/src/googletest/src/gtest-filepath.cc:30: > > In file included from > ../../third_party/googletest/src/googletest/include/gtest/internal/gtest-filepath.h:42: > > In file included from > ../../third_party/googletest/src/googletest/include/gtest/internal/gtest-string.h:52: > > In file included from > ../../third_party/googletest/src/googletest/include/gtest/internal/gtest-port.h:750: > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:230:37: > > **error: **'_Head' does not refer to a value* > > struct tuple_element<__i, tuple<_Head, _Tail...> > > > * ^* > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:229:30: > > **note: *declared here > > template<int __i, typename _Head, typename... _Tail> > > * ^* > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:231:35: > > **error: **expected ';' at end of declaration* > > : tuple_element<__i - 1, tuple<_Tail...> > { }; > > * ^* > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:231:35: > > **error: **expected unqualified-id* > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:237:29: > > **error: **reference to 'tuple' is ambiguous* > > struct tuple_element<0, tuple<_Head, _Tail...> > > > * ^* > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:130:11: > > **note: *candidate found by name lookup is 'std::tr1::tuple' > > class tuple : public _Tuple_impl<0, _Elements...> > > * ^* > > *../../third_party/googletest/custom/gtest/internal/custom/gtest-port.h:21:12: > > **note: *candidate found by name lookup is 'std::tr1::tuple' > > using std::tuple; > > * ^* > > In file included from > ../../third_party/googletest/src/googletest/src/gtest-filepath.cc:30: > > In file included from > ../../third_party/googletest/src/googletest/include/gtest/internal/gtest-filepath.h:42: > > In file included from > ../../third_party/googletest/src/googletest/include/gtest/internal/gtest-string.h:52: > > In file included from > ../../third_party/googletest/src/googletest/include/gtest/internal/gtest-port.h:750: > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:237:35: > > **error: **'_Head' does not refer to a value* > > struct tuple_element<0, tuple<_Head, _Tail...> > > > * ^* > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:236:21: > > **note: *declared here > > template<typename _Head, typename... _Tail> > > * ^* > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:248:23: > > **error: **reference to 'tuple' is ambiguous* > > struct tuple_size<tuple<_Elements...> > > > * ^* > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:130:11: > > **note: *candidate found by name lookup is 'std::tr1::tuple' > > class tuple : public _Tuple_impl<0, _Elements...> > > * ^* > > *../../third_party/googletest/custom/gtest/internal/custom/gtest-port.h:21:12: > > **note: *candidate found by name lookup is 'std::tr1::tuple' > > using std::tuple; > > * ^* > > In file included from > ../../third_party/googletest/src/googletest/src/gtest-filepath.cc:30: > > In file included from > ../../third_party/googletest/src/googletest/include/gtest/internal/gtest-filepath.h:42: > > In file included from > ../../third_party/googletest/src/googletest/include/gtest/internal/gtest-string.h:52: > > In file included from > ../../third_party/googletest/src/googletest/include/gtest/internal/gtest-port.h:750: > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:248:29: > > **error: **'_Elements' does not refer to a value* > > struct tuple_size<tuple<_Elements...> > > > * ^* > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:247:24: > > **note: *declared here > > template<typename... _Elements> > > * ^* > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:254:26: > > **error: **reference to 'tuple' is ambiguous* > > const int tuple_size<tuple<_Elements...> >::value; > > * ^* > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:130:11: > > **note: *candidate found by name lookup is 'std::tr1::tuple' > > class tuple : public _Tuple_impl<0, _Elements...> > > * ^* > > *../../third_party/googletest/custom/gtest/internal/custom/gtest-port.h:21:12: > > **note: *candidate found by name lookup is 'std::tr1::tuple' > > using std::tuple; > > * ^* > > In file included from > ../../third_party/googletest/src/googletest/src/gtest-filepath.cc:30: > > In file included from > ../../third_party/googletest/src/googletest/include/gtest/internal/gtest-filepath.h:42: > > In file included from > ../../third_party/googletest/src/googletest/include/gtest/internal/gtest-string.h:52: > > In file included from > ../../third_party/googletest/src/googletest/include/gtest/internal/gtest-port.h:750: > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:254:32: > > **error: **'_Elements' does not refer to a value* > > const int tuple_size<tuple<_Elements...> >::value; > > * ^* > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:253:24: > > **note: *declared here > > template<typename... _Elements> > > * ^* > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:254:46: > > **error: **expected unqualified-id* > > const int tuple_size<tuple<_Elements...> >::value; > > * ^* > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:274:51: > > **error: **reference to 'tuple' is ambiguous* > > typename tuple_element<__i, tuple<_Elements...> > >::type > > * ^* > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:130:11: > > **note: *candidate found by name lookup is 'std::tr1::tuple' > > class tuple : public _Tuple_impl<0, _Elements...> > > * ^* > > *../../third_party/googletest/custom/gtest/internal/custom/gtest-port.h:21:12: > > **note: *candidate found by name lookup is 'std::tr1::tuple' > > using std::tuple; > > * ^* > > In file included from > ../../third_party/googletest/src/googletest/src/gtest-filepath.cc:30: > > In file included from > ../../third_party/googletest/src/googletest/include/gtest/internal/gtest-filepath.h:42: > > In file included from > ../../third_party/googletest/src/googletest/include/gtest/internal/gtest-string.h:52: > > In file included from > ../../third_party/googletest/src/googletest/include/gtest/internal/gtest-port.h:750: > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:274:57: > > **error: **'_Elements' does not refer to a value* > > typename tuple_element<__i, tuple<_Elements...> > >::type > > * ^* > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:272:33: > > **note: *declared here > > template<int __i, typename... _Elements> > > * ^* > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:274:71: > > **error: **expected a type* > > typename tuple_element<__i, tuple<_Elements...> > >::type > > * ^* > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:274:74: > > **error: **definition or redeclaration of 'type' cannot name the global > scope* > > typename tuple_element<__i, tuple<_Elements...> > >::type > > * > ~~^* > > */usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/tr1/tuple:274:74: > > **error: **no member named 'type' in the global namespace* > > typename tuple_element<__i, tuple<_Elements...> > >::type > > * > ~~^* > > *fatal error: *too many errors emitted, stopping now [-ferror-limit=] > > 20 errors generated. > I tried patching third_party/googletest/src/googletest/include/gtest/internal/gtest-port.h to force #define GTEST_HAS_TR1_TUPLE 0 > #define DGTEST_USE_OWN_TR1_TUPLE 0 which felt wrong but led to a successful compilation of v8. But then my app would error liking to libv8_base.a with error ../lib/v8/Linux/libv8_base.a: error adding symbols: Malformed archive > collect2: error: ld returned 1 exit status Could someone give me a pointer on how to get around the error and produce a linkable static lib? Btw gcc version is gcc version 7.3.1 20180303 (Red Hat 7.3.1-5) (GCC) -- -- v8-users mailing list v8-users@googlegroups.com http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.