New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 816952 link

Starred by 3 users

Issue metadata

Status: Verified
Owner:
Last visit > 30 days ago
Closed: Mar 2018
Cc:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: ----
Type: Bug-Regression



Sign in to add a comment

Build failure: GCC 7.x fails to compile base::Optional<WTF::Vector<mojo::InterfacePtrInfo<Any> > >

Project Member Reported by jose.dap...@lge.com, Feb 27 2018

Issue description

Still getting base::Optional build issues in GCC 7.x.

Custom GCC build (with is_clang=false) on GCC 7.2 on Ubuntu artful.

g++ -MMD -MF obj/media/mojo/interfaces/interfaces_blink/renderer.mojom-blink.o.d -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=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 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 -DWEBP_EXTERN=extern -DGL_GLEXT_PROTOTYPES -DUSE_GLX -DUSE_EGL -DWTF_USE_WEBAUDIO_FFMPEG=1 -DWTF_USE_DEFAULT_RENDER_THEME=1 -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DUCHAR_TYPE=uint16_t -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DHAVE_PTHREAD -DSK_IGNORE_LINEONLY_AA_CONVEX_PATH_OPTS -DSK_HAS_PNG_LIBRARY -DSK_HAS_WEBP_LIBRARY -DSK_HAS_JPEG_LIBRARY -DSK_SUPPORT_GPU=1 -I../.. -Igen -I../../build/linux/debian_sid_amd64-sysroot/usr/include/glib-2.0 -I../../build/linux/debian_sid_amd64-sysroot/usr/lib/x86_64-linux-gnu/glib-2.0/include -I../../third_party/libwebp/src -I../../third_party/libyuv/include -I../../third_party/khronos -I../../gpu -I../../third_party/WebKit/Source -I../../third_party/WebKit -Igen/blink -Igen/third_party/WebKit -I../../third_party/icu/source/common -I../../third_party/icu/source/i18n -I../../third_party/protobuf/src -I../../third_party/ced/src -I../../skia/config -I../../skia/ext -I../../third_party/skia/include/c -I../../third_party/skia/include/config -I../../third_party/skia/include/core -I../../third_party/skia/include/effects -I../../third_party/skia/include/encode -I../../third_party/skia/include/gpu -I../../third_party/skia/include/images -I../../third_party/skia/include/lazy -I../../third_party/skia/include/pathops -I../../third_party/skia/include/pdf -I../../third_party/skia/include/pipe -I../../third_party/skia/include/ports -I../../third_party/skia/include/utils -I../../third_party/skia/src/gpu -I../../third_party/skia/src/sksl -fno-strict-aliasing --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 -m64 -march=x86-64 -Wall -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-missing-field-initializers -Wno-unused-parameter -O2 -fno-ident -fdata-sections -ffunction-sections -fno-omit-frame-pointer -g2 -fno-builtin-abs -fvisibility=hidden -std=gnu++14 -Wno-narrowing -fno-exceptions -fno-rtti -nostdinc++ -isystem../../buildtools/third_party/libc++/trunk/include -isystem../../buildtools/third_party/libc++abi/trunk/include --sysroot=../../build/linux/debian_sid_amd64-sysroot -fvisibility-inlines-hidden -c gen/media/mojo/interfaces/renderer.mojom-blink.cc -o obj/media/mojo/interfaces/interfaces_blink/renderer.mojom-blink.o
In file included from ../../third_party/WebKit/Source/platform/wtf/HashMap.h:25:0,
                 from ../../mojo/public/cpp/bindings/lib/wtf_clone_equals_util.h:12,
                 from gen/gpu/ipc/common/mailbox.mojom-blink.h:30,
                 from gen/gpu/ipc/common/mailbox_holder.mojom-blink.h:29,
                 from gen/media/mojo/interfaces/media_types.mojom-blink.h:29,
                 from gen/media/mojo/interfaces/demuxer_stream.mojom-blink.h:29,
                 from gen/media/mojo/interfaces/renderer.mojom-blink.h:29,
                 from gen/media/mojo/interfaces/renderer.mojom-blink.cc:15:
