I found that the googletest compilation failure is unrelated. Even with other versions of v8, say, 6.8, when the compilation works as usual. The built static lib still cannot be linked to my lib.
error adding symbols: Malformed archive I am compiling v8 and statically linking to the libs on the same machine so this is really strange...to me. Any pointers are appreciated. On Tuesday, July 17, 2018 at 7:00:17 PM UTC-7, YJ wrote: > > 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.