Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.13.0 Beta2, 5.13.0 Beta3
-
None
Description
When building with clang on Linux, the Chromium build process (copied into Qt) assumes it can access a PGO profile file at chrome/android/profiles/afdo.prof (see qtwebengine-everywhere-src-5.13.0-beta2/src/3rdparty/chromium/build/config/compiler/BUILD.gn around line 2175), but that file isn't included in the qtwebengine tarball.
Patching out its use allows the build to start, but it still fails to build later in the build process (with clang 8.0.0).
/usr/bin/clang++ -MMD -MF obj/media/learning/impl/impl/random_tree_trainer.o.d -DIS_LEARNING_IMPL_IMPL -DUSE_UDEV -DUSE_AURA=1 -DUSE_NSS_CERTS=1 -DUSE_OZONE=1 -DNO_TCMALLOC -DOFFICIAL_BUILD -DCHROMIUM_BUILD -DTOOLKIT_QT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_STDC_CONSTANT_MACROS -D_STDC_FORMAT_MACROS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -Igen -I../../../../src/3rdparty/chromium -Igen -Igen -Igen -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-unknown-attributes -Wno-unknown-pragmas -Wno-unknown-warning-option -funwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -no-canonical-prefixes -m64 -Wall -Wextra -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wimplicit-fallthrough -Wthread-safety -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-unneeded-internal-declaration -Wno-undefined-var-template -Wno-ignored-pragma-optimize -O2 -fno-ident -fdata-sections -ffunction-sections -fno-omit-frame-pointer -g0 -fvisibility=hidd
en -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wno-parentheses-equality -Wno-tautological-compare -Wno-undefined-bool-conversion -Wno-tautological-undefined-compare -std=c++14 -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -c ../../../../src/3rdparty/chromium/media/learning/impl/random_tree_trainer.cc -o obj/media/learning/impl/impl/random_tree_trainer.o
In file included from ../../../../src/3rdparty/chromium/media/learning/impl/random_tree_trainer.cc:11:
../../../../src/3rdparty/chromium/base/optional.h:348:61: error: no member named 'value' in 'std::is_constructible<media::learning::Value, const base::Optional<media::learning::Value> &>'
std::is_constructible<T, const Optional<U>&>::value ||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
../../../../src/3rdparty/chromium/base/optional.h:451:39: note: in instantiation of template class 'base::internal::IsConvertibleFromOptional<media::learning::Value, media::learning::Value>' requested here
!internal::IsConvertibleFromOptional<T, U>::value &&
^
../../../../src/3rdparty/chromium/base/optional.h:454:3: note: while substituting prior template arguments into non-type template parameter [with U = media::learning::Value]
Optional(const Optional<U>& other) : internal::OptionalBase<T>(other) {}
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/8.3.0/../../../../include/c++/8.3.0/type_traits:921:56: note: whi
le substituting deduced template arguments into function template 'Optional' [with U = media::learning::Value, $1 = (no value)]
: public _bool_constant<_is_constructible(_Tp, _Args...)>
^
../../../../src/3rdparty/chromium/base/optional.h:540:16: note: in instantiation of template class 'std::is_construct
ible<media::learning::Value, const base::Optional<media::learning::Value> &>' requested here
std::is_constructible<T, U>::value &&
^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/8.3.0/../../../../include/c++/8.3.0/type_traits:1049:56: note: while substituting deduced template arguments into function template 'operator=' [with U = const base::Optional<media::learning::Value> &]
: public _bool_constant<_is_assignable(_Tp, _Up)>
^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/8.3.0/../../../../include/c++/8.3.0/type_traits:1061:14: note: (skipping 2 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
: public is_assignable<_Tp&, const _Tp&>
^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/8.3.0/../../../../include/c++/8.3.0/bits/stl_uninitialized.h:579:
33: note: in instantiation of template class 'std::is_copy_assignable<base::Optional<media::learning::Value> >' requested here
const bool __assignable = is_copy_assignable<_ValueType>::value;
^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/8.3.0/../../../../include/c++/8.3.0/bits/stl_uninitialized.h:645:
19: note: in instantiation of function template specialization 'std::__uninitialized_default_n<base::Optional<media::learning::Value> *, unsigned long>' requested here
^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/8.3.0/../../../../include/c++/8.3.0/bits/vector.tcc:596:8: note:
in instantiation of function template specialization 'std::__uninitialized_default_n_a<base::Optional<media::learning::Value> *, unsigned long, base::Optional<media::learning::Value> >' requested here
std::__uninitialized_default_n_a(this->_M_impl._M_finish,
^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/8.3.0/../../../../include/c++/8.3.0/bits/stl_vector.h:827:4: note
: in instantiation of member function 'std::vector<base::Optional<media::learning::Value>, std::allocator<base::Optional<media::learning::Value> > >::_M_default_append' requested here
_M_default_append(__new_size - size());
^
../../../../src/3rdparty/chromium/media/learning/impl/random_tree_trainer.cc:190:18: note: in instantiation of member
function 'std::vector<base::Optional<media::learning::Value>, std::allocator<base::Optional<media::learning::Value>
> >::resize' requested here
feature_values.resize(training_data[0].features.size());
^
In file included from ../../../../src/3rdparty/chromium/media/learning/impl/random_tree_trainer.cc:11:
../../../../src/3rdparty/chromium/base/optional.h:360:44: error: no member named 'value' in 'base::internal::IsConvertibleFromOptional<media::learning::Value, media::learning::Value>'
IsConvertibleFromOptional<T, U>::value ||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
../../../../src/3rdparty/chromium/base/optional.h:552:31: note: in instantiation of template class 'base::internal::IsAssignableFromOptional<media::learning::Value, media::learning::Value>' requested here
std::enable_if_t<!internal::IsAssignableFromOptional<T, U>::value &&
^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/8.3.0/../../../../include/c++/8.3.0/type_traits:1049:56: note: while substituting deduced template arguments into function template 'operator=' [with U = media::learning::Value]
: public _bool_constant<_is_assignable(_Tp, _Up)>
^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/8.3.0/../../../../include/c++/8.3.0/type_traits:1061:14: note: in
instantiation of template class 'std::is_assignable<base::Optional<media::learning::Value> &, const base::Optional<m
edia::learning::Value> &>' requested here
: public is_assignable<_Tp&, const _Tp&>
^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/8.3.0/../../../../include/c++/8.3.0/type_traits:1067:14: note: in
instantiation of template class 'std::__is_copy_assignable_impl<base::Optional<media::learning::Value>, true>' requested here
: public __is_copy_assignable_impl<_Tp>
^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/8.3.0/../../../../include/c++/8.3.0/bits/stl_uninitialized.h:579:
33: note: in instantiation of template class 'std::is_copy_assignable<base::Optional<media::learning::Value> >' requested here
const bool __assignable = is_copy_assignable<_ValueType>::value;
^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/8.3.0/../../../../include/c++/8.3.0/bits/stl_uninitialized.h:645:
19: note: in instantiation of function template specialization 'std::__uninitialized_default_n<base::Optional<media::
learning::Value> *, unsigned long>' requested here
^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/8.3.0/../../../../include/c++/8.3.0/bits/vector.tcc:596:8: note:
in instantiation of function template specialization 'std::__uninitialized_default_n_a<base::Optional<media::learning
::Value> *, unsigned long, base::Optional<media::learning::Value> >' requested here
std::__uninitialized_default_n_a(this->_M_impl._M_finish,
^
/usr/bin/../lib64/gcc/x86_64-openmandriva-linux-gnu/8.3.0/../../../../include/c++/8.3.0/bits/stl_vector.h:827:4: note
: in instantiation of member function 'std::vector<base::Optional<media::learning::Value>, std::allocator<base::Optio
nal<media::learning::Value> > >::_M_default_append' requested here
_M_default_append(__new_size - size());
^
../../../../src/3rdparty/chromium/media/learning/impl/random_tree_trainer.cc:190:18: note: in instantiation of member
function 'std::vector<base::Optional<media::learning::Value>, std::allocator<base::Optional<media::learning::Value>
> >::resize' requested here
feature_values.resize(training_data[0].features.size());
^
2 errors generated.
Attachments
For Gerrit Dashboard: QTBUG-75265 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
259702,3 | Fix building with linux-clang mkspec | 73-based | qt/qtwebengine-chromium | Status: MERGED | +2 | 0 |
260954,2 | Fix clang build with libstdc++8 | 5.13.0 | qt/qtwebengine | Status: MERGED | +2 | 0 |
263167,1 | Fix clang build with libstdc++8 | dev | qt/qtwebengine | Status: ABANDONED | 0 | 0 |