../../third_party/WebKit/Source/platform/wtf/ConstructTraits.h: In instantiation of ‘static T* WTF::ConstructTraits<T, Traits, Allocator>::ConstructAndNotifyElement(void*, Args&& ...) [with Args = {const mojo::InterfacePtrInfo<media::mojom::blink::DemuxerStream>&}; T = mojo::InterfacePtrInfo<media::mojom::blink::DemuxerStream>; Traits = WTF::VectorTraits<mojo::InterfacePtrInfo<media::mojom::blink::DemuxerStream> >; Allocator = WTF::PartitionAllocator]’:
../../third_party/WebKit/Source/platform/wtf/Vector.h:227:80:   required from ‘static void WTF::VectorCopier<false, T, Allocator>::UninitializedCopy(const U*, const U*, T*) [with U = mojo::InterfacePtrInfo<media::mojom::blink::DemuxerStream>; T = mojo::InterfacePtrInfo<media::mojom::blink::DemuxerStream>; Allocator = WTF::PartitionAllocator]’
../../third_party/WebKit/Source/platform/wtf/Vector.h:357:47:   required from ‘static void WTF::VectorTypeOperations<T, Allocator>::UninitializedCopy(const T*, const T*, T*) [with T = mojo::InterfacePtrInfo<media::mojom::blink::DemuxerStream>; Allocator = WTF::PartitionAllocator]’
../../third_party/WebKit/Source/platform/wtf/Vector.h:1400:36:   required from ‘WTF::Vector<T, inlineCapacity, Allocator>::Vector(const WTF::Vector<T, inlineCapacity, Allocator>&) [with T = mojo::InterfacePtrInfo<media::mojom::blink::DemuxerStream>; long unsigned int inlineCapacity = 0; Allocator = WTF::PartitionAllocator]’
../../buildtools/third_party/libc++/trunk/include/type_traits:3433:29:   required from ‘struct std::__1::is_trivially_constructible<WTF::Vector<mojo::InterfacePtrInfo<media::mojom::blink::DemuxerStream> >, const WTF::Vector<mojo::InterfacePtrInfo<media::mojom::blink::DemuxerStream>, 0, WTF::PartitionAllocator>&>’
../../buildtools/third_party/libc++/trunk/include/type_traits:3573:50:   required from ‘struct std::__1::is_trivially_copy_constructible<WTF::Vector<mojo::InterfacePtrInfo<media::mojom::blink::DemuxerStream> > >’
../../base/template_util.h:137:8:   required from ‘struct base::is_trivially_copy_constructible<WTF::Vector<mojo::InterfacePtrInfo<media::mojom::blink::DemuxerStream> > >’
../../base/optional.h:290:22:   required from ‘class base::internal::OptionalBase<WTF::Vector<mojo::InterfacePtrInfo<media::mojom::blink::DemuxerStream> > >’
../../base/optional.h:416:7:   required from ‘class base::Optional<WTF::Vector<mojo::InterfacePtrInfo<media::mojom::blink::DemuxerStream> > >’
gen/media/mojo/interfaces/renderer.mojom-blink.cc:100:273:   required from here
../../third_party/WebKit/Source/platform/wtf/ConstructTraits.h:26:17: error: ‘mojo::InterfacePtrInfo<Interface>::InterfacePtrInfo(const mojo::InterfacePtrInfo<Interface>&) [with Interface = media::mojom::blink::DemuxerStream]’ is private within this context
     T* object = new (NotNull, location) T(std::forward<Args>(args)...);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../base/callback_internal.h:13:0,
                 from ../../base/callback.h:12,
                 from gen/media/mojo/interfaces/renderer.mojom-blink.h:14,
                 from gen/media/mojo/interfaces/renderer.mojom-blink.cc:15:
../../mojo/public/cpp/bindings/interface_ptr_info.h:63:28: note: declared private here
   DISALLOW_COPY_AND_ASSIGN(InterfacePtrInfo);
                            ^
../../base/macros.h:27:3: note: in definition of macro ‘DISALLOW_COPY’
   TypeName(const TypeName&) = delete
   ^~~~~~~~
../../mojo/public/cpp/bindings/interface_ptr_info.h:63:3: note: in expansion of macro ‘DISALLOW_COPY_AND_ASSIGN’
   DISALLOW_COPY_AND_ASSIGN(InterfacePtrInfo);
   ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../third_party/WebKit/Source/platform/wtf/HashMap.h:25:0,
                 from ../../mojo/public/cpp/bindings/lib/wtf_clone_equals_util.h:12,
                 from gen/gpu/ipc/common/mailbox.mojom-blink.h:30,
                 from gen/gpu/ipc/common/mailbox_holder.mojom-blink.h:29,
                 from gen/media/mojo/interfaces/media_types.mojom-blink.h:29,
                 from gen/media/mojo/interfaces/demuxer_stream.mojom-blink.h:29,
                 from gen/media/mojo/interfaces/renderer.mojom-blink.h:29,
                 from gen/media/mojo/interfaces/renderer.mojom-blink.cc:15:
../../third_party/WebKit/Source/platform/wtf/ConstructTraits.h:26:17: error: use of deleted function ‘mojo::InterfacePtrInfo<Interface>::InterfacePtrInfo(const mojo::InterfacePtrInfo<Interface>&) [with Interface = media::mojom::blink::DemuxerStream]’
     T* object = new (NotNull, location) T(std::forward<Args>(args)...);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../base/callback_internal.h:13:0,
                 from ../../base/callback.h:12,
                 from gen/media/mojo/interfaces/renderer.mojom-blink.h:14,
                 from gen/media/mojo/interfaces/renderer.mojom-blink.cc:15:
../../mojo/public/cpp/bindings/interface_ptr_info.h:63:28: note: declared here
   DISALLOW_COPY_AND_ASSIGN(InterfacePtrInfo);
                            ^
../../base/macros.h:27:3: note: in definition of macro ‘DISALLOW_COPY’
   TypeName(const TypeName&) = delete
   ^~~~~~~~
../../mojo/public/cpp/bindings/interface_ptr_info.h:63:3: note: in expansion of macro ‘DISALLOW_COPY_AND_ASSIGN’
   DISALLOW_COPY_AND_ASSIGN(InterfacePtrInfo);
   ^~~~~~~~~~~~~~~~~~~~~~~~

 
I've been trying to inhibit the copy constructor of WTF::Vector<T> when T is not copiable, but still couldn't find a way to make it work.

The idea was making WTF::Vector have a 4th parameter (bool isCopyT) that would be assigned by default to std::is_copy_constructible<T>::value, and delete the Vector copy constructor when iscopyT is false. But still I find lots of compilation issues.

I tried also a similar approach to the one for std::vector (make base::is_trivially_copy_constructible<WTF::Vector<T...>> inherit form false type) but that declaration is ignored and it still tried to call std::is_trivially_copy_constructible for WTF::Vector.
Owner: jose.dap...@lge.com
Status: Started (was: Untriaged)
Found a way to fix the compilation in GCC 7.x for the build problem. It is basically very similar approach to the one used for std::vector. Will send a patch for review soon.
Cc: hidehiko@chromium.org danakj@chromium.org
This is the fix:
https://chromium-review.googlesource.com/c/chromium/src/+/944404/2

I will proceed with the full GCC fix review chain including this fix in next days.
Project Member

Comment 5 by bugdroid1@chromium.org, Mar 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f64fadcd79aebe5ed893ecbf258d1123609d28f8

commit f64fadcd79aebe5ed893ecbf258d1123609d28f8
Author: Jose Dapena Paz <jose.dapena@lge.com>
Date: Wed Mar 07 18:50:50 2018

GCC build fix: mark is_trivially_copy_constructible for WTF::Vector as false.

Compilation in GCC fails because of https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80654
if T in WTF::Optional<WTF::Vector<T>> is not trivially copy constructible.
The problem already happened in std::vector and was workarounded. This
change implements a similar fix for WTF::Vector.

Bug:  816952 

Change-Id: If87f01beb952e03eb49dcaf0c5db6efd745bf05e
Reviewed-on: https://chromium-review.googlesource.com/944404
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541516}
[modify] https://crrev.com/f64fadcd79aebe5ed893ecbf258d1123609d28f8/third_party/WebKit/Source/platform/wtf/DEPS
[modify] https://crrev.com/f64fadcd79aebe5ed893ecbf258d1123609d28f8/third_party/WebKit/Source/platform/wtf/Vector.h

Comment 6 by re...@rezso.net, Mar 8 2018

Similar error in webui:

FAILED: obj/chrome/browser/ui/webui/discards/mojo_bindings_shared_cpp_sources/discards.mojom-shared.o 
g++ -MMD -MF obj/chrome/browser/ui/webui/discards/mojo_bindings_shared_cpp_sources/discards.mojom-shared.o.d -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DNO_TCMALLOC -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 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_54 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 -I../.. -Igen -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -pthread -m32 -msse2 -mfpmath=sse -mmmx -Wall -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-missing-field-initializers -Wno-unused-parameter -O2 -fno-ident -fdata-sections -ffunction-sections -fno-omit-frame-pointer -g0 -fvisibility=hidden -std=gnu++14 -Wno-narrowing -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -c gen/chrome/browser/ui/webui/discards/discards.mojom-shared.cc -o obj/chrome/browser/ui/webui/discards/mojo_bindings_shared_cpp_sources/discards.mojom-shared.o
In file included from /usr/include/c++/7.2.0/memory:64:0,
                 from ../../mojo/public/cpp/system/buffer.h:17,
                 from ../../mojo/public/cpp/system/core.h:8,
                 from ../../mojo/public/cpp/bindings/lib/bindings_internal.h:16,
                 from ../../mojo/public/cpp/bindings/lib/array_internal.h:18,
                 from ../../mojo/public/cpp/bindings/array_data_view.h:10,
                 from gen/chrome/browser/ui/webui/discards/discards.mojom-shared.h:16,
                 from gen/chrome/browser/ui/webui/discards/discards.mojom-shared.cc:10:
/usr/include/c++/7.2.0/bits/stl_construct.h: In instantiation of 'void std::_Construct(_T1*, _Args&& ...) [with _T1 = mojo::StructPtr<mojo::native::SerializedHandle>; _Args = {const mojo::StructPtr<mojo::native::SerializedHandle>&}]':
/usr/include/c++/7.2.0/bits/stl_uninitialized.h:83:18:   required from 'static _ForwardIterator std::__uninitialized_copy<_TrivialValueTypes>::__uninit_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const mojo::StructPtr<mojo::native::SerializedHandle>*, std::vector<mojo::StructPtr<mojo::native::SerializedHandle> > >; _ForwardIterator = mojo::StructPtr<mojo::native::SerializedHandle>*; bool _TrivialValueTypes = false]'
/usr/include/c++/7.2.0/bits/stl_uninitialized.h:134:15:   required from '_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const mojo::StructPtr<mojo::native::SerializedHandle>*, std::vector<mojo::StructPtr<mojo::native::SerializedHandle> > >; _ForwardIterator = mojo::StructPtr<mojo::native::SerializedHandle>*]'
/usr/include/c++/7.2.0/bits/stl_uninitialized.h:289:37:   required from '_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, std::allocator<_Tp>&) [with _InputIterator = __gnu_cxx::__normal_iterator<const mojo::StructPtr<mojo::native::SerializedHandle>*, std::vector<mojo::StructPtr<mojo::native::SerializedHandle> > >; _ForwardIterator = mojo::StructPtr<mojo::native::SerializedHandle>*; _Tp = mojo::StructPtr<mojo::native::SerializedHandle>]'
/usr/include/c++/7.2.0/bits/stl_vector.h:331:31:   required from 'std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&) [with _Tp = mojo::StructPtr<mojo::native::SerializedHandle>; _Alloc = std::allocator<mojo::StructPtr<mojo::native::SerializedHandle> >]'
/usr/include/c++/7.2.0/type_traits:1409:12:   required from 'struct std::is_trivially_copy_constructible<std::vector<mojo::StructPtr<mojo::native::SerializedHandle> > >'
../../base/optional.h:247:22:   required from 'class base::internal::OptionalBase<std::vector<mojo::StructPtr<mojo::native::SerializedHandle> > >'
../../base/optional.h:264:7:   required from 'class base::Optional<std::vector<mojo::StructPtr<mojo::native::SerializedHandle> > >'
gen/mojo/public/interfaces/bindings/native_struct.mojom.h:268:52:   required from here
/usr/include/c++/7.2.0/bits/stl_construct.h:75:7: error: 'mojo::StructPtr<S>::StructPtr(const mojo::StructPtr<S>&) [with S = mojo::native::SerializedHandle]' is private within this context
     { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../base/logging.h:21:0,
                 from ../../mojo/public/cpp/bindings/lib/array_internal.h:14,
                 from ../../mojo/public/cpp/bindings/array_data_view.h:10,
                 from gen/chrome/browser/ui/webui/discards/discards.mojom-shared.h:16,
                 from gen/chrome/browser/ui/webui/discards/discards.mojom-shared.cc:10:
../../mojo/public/cpp/bindings/struct_ptr.h:110:28: note: declared private here
   DISALLOW_COPY_AND_ASSIGN(StructPtr);
                            ^
../../base/macros.h:27:3: note: in definition of macro 'DISALLOW_COPY'
   TypeName(const TypeName&) = delete
   ^~~~~~~~
../../mojo/public/cpp/bindings/struct_ptr.h:110:3: note: in expansion of macro 'DISALLOW_COPY_AND_ASSIGN'
   DISALLOW_COPY_AND_ASSIGN(StructPtr);
   ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7.2.0/memory:64:0,
                 from ../../mojo/public/cpp/system/buffer.h:17,
                 from ../../mojo/public/cpp/system/core.h:8,
                 from ../../mojo/public/cpp/bindings/lib/bindings_internal.h:16,
                 from ../../mojo/public/cpp/bindings/lib/array_internal.h:18,
                 from ../../mojo/public/cpp/bindings/array_data_view.h:10,
                 from gen/chrome/browser/ui/webui/discards/discards.mojom-shared.h:16,
                 from gen/chrome/browser/ui/webui/discards/discards.mojom-shared.cc:10:
/usr/include/c++/7.2.0/bits/stl_construct.h:75:7: error: use of deleted function 'mojo::StructPtr<S>::StructPtr(const mojo::StructPtr<S>&) [with S = mojo::native::SerializedHandle]'
     { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../base/logging.h:21:0,
                 from ../../mojo/public/cpp/bindings/lib/array_internal.h:14,
                 from ../../mojo/public/cpp/bindings/array_data_view.h:10,
                 from gen/chrome/browser/ui/webui/discards/discards.mojom-shared.h:16,
                 from gen/chrome/browser/ui/webui/discards/discards.mojom-shared.cc:10:
../../mojo/public/cpp/bindings/struct_ptr.h:110:28: note: declared here
   DISALLOW_COPY_AND_ASSIGN(StructPtr);
                            ^
../../base/macros.h:27:3: note: in definition of macro 'DISALLOW_COPY'
   TypeName(const TypeName&) = delete
   ^~~~~~~~
../../mojo/public/cpp/bindings/struct_ptr.h:110:3: note: in expansion of macro 'DISALLOW_COPY_AND_ASSIGN'
   DISALLOW_COPY_AND_ASSIGN(StructPtr);
   ^~~~~~~~~~~~~~~~~~~~~~~~
[2239/32537] g++ -MMD -MF obj/chrome/browser/ui/webui/omnibox/mojo_bindings/omnibox.mojom.o.d -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DNO_TCMALLOC -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 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_54 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 -I../.. -Igen -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -pthread -m32 -msse2 -mfpmath=sse -mmmx -Wall -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-missing-field-initializers -Wno-unused-parameter -O2 -fno-ident -fdata-sections -ffunction-sections -fno-omit-frame-pointer -g0 -fvisibility=hidden -std=gnu++14 -Wno-narrowing -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -c gen/chrome/browser/ui/webui/omnibox/omnibox.mojom.cc -o obj/chrome/browser/ui/webui/omnibox/mojo_bindings/omnibox.mojom.o
FAILED: obj/chrome/browser/ui/webui/omnibox/mojo_bindings/omnibox.mojom.o 
g++ -MMD -MF obj/chrome/browser/ui/webui/omnibox/mojo_bindings/omnibox.mojom.o.d -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DNO_TCMALLOC -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 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_54 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 -I../.. -Igen -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -pthread -m32 -msse2 -mfpmath=sse -mmmx -Wall -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-missing-field-initializers -Wno-unused-parameter -O2 -fno-ident -fdata-sections -ffunction-sections -fno-omit-frame-pointer -g0 -fvisibility=hidden -std=gnu++14 -Wno-narrowing -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -c gen/chrome/browser/ui/webui/omnibox/omnibox.mojom.cc -o obj/chrome/browser/ui/webui/omnibox/mojo_bindings/omnibox.mojom.o
In file included from /usr/include/c++/7.2.0/memory:64:0,
                 from ../../base/sequence_checker_impl.h:8,
                 from ../../base/sequence_checker.h:10,
                 from ../../base/memory/ref_counted.h:18,
                 from ../../base/callback_internal.h:14,
                 from ../../base/callback.h:9,
                 from gen/chrome/browser/ui/webui/omnibox/omnibox.mojom.h:14,
                 from gen/chrome/browser/ui/webui/omnibox/omnibox.mojom.cc:15:
/usr/include/c++/7.2.0/bits/stl_construct.h: In instantiation of 'void std::_Construct(_T1*, _Args&& ...) [with _T1 = mojo::StructPtr<mojo::native::SerializedHandle>; _Args = {const mojo::StructPtr<mojo::native::SerializedHandle>&}]':
/usr/include/c++/7.2.0/bits/stl_uninitialized.h:83:18:   required from 'static _ForwardIterator std::__uninitialized_copy<_TrivialValueTypes>::__uninit_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const mojo::StructPtr<mojo::native::SerializedHandle>*, std::vector<mojo::StructPtr<mojo::native::SerializedHandle> > >; _ForwardIterator = mojo::StructPtr<mojo::native::SerializedHandle>*; bool _TrivialValueTypes = false]'
/usr/include/c++/7.2.0/bits/stl_uninitialized.h:134:15:   required from '_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const mojo::StructPtr<mojo::native::SerializedHandle>*, std::vector<mojo::StructPtr<mojo::native::SerializedHandle> > >; _ForwardIterator = mojo::StructPtr<mojo::native::SerializedHandle>*]'
/usr/include/c++/7.2.0/bits/stl_uninitialized.h:289:37:   required from '_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, std::allocator<_Tp>&) [with _InputIterator = __gnu_cxx::__normal_iterator<const mojo::StructPtr<mojo::native::SerializedHandle>*, std::vector<mojo::StructPtr<mojo::native::SerializedHandle> > >; _ForwardIterator = mojo::StructPtr<mojo::native::SerializedHandle>*; _Tp = mojo::StructPtr<mojo::native::SerializedHandle>]'
/usr/include/c++/7.2.0/bits/stl_vector.h:331:31:   required from 'std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&) [with _Tp = mojo::StructPtr<mojo::native::SerializedHandle>; _Alloc = std::allocator<mojo::StructPtr<mojo::native::SerializedHandle> >]'
/usr/include/c++/7.2.0/type_traits:1409:12:   required from 'struct std::is_trivially_copy_constructible<std::vector<mojo::StructPtr<mojo::native::SerializedHandle> > >'
../../base/optional.h:247:22:   required from 'class base::internal::OptionalBase<std::vector<mojo::StructPtr<mojo::native::SerializedHandle> > >'
../../base/optional.h:264:7:   required from 'class base::Optional<std::vector<mojo::StructPtr<mojo::native::SerializedHandle> > >'
gen/mojo/public/interfaces/bindings/native_struct.mojom.h:268:52:   required from here
/usr/include/c++/7.2.0/bits/stl_construct.h:75:7: error: 'mojo::StructPtr<S>::StructPtr(const mojo::StructPtr<S>&) [with S = mojo::native::SerializedHandle]' is private within this context
     { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../base/callback_internal.h:13:0,
                 from ../../base/callback.h:9,
                 from gen/chrome/browser/ui/webui/omnibox/omnibox.mojom.h:14,
                 from gen/chrome/browser/ui/webui/omnibox/omnibox.mojom.cc:15:
../../mojo/public/cpp/bindings/struct_ptr.h:110:28: note: declared private here
   DISALLOW_COPY_AND_ASSIGN(StructPtr);
                            ^
../../base/macros.h:27:3: note: in definition of macro 'DISALLOW_COPY'
   TypeName(const TypeName&) = delete
   ^~~~~~~~
../../mojo/public/cpp/bindings/struct_ptr.h:110:3: note: in expansion of macro 'DISALLOW_COPY_AND_ASSIGN'
   DISALLOW_COPY_AND_ASSIGN(StructPtr);
   ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7.2.0/memory:64:0,
                 from ../../base/sequence_checker_impl.h:8,
                 from ../../base/sequence_checker.h:10,
                 from ../../base/memory/ref_counted.h:18,
                 from ../../base/callback_internal.h:14,
                 from ../../base/callback.h:9,
                 from gen/chrome/browser/ui/webui/omnibox/omnibox.mojom.h:14,
                 from gen/chrome/browser/ui/webui/omnibox/omnibox.mojom.cc:15:
/usr/include/c++/7.2.0/bits/stl_construct.h:75:7: error: use of deleted function 'mojo::StructPtr<S>::StructPtr(const mojo::StructPtr<S>&) [with S = mojo::native::SerializedHandle]'
     { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../base/callback_internal.h:13:0,
                 from ../../base/callback.h:9,
                 from gen/chrome/browser/ui/webui/omnibox/omnibox.mojom.h:14,
                 from gen/chrome/browser/ui/webui/omnibox/omnibox.mojom.cc:15:
../../mojo/public/cpp/bindings/struct_ptr.h:110:28: note: declared here
   DISALLOW_COPY_AND_ASSIGN(StructPtr);
                            ^
../../base/macros.h:27:3: note: in definition of macro 'DISALLOW_COPY'
   TypeName(const TypeName&) = delete
   ^~~~~~~~
../../mojo/public/cpp/bindings/struct_ptr.h:110:3: note: in expansion of macro 'DISALLOW_COPY_AND_ASSIGN'
   DISALLOW_COPY_AND_ASSIGN(StructPtr);
   ^~~~~~~~~~~~~~~~~~~~~~~~

Is webui still failing to build after the patch landed in comment 5? I can now cleanly build on GCC (only pending patch is unrelated to base::Optional).

Comment 8 Deleted

Comment 9 by re...@rezso.net, Mar 8 2018

And a new failure, after applying patch in comment 5, which is solved the previous failure (in comment 6):

[2286/32534] g++ -MMD -MF obj/chrome/browser/ui/webui/bluetooth_internals/mojo_bindings_shared_cpp_sources/bluetooth_internals.mojom-shared.o.d -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DNO_TCMALLOC -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 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_54 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 -I../.. -Igen -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -pthread -m64 -march=x86-64 -Wall -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-missing-field-initializers -Wno-unused-parameter -O2 -fno-ident -fdata-sections -ffunction-sections -fno-omit-frame-pointer -g0 -fvisibility=hidden -std=gnu++14 -Wno-narrowing -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -c gen/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals.mojom-shared.cc -o obj/chrome/browser/ui/webui/bluetooth_internals/mojo_bindings_shared_cpp_sources/bluetooth_internals.mojom-shared.o
FAILED: obj/chrome/browser/ui/webui/bluetooth_internals/mojo_bindings_shared_cpp_sources/bluetooth_internals.mojom-shared.o 
g++ -MMD -MF obj/chrome/browser/ui/webui/bluetooth_internals/mojo_bindings_shared_cpp_sources/bluetooth_internals.mojom-shared.o.d -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DNO_TCMALLOC -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 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_54 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 -I../.. -Igen -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -pthread -m64 -march=x86-64 -Wall -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-missing-field-initializers -Wno-unused-parameter -O2 -fno-ident -fdata-sections -ffunction-sections -fno-omit-frame-pointer -g0 -fvisibility=hidden -std=gnu++14 -Wno-narrowing -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -c gen/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals.mojom-shared.cc -o obj/chrome/browser/ui/webui/bluetooth_internals/mojo_bindings_shared_cpp_sources/bluetooth_internals.mojom-shared.o
In file included from /usr/include/c++/7.2.0/memory:64:0,
                 from ../../mojo/public/cpp/system/buffer.h:17,
                 from ../../mojo/public/cpp/system/core.h:8,
                 from ../../mojo/public/cpp/bindings/lib/bindings_internal.h:16,
                 from ../../mojo/public/cpp/bindings/lib/array_internal.h:18,
                 from ../../mojo/public/cpp/bindings/array_data_view.h:10,
                 from gen/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals.mojom-shared.h:16,
                 from gen/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals.mojom-shared.cc:10:
/usr/include/c++/7.2.0/bits/stl_construct.h: In instantiation of 'void std::_Construct(_T1*, _Args&& ...) [with _T1 = mojo::StructPtr<mojo::native::SerializedHandle>; _Args = {const mojo::StructPtr<mojo::native::SerializedHandle>&}]':
/usr/include/c++/7.2.0/bits/stl_uninitialized.h:83:18:   required from 'static _ForwardIterator std::__uninitialized_copy<_TrivialValueTypes>::__uninit_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const mojo::StructPtr<mojo::native::SerializedHandle>*, std::vector<mojo::StructPtr<mojo::native::SerializedHandle> > >; _ForwardIterator = mojo::StructPtr<mojo::native::SerializedHandle>*; bool _TrivialValueTypes = false]'
/usr/include/c++/7.2.0/bits/stl_uninitialized.h:134:15:   required from '_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const mojo::StructPtr<mojo::native::SerializedHandle>*, std::vector<mojo::StructPtr<mojo::native::SerializedHandle> > >; _ForwardIterator = mojo::StructPtr<mojo::native::SerializedHandle>*]'
/usr/include/c++/7.2.0/bits/stl_uninitialized.h:289:37:   required from '_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, std::allocator<_Tp>&) [with _InputIterator = __gnu_cxx::__normal_iterator<const mojo::StructPtr<mojo::native::SerializedHandle>*, std::vector<mojo::StructPtr<mojo::native::SerializedHandle> > >; _ForwardIterator = mojo::StructPtr<mojo::native::SerializedHandle>*; _Tp = mojo::StructPtr<mojo::native::SerializedHandle>]'
/usr/include/c++/7.2.0/bits/stl_vector.h:331:31:   required from 'std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&) [with _Tp = mojo::StructPtr<mojo::native::SerializedHandle>; _Alloc = std::allocator<mojo::StructPtr<mojo::native::SerializedHandle> >]'
/usr/include/c++/7.2.0/type_traits:1409:12:   required from 'struct std::is_trivially_copy_constructible<std::vector<mojo::StructPtr<mojo::native::SerializedHandle> > >'
../../base/optional.h:247:22:   required from 'class base::internal::OptionalBase<std::vector<mojo::StructPtr<mojo::native::SerializedHandle> > >'
../../base/optional.h:264:7:   required from 'class base::Optional<std::vector<mojo::StructPtr<mojo::native::SerializedHandle> > >'
gen/mojo/public/interfaces/bindings/native_struct.mojom.h:268:52:   required from here
/usr/include/c++/7.2.0/bits/stl_construct.h:75:7: error: 'mojo::StructPtr<S>::StructPtr(const mojo::StructPtr<S>&) [with S = mojo::native::SerializedHandle]' is private within this context
     { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../base/logging.h:21:0,
                 from ../../mojo/public/cpp/bindings/lib/array_internal.h:14,
                 from ../../mojo/public/cpp/bindings/array_data_view.h:10,
                 from gen/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals.mojom-shared.h:16,
                 from gen/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals.mojom-shared.cc:10:
../../mojo/public/cpp/bindings/struct_ptr.h:110:28: note: declared private here
   DISALLOW_COPY_AND_ASSIGN(StructPtr);
                            ^
../../base/macros.h:27:3: note: in definition of macro 'DISALLOW_COPY'
   TypeName(const TypeName&) = delete
   ^~~~~~~~
../../mojo/public/cpp/bindings/struct_ptr.h:110:3: note: in expansion of macro 'DISALLOW_COPY_AND_ASSIGN'
   DISALLOW_COPY_AND_ASSIGN(StructPtr);
   ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7.2.0/memory:64:0,
                 from ../../mojo/public/cpp/system/buffer.h:17,
                 from ../../mojo/public/cpp/system/core.h:8,
                 from ../../mojo/public/cpp/bindings/lib/bindings_internal.h:16,
                 from ../../mojo/public/cpp/bindings/lib/array_internal.h:18,
                 from ../../mojo/public/cpp/bindings/array_data_view.h:10,
                 from gen/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals.mojom-shared.h:16,
                 from gen/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals.mojom-shared.cc:10:
/usr/include/c++/7.2.0/bits/stl_construct.h:75:7: error: use of deleted function 'mojo::StructPtr<S>::StructPtr(const mojo::StructPtr<S>&) [with S = mojo::native::SerializedHandle]'
     { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../base/logging.h:21:0,
                 from ../../mojo/public/cpp/bindings/lib/array_internal.h:14,
                 from ../../mojo/public/cpp/bindings/array_data_view.h:10,
                 from gen/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals.mojom-shared.h:16,
                 from gen/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals.mojom-shared.cc:10:
../../mojo/public/cpp/bindings/struct_ptr.h:110:28: note: declared here
   DISALLOW_COPY_AND_ASSIGN(StructPtr);
                            ^
../../base/macros.h:27:3: note: in definition of macro 'DISALLOW_COPY'
   TypeName(const TypeName&) = delete
   ^~~~~~~~
../../mojo/public/cpp/bindings/struct_ptr.h:110:3: note: in expansion of macro 'DISALLOW_COPY_AND_ASSIGN'
   DISALLOW_COPY_AND_ASSIGN(StructPtr);
   ^~~~~~~~~~~~~~~~~~~~~~~~
[2287/32534] g++ -MMD -MF obj/chrome/browser/ui/webui/omnibox/mojo_bindings/omnibox.mojom.o.d -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DNO_TCMALLOC -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 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_54 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 -I../.. -Igen -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -pthread -m64 -march=x86-64 -Wall -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-missing-field-initializers -Wno-unused-parameter -O2 -fno-ident -fdata-sections -ffunction-sections -fno-omit-frame-pointer -g0 -fvisibility=hidden -std=gnu++14 -Wno-narrowing -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -c gen/chrome/browser/ui/webui/omnibox/omnibox.mojom.cc -o obj/chrome/browser/ui/webui/omnibox/mojo_bindings/omnibox.mojom.o
FAILED: obj/chrome/browser/ui/webui/omnibox/mojo_bindings/omnibox.mojom.o 
g++ -MMD -MF obj/chrome/browser/ui/webui/omnibox/mojo_bindings/omnibox.mojom.o.d -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DNO_TCMALLOC -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 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_54 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 -I../.. -Igen -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -pthread -m64 -march=x86-64 -Wall -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-missing-field-initializers -Wno-unused-parameter -O2 -fno-ident -fdata-sections -ffunction-sections -fno-omit-frame-pointer -g0 -fvisibility=hidden -std=gnu++14 -Wno-narrowing -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -c gen/chrome/browser/ui/webui/omnibox/omnibox.mojom.cc -o obj/chrome/browser/ui/webui/omnibox/mojo_bindings/omnibox.mojom.o
In file included from /usr/include/c++/7.2.0/memory:64:0,
                 from ../../base/sequence_checker_impl.h:8,
                 from ../../base/sequence_checker.h:10,
                 from ../../base/memory/ref_counted.h:18,
                 from ../../base/callback_internal.h:14,
                 from ../../base/callback.h:9,
                 from gen/chrome/browser/ui/webui/omnibox/omnibox.mojom.h:14,
                 from gen/chrome/browser/ui/webui/omnibox/omnibox.mojom.cc:15:
/usr/include/c++/7.2.0/bits/stl_construct.h: In instantiation of 'void std::_Construct(_T1*, _Args&& ...) [with _T1 = mojo::StructPtr<mojo::native::SerializedHandle>; _Args = {const mojo::StructPtr<mojo::native::SerializedHandle>&}]':
/usr/include/c++/7.2.0/bits/stl_uninitialized.h:83:18:   required from 'static _ForwardIterator std::__uninitialized_copy<_TrivialValueTypes>::__uninit_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const mojo::StructPtr<mojo::native::SerializedHandle>*, std::vector<mojo::StructPtr<mojo::native::SerializedHandle> > >; _ForwardIterator = mojo::StructPtr<mojo::native::SerializedHandle>*; bool _TrivialValueTypes = false]'
/usr/include/c++/7.2.0/bits/stl_uninitialized.h:134:15:   required from '_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const mojo::StructPtr<mojo::native::SerializedHandle>*, std::vector<mojo::StructPtr<mojo::native::SerializedHandle> > >; _ForwardIterator = mojo::StructPtr<mojo::native::SerializedHandle>*]'
/usr/include/c++/7.2.0/bits/stl_uninitialized.h:289:37:   required from '_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, std::allocator<_Tp>&) [with _InputIterator = __gnu_cxx::__normal_iterator<const mojo::StructPtr<mojo::native::SerializedHandle>*, std::vector<mojo::StructPtr<mojo::native::SerializedHandle> > >; _ForwardIterator = mojo::StructPtr<mojo::native::SerializedHandle>*; _Tp = mojo::StructPtr<mojo::native::SerializedHandle>]'
/usr/include/c++/7.2.0/bits/stl_vector.h:331:31:   required from 'std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&) [with _Tp = mojo::StructPtr<mojo::native::SerializedHandle>; _Alloc = std::allocator<mojo::StructPtr<mojo::native::SerializedHandle> >]'
/usr/include/c++/7.2.0/type_traits:1409:12:   required from 'struct std::is_trivially_copy_constructible<std::vector<mojo::StructPtr<mojo::native::SerializedHandle> > >'
../../base/optional.h:247:22:   required from 'class base::internal::OptionalBase<std::vector<mojo::StructPtr<mojo::native::SerializedHandle> > >'
../../base/optional.h:264:7:   required from 'class base::Optional<std::vector<mojo::StructPtr<mojo::native::SerializedHandle> > >'
gen/mojo/public/interfaces/bindings/native_struct.mojom.h:268:52:   required from here
/usr/include/c++/7.2.0/bits/stl_construct.h:75:7: error: 'mojo::StructPtr<S>::StructPtr(const mojo::StructPtr<S>&) [with S = mojo::native::SerializedHandle]' is private within this context
     { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../base/callback_internal.h:13:0,
                 from ../../base/callback.h:9,
                 from gen/chrome/browser/ui/webui/omnibox/omnibox.mojom.h:14,
                 from gen/chrome/browser/ui/webui/omnibox/omnibox.mojom.cc:15:
../../mojo/public/cpp/bindings/struct_ptr.h:110:28: note: declared private here
   DISALLOW_COPY_AND_ASSIGN(StructPtr);
                            ^
../../base/macros.h:27:3: note: in definition of macro 'DISALLOW_COPY'
   TypeName(const TypeName&) = delete
   ^~~~~~~~
../../mojo/public/cpp/bindings/struct_ptr.h:110:3: note: in expansion of macro 'DISALLOW_COPY_AND_ASSIGN'
   DISALLOW_COPY_AND_ASSIGN(StructPtr);
   ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7.2.0/memory:64:0,
                 from ../../base/sequence_checker_impl.h:8,
                 from ../../base/sequence_checker.h:10,
                 from ../../base/memory/ref_counted.h:18,
                 from ../../base/callback_internal.h:14,
                 from ../../base/callback.h:9,
                 from gen/chrome/browser/ui/webui/omnibox/omnibox.mojom.h:14,
                 from gen/chrome/browser/ui/webui/omnibox/omnibox.mojom.cc:15:
/usr/include/c++/7.2.0/bits/stl_construct.h:75:7: error: use of deleted function 'mojo::StructPtr<S>::StructPtr(const mojo::StructPtr<S>&) [with S = mojo::native::SerializedHandle]'
     { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../base/callback_internal.h:13:0,
                 from ../../base/callback.h:9,
                 from gen/chrome/browser/ui/webui/omnibox/omnibox.mojom.h:14,
                 from gen/chrome/browser/ui/webui/omnibox/omnibox.mojom.cc:15:
../../mojo/public/cpp/bindings/struct_ptr.h:110:28: note: declared here
   DISALLOW_COPY_AND_ASSIGN(StructPtr);
                            ^
../../base/macros.h:27:3: note: in definition of macro 'DISALLOW_COPY'
   TypeName(const TypeName&) = delete
   ^~~~~~~~
../../mojo/public/cpp/bindings/struct_ptr.h:110:3: note: in expansion of macro 'DISALLOW_COPY_AND_ASSIGN'
   DISALLOW_COPY_AND_ASSIGN(StructPtr);
   ^~~~~~~~~~~~~~~~~~~~~~~~



For the build error in comment 9. What are you trying to build? As of yesterday I could complete a full build of Chromium master without adding a single patch (all the patches I needed have been already landed).

Could you specify the chromium tree version you are using (last tagged release), gcc version (seems 7.2.0), glibc version and the GN arguments?

Comment 11 by re...@rezso.net, Mar 9 2018

I try to compile 65.0.3325.146, which is the latest Stable Channel Update for Desktop.
gcc: 7.2.0
glibc: 2.26
gn args:

host_cpu=\"x64\"
target_cpu=\"x64\"
is_debug=false
is_clang=false
clang_use_chrome_plugins=false
linux_use_bundled_binutils=false
fatal_linker_warnings=false
treat_warnings_as_errors=false
fieldtrial_testing_like_official_build=false
use_sysroot=false
use_gold=false
use_allocator=\"none\"
enable_nacl=false
enable_nacl_nonsfi=false
enable_swiftshader=true
enable_widevine=false
enable_hangout_services_extension=false
ffmpeg_branding=\"Chrome\"
proprietary_codecs=true
remove_webcore_debug_symbols=true
use_cups=true
use_custom_libcxx=false
use_gio=false
use_gnome_keyring=false
use_gtk3=true
use_kerberos=false
use_pulseaudio=true
link_pulseaudio=true

Chromium 65.0.3325.146 does not include any of the gcc build fixes commented here. 

In case you need them, for building on 65, I am applying this series of patches on poky rocko:
https://github.com/lgsvl/meta-lgsvl-browser/blob/ac93e7622be66946c76504be6a1db8d644ae1e43/recipes-browser/chromium/chromium-x11-stable_65.0.3325.146.bb

I guess you may not need the glibc 2.27 fix, and you should not apply the two first patches (v8 changes for crosscompiling).

The other patches are a mix of the build fixes I did for GCC, and backporting some base::Optional changes.
Can we close the issue now that master's building fine with GCC again?
Status: Fixed (was: Started)
Yes, let's mark this as closed.
Status: Verified (was: Fixed)

Sign in to add a comment