* [Buildroot] [PATCH v6 0/4] chromium: new package @ 2018-07-10 23:42 Joseph Kogut 2018-07-10 23:42 ` [Buildroot] [PATCH v6 1/4] libgtk3: convert atk-bridge to optional dependency Joseph Kogut ` (3 more replies) 0 siblings, 4 replies; 23+ messages in thread From: Joseph Kogut @ 2018-07-10 23:42 UTC (permalink / raw) To: buildroot Changes since v5: - chromium: config cleanups - chromium: fix build issues caused by disabled sysroot - chromium: make cups dependency optional - chromium: make proprietary codecs optional - chromium: make pciutils dependency optional - chromium: make dbus dependency optional Changes since v4: - at-spi2-{core,atk}: rework dependencies - libgtk3: make atk-bridge an optional dependency - at-spi2-core: convert to meson-package infrastructure - chromium: define BR2_PACKAGE_CHROMIUM_ARCH_SUPPORTS - chromium: add host gcc >= 4.9.0 to depends - lld: convert to host-only package - fix check-package issues Changes since v3: - llvm: add separate TARGETS_TO_BUILD for host only - chromium: add upstream patch to fix ARM build w/ glibc 2.27 - chromium: disabled v8 snapshotting until the toolchain can be figured out - chromium: add missing dependencies when use_gtk3=false - chromium: check-package fixes Changes since v2: - patch chromium toolchain config for buildroot Changes since v1: - fix some cross compilation issues - chromium: bump version to 67.0.3396.79 - atk: bump version to 2.28.1 - lld: new package - chromium: use lld for linking - minor tweaks to variable naming and quotes Joseph Kogut (4): libgtk3: convert atk-bridge to optional dependency llvm: add config to build backend for host arch lld: new package chromium: new package DEVELOPERS | 2 + package/Config.in | 1 + package/Config.in.host | 2 + ...iler_cpu_abi-for-buildroot-toolchain.patch | 102 ++++++++++++ .../0002-Fix-arm-build-with-glibc-2.27.patch | 28 ++++ package/chromium/Config.in | 64 ++++++++ package/chromium/chromium.hash | 3 + package/chromium/chromium.mk | 146 ++++++++++++++++++ package/chromium/toolchain/BUILD.gn | 71 +++++++++ ...3-convert-atk-bridge-to-optional-dep.patch | 76 +++++++++ package/libgtk3/0003-disable-atk-bridge.patch | 45 ------ package/libgtk3/libgtk3.mk | 4 + package/lld/Config.in.host | 16 ++ package/lld/lld.hash | 3 + package/lld/lld.mk | 15 ++ package/llvm/Config.in.host | 18 +++ package/llvm/llvm.mk | 9 +- 17 files changed, 559 insertions(+), 46 deletions(-) create mode 100644 package/chromium/0001-modify-compiler_cpu_abi-for-buildroot-toolchain.patch create mode 100644 package/chromium/0002-Fix-arm-build-with-glibc-2.27.patch create mode 100644 package/chromium/Config.in create mode 100644 package/chromium/chromium.hash create mode 100644 package/chromium/chromium.mk create mode 100644 package/chromium/toolchain/BUILD.gn create mode 100644 package/libgtk3/0003-convert-atk-bridge-to-optional-dep.patch delete mode 100644 package/libgtk3/0003-disable-atk-bridge.patch create mode 100644 package/lld/Config.in.host create mode 100644 package/lld/lld.hash create mode 100644 package/lld/lld.mk create mode 100644 package/llvm/Config.in.host -- 2.18.0 ^ permalink raw reply [flat|nested] 23+ messages in thread
* [Buildroot] [PATCH v6 1/4] libgtk3: convert atk-bridge to optional dependency 2018-07-10 23:42 [Buildroot] [PATCH v6 0/4] chromium: new package Joseph Kogut @ 2018-07-10 23:42 ` Joseph Kogut 2018-07-10 23:42 ` [Buildroot] [PATCH v6 2/4] llvm: add config to build backend for host arch Joseph Kogut ` (2 subsequent siblings) 3 siblings, 0 replies; 23+ messages in thread From: Joseph Kogut @ 2018-07-10 23:42 UTC (permalink / raw) To: buildroot Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com> --- ...3-convert-atk-bridge-to-optional-dep.patch | 76 +++++++++++++++++++ package/libgtk3/0003-disable-atk-bridge.patch | 45 ----------- package/libgtk3/libgtk3.mk | 4 + 3 files changed, 80 insertions(+), 45 deletions(-) create mode 100644 package/libgtk3/0003-convert-atk-bridge-to-optional-dep.patch delete mode 100644 package/libgtk3/0003-disable-atk-bridge.patch diff --git a/package/libgtk3/0003-convert-atk-bridge-to-optional-dep.patch b/package/libgtk3/0003-convert-atk-bridge-to-optional-dep.patch new file mode 100644 index 0000000000..d92bc96d5e --- /dev/null +++ b/package/libgtk3/0003-convert-atk-bridge-to-optional-dep.patch @@ -0,0 +1,76 @@ +From 83aaf47828d40dbafc315c5184ff62fe9914e80a Mon Sep 17 00:00:00 2001 +From: Joseph Kogut <joseph.kogut@gmail.com> +Date: Thu, 21 Jun 2018 10:55:04 -0700 +Subject: [PATCH] convert atk-bridge to optional dep + +Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com> +--- + configure | 2 +- + configure.ac | 9 ++++++--- + gtk/a11y/gtkaccessibility.c | 4 ++-- + 3 files changed, 9 insertions(+), 6 deletions(-) + +diff --git a/configure b/configure +index 9a68486..6504451 100755 +--- a/configure ++++ b/configure +@@ -27037,7 +27037,7 @@ $as_echo "yes" >&6; } + fi + + GTK_PACKAGES="atk >= 2.15.1 cairo >= 1.14.0 cairo-gobject >= 1.14.0 gdk-pixbuf-2.0 >= 2.30.0 gio-2.0 >= 2.49.4" +-GTK_PRIVATE_PACKAGES="$ATK_PACKAGES $WAYLAND_PACKAGES $MIR_PACKAGES epoxy >= 1.0" ++GTK_PRIVATE_PACKAGES="$ATK_PACKAGES $ATK_BRIDGE_PACKAGE $WAYLAND_PACKAGES $MIR_PACKAGES epoxy >= 1.0" + if test "x$enable_x11_backend" = xyes -o "x$enable_wayland_backend" = xyes; then + GTK_PRIVATE_PACKAGES="$GTK_PRIVATE_PACKAGES pangoft2" + fi +diff --git a/configure.ac b/configure.ac +index fef0ece..ddb4e04 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1394,15 +1394,18 @@ AC_SUBST(GDK_DEP_CFLAGS) + ######################################## + + if test x$enable_x11_backend = xyes; then +- ATK_PACKAGES="atk atk-bridge-2.0" +-else + ATK_PACKAGES="atk" ++ PKG_CHECK_MODULES(ATK_BRIDGE, atk-bridge-2.0, ++ AC_DEFINE([HAVE_ATK_BRIDGE], [1], [Define to 1 if atk-bridge is available]) ++ ATK_BRIDGE_PACKAGE="atk-bridge-2.0", ++ [] ++ ) + fi + + PKG_CHECK_MODULES(ATK, $ATK_PACKAGES) + + GTK_PACKAGES="atk >= atk_required_version cairo >= cairo_required_version cairo-gobject >= cairo_required_version gdk-pixbuf-2.0 >= gdk_pixbuf_required_version gio-2.0 >= glib_required_version" +-GTK_PRIVATE_PACKAGES="$ATK_PACKAGES $WAYLAND_PACKAGES $MIR_PACKAGES epoxy >= epoxy_required_version" ++GTK_PRIVATE_PACKAGES="$ATK_PACKAGES $ATK_BRIDGE_PACKAGE $WAYLAND_PACKAGES $MIR_PACKAGES epoxy >= epoxy_required_version" + if test "x$enable_x11_backend" = xyes -o "x$enable_wayland_backend" = xyes; then + GTK_PRIVATE_PACKAGES="$GTK_PRIVATE_PACKAGES pangoft2" + fi +diff --git a/gtk/a11y/gtkaccessibility.c b/gtk/a11y/gtkaccessibility.c +index 7f0e520..f2ef2eb 100644 +--- a/gtk/a11y/gtkaccessibility.c ++++ b/gtk/a11y/gtkaccessibility.c +@@ -37,7 +37,7 @@ + #include <gtk/gtktogglebutton.h> + #include <gtk/gtkaccessible.h> + +-#ifdef GDK_WINDOWING_X11 ++#ifdef HAVE_ATK_BRIDGE + #include <atk-bridge.h> + #endif + +@@ -988,7 +988,7 @@ _gtk_accessibility_init (void) + _gtk_accessibility_override_atk_util (); + do_window_event_initialization (); + +-#ifdef GDK_WINDOWING_X11 ++#ifdef HAVE_ATK_BRIDGE + atk_bridge_adaptor_init (NULL, NULL); + #endif + +-- +2.17.1 + diff --git a/package/libgtk3/0003-disable-atk-bridge.patch b/package/libgtk3/0003-disable-atk-bridge.patch deleted file mode 100644 index c92174f400..0000000000 --- a/package/libgtk3/0003-disable-atk-bridge.patch +++ /dev/null @@ -1,45 +0,0 @@ -Remove atk-bridge support. - -atk-bridge doesn't seem useful for now in Buildroot and requires to -add two new packages just for it: at-spi2-core and at-spi2-atk. - -Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com> - ---- a/configure.ac -+++ b/configure.ac -@@ -1349,11 +1349,7 @@ - # Check for Accessibility Toolkit flags - ######################################## - --if test x$enable_x11_backend = xyes; then -- ATK_PACKAGES="atk atk-bridge-2.0" --else -- ATK_PACKAGES="atk" --fi -+ATK_PACKAGES="atk" - - PKG_CHECK_MODULES(ATK, $ATK_PACKAGES) - ---- a/gtk/a11y/gtkaccessibility.c -+++ b/gtk/a11y/gtkaccessibility.c -@@ -37,10 +37,6 @@ - #include <gtk/gtkcombobox.h> - #include <gtk/gtkaccessible.h> - --#ifdef GDK_WINDOWING_X11 --#include <atk-bridge.h> --#endif -- - static gboolean gail_focus_watcher (GSignalInvocationHint *ihint, - guint n_param_values, - const GValue *param_values, -@@ -987,9 +983,5 @@ - _gtk_accessibility_override_atk_util (); - do_window_event_initialization (); - --#ifdef GDK_WINDOWING_X11 -- atk_bridge_adaptor_init (NULL, NULL); --#endif -- - atk_misc_instance = g_object_new (GTK_TYPE_MISC_IMPL, NULL); - } diff --git a/package/libgtk3/libgtk3.mk b/package/libgtk3/libgtk3.mk index 1b85d00aae..75624a4203 100644 --- a/package/libgtk3/libgtk3.mk +++ b/package/libgtk3/libgtk3.mk @@ -31,6 +31,10 @@ LIBGTK3_DEPENDENCIES = host-pkgconf host-libgtk3 atk libglib2 cairo pango gdk-pi ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y) LIBGTK3_DEPENDENCIES += fontconfig xlib_libX11 xlib_libXext xlib_libXrender xlib_libXi +ifeq ($(BR2_PACKAGE_AT_SPI2_ATK),y) +LIBGTK3_DEPENDENCIES += at-spi2-atk +endif + LIBGTK3_CONF_OPTS += \ --enable-x11-backend \ --x-includes=$(STAGING_DIR)/usr/include/X11 \ -- 2.18.0 ^ permalink raw reply related [flat|nested] 23+ messages in thread
* [Buildroot] [PATCH v6 2/4] llvm: add config to build backend for host arch 2018-07-10 23:42 [Buildroot] [PATCH v6 0/4] chromium: new package Joseph Kogut 2018-07-10 23:42 ` [Buildroot] [PATCH v6 1/4] libgtk3: convert atk-bridge to optional dependency Joseph Kogut @ 2018-07-10 23:42 ` Joseph Kogut 2018-07-10 23:42 ` [Buildroot] [PATCH v6 3/4] lld: new package Joseph Kogut 2018-07-10 23:42 ` [Buildroot] [PATCH v6 4/4] chromium: " Joseph Kogut 3 siblings, 0 replies; 23+ messages in thread From: Joseph Kogut @ 2018-07-10 23:42 UTC (permalink / raw) To: buildroot Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com> --- package/Config.in.host | 1 + package/llvm/Config.in.host | 18 ++++++++++++++++++ package/llvm/llvm.mk | 9 ++++++++- 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 package/llvm/Config.in.host diff --git a/package/Config.in.host b/package/Config.in.host index 7838ffc219..3725c2c81d 100644 --- a/package/Config.in.host +++ b/package/Config.in.host @@ -30,6 +30,7 @@ menu "Host utilities" source "package/jsmin/Config.in.host" source "package/lpc3250loader/Config.in.host" source "package/lttng-babeltrace/Config.in.host" + source "package/llvm/Config.in.host" source "package/mfgtools/Config.in.host" source "package/mkpasswd/Config.in.host" source "package/mtd/Config.in.host" diff --git a/package/llvm/Config.in.host b/package/llvm/Config.in.host new file mode 100644 index 0000000000..4d73fb8c75 --- /dev/null +++ b/package/llvm/Config.in.host @@ -0,0 +1,18 @@ +config BR2_PACKAGE_HOST_LLVM + bool "host llvm" + depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS + depends on BR2_HOST_GCC_AT_LEAST_4_8 + help + The LLVM Project is a collection of modular and reusable + compiler and toolchain technologies. + + http://llvm.org + +config BR2_PACKAGE_HOST_LLVM_HOST_ARCH + string + default "AArch64" if BR2_HOSTARCH="aarch64" + default "X86" if BR2_HOSTARCH = "x86" || BR2_HOSTARCH = "x86_64" + default "ARM" if BR2_HOSTARCH = "arm" + +config BR2_PACKAGE_HOST_LLVM_ENABLE_HOST_ARCH + bool diff --git a/package/llvm/llvm.mk b/package/llvm/llvm.mk index fb0ae4ce5c..31c31630ad 100644 --- a/package/llvm/llvm.mk +++ b/package/llvm/llvm.mk @@ -39,8 +39,9 @@ LLVM_CONF_OPTS += -DLLVM_BUILD_GLOBAL_ISEL=OFF LLVM_TARGET_ARCH = $(call qstrip,$(BR2_PACKAGE_LLVM_TARGET_ARCH)) # Build backend for target architecture. This include backends like AMDGPU. +HOST_LLVM_TARGETS_TO_BUILD = $(LLVM_TARGET_ARCH) LLVM_TARGETS_TO_BUILD = $(LLVM_TARGET_ARCH) -HOST_LLVM_CONF_OPTS += -DLLVM_TARGETS_TO_BUILD="$(subst $(space),;,$(LLVM_TARGETS_TO_BUILD))" +HOST_LLVM_CONF_OPTS += -DLLVM_TARGETS_TO_BUILD="$(subst $(space),;,$(HOST_LLVM_TARGETS_TO_BUILD))" LLVM_CONF_OPTS += -DLLVM_TARGETS_TO_BUILD="$(subst $(space),;,$(LLVM_TARGETS_TO_BUILD))" # LLVM target to use for native code generation. This is required for JIT generation. @@ -56,9 +57,15 @@ LLVM_CONF_OPTS += -DLLVM_TARGET_ARCH=$(LLVM_TARGET_ARCH) # output only $(LLVM_TARGET_ARCH) if not, and mesa3d won't build as # it thinks AMDGPU backend is not installed on the target. ifeq ($(BR2_PACKAGE_LLVM_AMDGPU),y) +HOST_LLVM_TARGETS_TO_BUILD += AMDGPU LLVM_TARGETS_TO_BUILD += AMDGPU endif +# Build backend for host architecture +ifeq ($(BR2_PACKAGE_HOST_LLVM_ENABLE_HOST_ARCH),y) +HOST_LLVM_TARGETS_TO_BUILD += $(call qstrip,$(BR2_PACKAGE_HOST_LLVM_HOST_ARCH)) +endif + # Use native llvm-tblgen from host-llvm (needed for cross-compilation) LLVM_CONF_OPTS += -DLLVM_TABLEGEN=$(HOST_DIR)/bin/llvm-tblgen -- 2.18.0 ^ permalink raw reply related [flat|nested] 23+ messages in thread
* [Buildroot] [PATCH v6 3/4] lld: new package 2018-07-10 23:42 [Buildroot] [PATCH v6 0/4] chromium: new package Joseph Kogut 2018-07-10 23:42 ` [Buildroot] [PATCH v6 1/4] libgtk3: convert atk-bridge to optional dependency Joseph Kogut 2018-07-10 23:42 ` [Buildroot] [PATCH v6 2/4] llvm: add config to build backend for host arch Joseph Kogut @ 2018-07-10 23:42 ` Joseph Kogut 2018-07-11 9:59 ` Valentin Korenblit 2018-07-10 23:42 ` [Buildroot] [PATCH v6 4/4] chromium: " Joseph Kogut 3 siblings, 1 reply; 23+ messages in thread From: Joseph Kogut @ 2018-07-10 23:42 UTC (permalink / raw) To: buildroot Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com> --- DEVELOPERS | 1 + package/Config.in.host | 1 + package/lld/Config.in.host | 16 ++++++++++++++++ package/lld/lld.hash | 3 +++ package/lld/lld.mk | 15 +++++++++++++++ 5 files changed, 36 insertions(+) create mode 100644 package/lld/Config.in.host create mode 100644 package/lld/lld.hash create mode 100644 package/lld/lld.mk diff --git a/DEVELOPERS b/DEVELOPERS index 82accbbc3d..05d2bdde20 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1060,6 +1060,7 @@ F: package/at-spi2-atk/ F: package/at-spi2-core/ F: package/gconf/ F: package/libnss/ +F: package/lld/ F: package/python-cython/ F: package/python-raven/ F: package/python-schedule/ diff --git a/package/Config.in.host b/package/Config.in.host index 3725c2c81d..d0b25c3ccf 100644 --- a/package/Config.in.host +++ b/package/Config.in.host @@ -30,6 +30,7 @@ menu "Host utilities" source "package/jsmin/Config.in.host" source "package/lpc3250loader/Config.in.host" source "package/lttng-babeltrace/Config.in.host" + source "package/lld/Config.in.host" source "package/llvm/Config.in.host" source "package/mfgtools/Config.in.host" source "package/mkpasswd/Config.in.host" diff --git a/package/lld/Config.in.host b/package/lld/Config.in.host new file mode 100644 index 0000000000..c04b7924fa --- /dev/null +++ b/package/lld/Config.in.host @@ -0,0 +1,16 @@ +config BR2_PACKAGE_HOST_LLD + bool "host lld" + depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS # llvm + depends on BR2_HOST_GCC_AT_LEAST_4_8 # llvm + select BR2_PACKAGE_HOST_LLVM + help + LLD is a linker from the LLVM project that is a drop-in + replacement for system linkers, and runs much faster than + them. It also provides features that are useful for + toolchain developers. + + https://lld.llvm.org/ + +comment "lld needs a toolchain w/ host gcc >= 4.8" + depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS + depends on !BR2_HOST_GCC_AT_LEAST_4_8 diff --git a/package/lld/lld.hash b/package/lld/lld.hash new file mode 100644 index 0000000000..ce81c7baca --- /dev/null +++ b/package/lld/lld.hash @@ -0,0 +1,3 @@ +# locally calculated +sha256 6b8c4a833cf30230c0213d78dbac01af21387b298225de90ab56032ca79c0e0b lld-6.0.0.src.tar.xz +sha256 f0502d2d0e19748c534ee95ea486c092273303dbef76404c8b17dc8bf6ca441b LICENSE.TXT diff --git a/package/lld/lld.mk b/package/lld/lld.mk new file mode 100644 index 0000000000..e82970c844 --- /dev/null +++ b/package/lld/lld.mk @@ -0,0 +1,15 @@ +################################################################################ +# +# lld +# +################################################################################ + +LLD_VERSION = 6.0.0 +LLD_SITE = https://llvm.org/releases/$(LLD_VERSION) +LLD_SOURCE = lld-$(LLD_VERSION).src.tar.xz +LLD_LICENSE = NCSA +LLD_LICENSE_FILES = LICENSE.TXT +LLD_SUPPORTS_IN_SOURCE_BUILD = NO +HOST_LLD_DEPENDENCIES = host-llvm + +$(eval $(host-cmake-package)) -- 2.18.0 ^ permalink raw reply related [flat|nested] 23+ messages in thread
* [Buildroot] [PATCH v6 3/4] lld: new package 2018-07-10 23:42 ` [Buildroot] [PATCH v6 3/4] lld: new package Joseph Kogut @ 2018-07-11 9:59 ` Valentin Korenblit 0 siblings, 0 replies; 23+ messages in thread From: Valentin Korenblit @ 2018-07-11 9:59 UTC (permalink / raw) To: buildroot Hello Joseph, On 07/11/2018 01:42 AM, Joseph Kogut wrote: > +++ b/package/lld/lld.mk > @@ -0,0 +1,15 @@ > +################################################################################ > +# > +# lld > +# > +################################################################################ > + > +LLD_VERSION = 6.0.0 > +LLD_SITE = https://llvm.org/releases/$(LLD_VERSION) > +LLD_SOURCE = lld-$(LLD_VERSION).src.tar.xz > +LLD_LICENSE = NCSA > +LLD_LICENSE_FILES = LICENSE.TXT > +LLD_SUPPORTS_IN_SOURCE_BUILD = NO > +HOST_LLD_DEPENDENCIES = host-llvm > + > +$(eval $(host-cmake-package)) I've just checked that lld is linking against libLLVM static libs. I had the same problem with clang, to avoid this: HOST_LLD_CONF_OPTS += -DLLVM_LINK_LLVM_DYLIB=ON -DLLVM_DYLIB_COMPONENTS=all Best regards, Valentin ^ permalink raw reply [flat|nested] 23+ messages in thread
* [Buildroot] [PATCH v6 4/4] chromium: new package 2018-07-10 23:42 [Buildroot] [PATCH v6 0/4] chromium: new package Joseph Kogut ` (2 preceding siblings ...) 2018-07-10 23:42 ` [Buildroot] [PATCH v6 3/4] lld: new package Joseph Kogut @ 2018-07-10 23:42 ` Joseph Kogut 2018-07-14 19:11 ` Martin Bark 2018-07-26 13:31 ` Hao HU 3 siblings, 2 replies; 23+ messages in thread From: Joseph Kogut @ 2018-07-10 23:42 UTC (permalink / raw) To: buildroot Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com> --- DEVELOPERS | 1 + package/Config.in | 1 + ...iler_cpu_abi-for-buildroot-toolchain.patch | 102 ++++++++++++ .../0002-Fix-arm-build-with-glibc-2.27.patch | 28 ++++ package/chromium/Config.in | 64 ++++++++ package/chromium/chromium.hash | 3 + package/chromium/chromium.mk | 146 ++++++++++++++++++ package/chromium/toolchain/BUILD.gn | 71 +++++++++ 8 files changed, 416 insertions(+) create mode 100644 package/chromium/0001-modify-compiler_cpu_abi-for-buildroot-toolchain.patch create mode 100644 package/chromium/0002-Fix-arm-build-with-glibc-2.27.patch create mode 100644 package/chromium/Config.in create mode 100644 package/chromium/chromium.hash create mode 100644 package/chromium/chromium.mk create mode 100644 package/chromium/toolchain/BUILD.gn diff --git a/DEVELOPERS b/DEVELOPERS index 05d2bdde20..e3dde531b4 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1058,6 +1058,7 @@ F: package/rabbitmq-c/ N: Joseph Kogut <joseph.kogut@gmail.com> F: package/at-spi2-atk/ F: package/at-spi2-core/ +F: package/chromium/ F: package/gconf/ F: package/libnss/ F: package/lld/ diff --git a/package/Config.in b/package/Config.in index 20fe5ad8ff..2515975df3 100644 --- a/package/Config.in +++ b/package/Config.in @@ -14,6 +14,7 @@ menu "Audio and video applications" source "package/aumix/Config.in" source "package/bellagio/Config.in" source "package/bluez-alsa/Config.in" + source "package/chromium/Config.in" source "package/dvblast/Config.in" source "package/dvdauthor/Config.in" source "package/dvdrw-tools/Config.in" diff --git a/package/chromium/0001-modify-compiler_cpu_abi-for-buildroot-toolchain.patch b/package/chromium/0001-modify-compiler_cpu_abi-for-buildroot-toolchain.patch new file mode 100644 index 0000000000..1848b0bd14 --- /dev/null +++ b/package/chromium/0001-modify-compiler_cpu_abi-for-buildroot-toolchain.patch @@ -0,0 +1,102 @@ +From 3d5106d1d4720e1be8a4bd977be38743d6fb1f3c Mon Sep 17 00:00:00 2001 +From: Joseph Kogut <joseph.kogut@gmail.com> +Date: Sun, 10 Jun 2018 09:59:11 -0700 +Subject: [PATCH] modify compiler_cpu_abi for buildroot toolchain + +Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com> +--- + build/config/compiler/BUILD.gn | 36 +++++++++++++++++++--------------- + 1 file changed, 20 insertions(+), 16 deletions(-) + +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn +index 461e62da2..27c9f29ed 100644 +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -683,6 +683,10 @@ config("compiler_cpu_abi") { + "-march=x86-64", + ] + ldflags += [ "-m64" ] ++ if (is_clang) { ++ cflags += ["--target=x86_64-buildroot-linux-gnu"] ++ ldflags += ["--target=x86_64-buildroot-linux-gnu"] ++ } + } else if (current_cpu == "x86") { + cflags += [ "-m32" ] + ldflags += [ "-m32" ] +@@ -695,8 +699,8 @@ config("compiler_cpu_abi") { + } + } else if (current_cpu == "arm") { + if (is_clang && !is_android && !is_nacl) { +- cflags += [ "--target=arm-linux-gnueabihf" ] +- ldflags += [ "--target=arm-linux-gnueabihf" ] ++ cflags += [ "--target=arm-buildroot-linux-gnueabihf" ] ++ ldflags += [ "--target=arm-buildroot-linux-gnueabihf" ] + } + if (!is_nacl) { + cflags += [ +@@ -709,18 +713,18 @@ config("compiler_cpu_abi") { + } + } else if (current_cpu == "arm64") { + if (is_clang && !is_android && !is_nacl && !is_fuchsia) { +- cflags += [ "--target=aarch64-linux-gnu" ] +- ldflags += [ "--target=aarch64-linux-gnu" ] ++ cflags += [ "--target=aarch64-buildroot-linux-gnu" ] ++ ldflags += [ "--target=aarch64-buildroot-linux-gnu" ] + } + } else if (current_cpu == "mipsel" && !is_nacl) { + if (custom_toolchain == "") { + if (is_clang) { + if (is_android) { +- cflags += [ "--target=mipsel-linux-android" ] +- ldflags += [ "--target=mipsel-linux-android" ] ++ cflags += [ "--target=mipsel-buildroot-linux-android" ] ++ ldflags += [ "--target=mipsel-buildroot-linux-android" ] + } else { +- cflags += [ "--target=mipsel-linux-gnu" ] +- ldflags += [ "--target=mipsel-linux-gnu" ] ++ cflags += [ "--target=mipsel-buildroot-linux-gnu" ] ++ ldflags += [ "--target=mipsel-buildroot-linux-gnu" ] + } + } else { + cflags += [ "-EL" ] +@@ -799,8 +803,8 @@ config("compiler_cpu_abi") { + } else if (current_cpu == "mips" && !is_nacl) { + if (custom_toolchain == "") { + if (is_clang) { +- cflags += [ "--target=mips-linux-gnu" ] +- ldflags += [ "--target=mips-linux-gnu" ] ++ cflags += [ "--target=mips-buildroot-linux-gnu" ] ++ ldflags += [ "--target=mips-buildroot-linux-gnu" ] + } else { + cflags += [ "-EB" ] + ldflags += [ "-EB" ] +@@ -844,11 +848,11 @@ config("compiler_cpu_abi") { + if (custom_toolchain == "") { + if (is_clang) { + if (is_android) { +- cflags += [ "--target=mips64el-linux-android" ] +- ldflags += [ "--target=mips64el-linux-android" ] ++ cflags += [ "--target=mips64el-buildroot-linux-android" ] ++ ldflags += [ "--target=mips64el-buildroot-linux-android" ] + } else { +- cflags += [ "--target=mips64el-linux-gnuabi64" ] +- ldflags += [ "--target=mips64el-linux-gnuabi64" ] ++ cflags += [ "--target=mips64el-buildroot-linux-gnuabi64" ] ++ ldflags += [ "--target=mips64el-buildroot-linux-gnuabi64" ] + } + } else { + cflags += [ +@@ -905,8 +909,8 @@ config("compiler_cpu_abi") { + } else if (current_cpu == "mips64") { + if (custom_toolchain == "") { + if (is_clang) { +- cflags += [ "--target=mips64-linux-gnuabi64" ] +- ldflags += [ "--target=mips64-linux-gnuabi64" ] ++ cflags += [ "--target=mips64-buildroot-linux-gnuabi64" ] ++ ldflags += [ "--target=mips64-buildroot-linux-gnuabi64" ] + } else { + cflags += [ + "-EB", +-- +2.17.1 + diff --git a/package/chromium/0002-Fix-arm-build-with-glibc-2.27.patch b/package/chromium/0002-Fix-arm-build-with-glibc-2.27.patch new file mode 100644 index 0000000000..8aebbd06c8 --- /dev/null +++ b/package/chromium/0002-Fix-arm-build-with-glibc-2.27.patch @@ -0,0 +1,28 @@ +From aed4599c18586dfac46139a3c32011f804fdaef6 Mon Sep 17 00:00:00 2001 +From: Joseph Kogut <joseph.kogut@gmail.com> +Date: Wed, 13 Jun 2018 13:59:24 -0700 +Subject: [PATCH] Fix arm build with glibc 2.27 + +Upstream patch from: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1060155 + +Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com> +--- + third_party/crashpad/crashpad/compat/linux/sys/ptrace.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h b/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h +index 73861576d..e5c95c7cc 100644 +--- a/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h ++++ b/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h +@@ -34,7 +34,7 @@ static constexpr __ptrace_request PTRACE_GET_THREAD_AREA = + #endif // !PTRACE_GET_THREAD_AREA && !PT_GET_THREAD_AREA && defined(__GLIBC__) + + // https://sourceware.org/bugzilla/show_bug.cgi?id=22433 +-#if !defined(PTRACE_GETVFPREGS) && \ ++#if !defined(PTRACE_GETVFPREGS) && !defined(PT_GETVFPREGS) && \ + defined(__GLIBC__) && (defined(__arm__) || defined(__arm64__)) + static constexpr __ptrace_request PTRACE_GETVFPREGS = + static_cast<__ptrace_request>(27); +-- +2.17.1 + diff --git a/package/chromium/Config.in b/package/chromium/Config.in new file mode 100644 index 0000000000..fa04d3bbd2 --- /dev/null +++ b/package/chromium/Config.in @@ -0,0 +1,64 @@ +config BR2_PACKAGE_CHROMIUM_ARCH_SUPPORTS + bool + default y if BR2_arm + default y if BR2_aarch64 + default y if BR2_i386 + default y if BR2_x86_64 + +config BR2_PACKAGE_CHROMIUM_TARGET_ARCH + string + default "arm" if BR2_arm + default "arm64" if BR2_aarch64 + default "x86" if BR2_i386 + default "x64" if BR2_x86_64 + +menuconfig BR2_PACKAGE_CHROMIUM + bool "chromium" + depends on BR2_HOST_GCC_AT_LEAST_4_9 # gn requires -std=c++14 + depends on BR2_PACKAGE_HAS_LIBGL + depends on BR2_PACKAGE_XORG7 + depends on BR2_TOOLCHAIN_USES_GLIBC + select BR2_PACKAGE_AT_SPI2_ATK + select BR2_PACKAGE_ALSA_LIB + select BR2_PACKAGE_FREETYPE + select BR2_PACKAGE_HARFBUZZ + select BR2_PACKAGE_HOST_CLANG + select BR2_PACKAGE_HOST_LLD + select BR2_PACKAGE_HOST_NINJA + select BR2_PACKAGE_HOST_NODEJS + select BR2_PACKAGE_HOST_PYTHON + select BR2_PACKAGE_JPEG + select BR2_PACKAGE_LIBDRM + select BR2_PACKAGE_LIBERATION # runtime + select BR2_PACKAGE_LIBGLIB2 + select BR2_PACKAGE_LIBGTK2 if !BR2_PACKAGE_LIBGTK3_X11 + select BR2_PACKAGE_LIBKRB5 + select BR2_PACKAGE_LIBNSS + select BR2_PACKAGE_LIBPNG + select BR2_PACKAGE_XLIB_LIBXCOMPOSITE + select BR2_PACKAGE_XLIB_LIBXCURSOR + select BR2_PACKAGE_XLIB_LIBXI if !BR2_PACKAGE_LIBGTK3_X11 + select BR2_PACKAGE_XLIB_LIBXRANDR + select BR2_PACKAGE_XLIB_LIBXSCRNSAVER + select BR2_PACKAGE_XLIB_LIBXTST if !BR2_PACKAGE_LIBGTK3_X11 + help + Chromium is an open-source Web browser project started by + Google, to provide the source code for the proprietary + Google Chrome browser. + +if BR2_PACKAGE_CHROMIUM + +config BR2_PACKAGE_CHROMIUM_PROPRIETARY_CODECS + bool "Enable proprietary codecs" + help + Enables proprietary codecs with additional licensing + restrictions, such as MP3 and H264 + +endif # BR2_PACKAGE_CHROMIUM + +comment "chromium needs toolchain w/ Glibc, host gcc >= 4.9.0" + depends on !BR2_TOOLCHAIN_USES_GLIBC \ + || !BR2_HOST_GCC_AT_LEAST_4_9 + +comment "chromium depends on X.org and needs an OpenGL backend" + depends on !BR2_PACKAGE_XORG7 || !BR2_PACKAGE_HAS_LIBGL diff --git a/package/chromium/chromium.hash b/package/chromium/chromium.hash new file mode 100644 index 0000000000..4c39ac5c08 --- /dev/null +++ b/package/chromium/chromium.hash @@ -0,0 +1,3 @@ +# locally calculated +sha256 f8b1e5319163e378027826b12cf256b97423bb90e10e2013469d96e03bc9db8a chromium-67.0.3396.79.tar.xz +sha256 845022e0c1db1abb41a6ba4cd3c4b674ec290f3359d9d3c78ae558d4c0ed9308 LICENSE diff --git a/package/chromium/chromium.mk b/package/chromium/chromium.mk new file mode 100644 index 0000000000..465eef17ad --- /dev/null +++ b/package/chromium/chromium.mk @@ -0,0 +1,146 @@ +################################################################################ +# +# Chromium +# +################################################################################ + +CHROMIUM_VERSION = 67.0.3396.79 +CHROMIUM_SITE = https://commondatastorage.googleapis.com/chromium-browser-official +CHROMIUM_SOURCE = chromium-$(CHROMIUM_VERSION).tar.xz +CHROMIUM_LICENSE = BSD-Style +CHROMIUM_LICENSE_FILES = LICENSE +CHROMIUM_DEPENDENCIES = alsa-lib cairo cups dbus freetype harfbuzz \ + host-clang host-lld host-ninja host-nodejs host-python \ + jpeg libdrm libglib2 libkrb5 libnss libpng pango \ + xlib_libXcomposite xlib_libXScrnSaver xlib_libXcursor \ + xlib_libXrandr zlib + +CHROMIUM_TOOLCHAIN_CONFIG_PATH = $(shell pwd)/package/chromium/toolchain + +CHROMIUM_OPTS = \ + host_toolchain=\"$(CHROMIUM_TOOLCHAIN_CONFIG_PATH):host\" \ + custom_toolchain=\"$(CHROMIUM_TOOLCHAIN_CONFIG_PATH):target\" \ + use_lld=true \ + is_clang=true \ + clang_use_chrome_plugins=false \ + treat_warnings_as_errors=false \ + use_gnome_keyring=false \ + linux_use_bundled_binutils=false \ + use_sysroot=true \ + target_sysroot=\"$(STAGING_DIR)\" \ + target_cpu=\"$(BR2_PACKAGE_CHROMIUM_TARGET_ARCH)\" \ + enable_nacl=false \ + use_dbus=true \ + use_system_zlib=true \ + use_system_libjpeg=true \ + use_system_libpng=true \ + use_system_libdrm=true \ + use_system_harfbuzz=true \ + use_system_freetype=true + +# tcmalloc has portability issues +CHROMIUM_OPTS += use_allocator=\"none\" + +# V8 snapshots require compiling V8 with the same word size as the target +# architecture, which means the host needs to have that toolchain available. +CHROMIUM_OPTS += v8_use_snapshot=false + +ifeq ($(BR2_ENABLE_DEBUG),y) +CHROMIUM_OPTS += is_debug=true +else +CHROMIUM_OPTS += is_debug=false +endif + +ifeq ($(BR2_PACKAGE_CUPS),y) +CHROMIUM_DEPENDENCIES += cups +CHROMIUM_OPTS += use_cups=true +else +CHROMIUM_OPTS += use_cups=false +endif + +ifeq ($(BR2_PACKAGE_CHROMIUM_PROPRIETARY_CODECS),y) +CHROMIUM_OPTS += proprietary_codecs=true ffmpeg_branding=\"Chrome\" +endif + +ifeq ($(BR2_PACKAGE_DBUS),y) +CHROMIUM_OPTS += use_dbus=true +else +CHROMIUM_OPTS += use_dbus=false +endif + +ifeq ($(BR2_PACKAGE_PCIUTILS),y) +CHROMIUM_DEPENDENCIES += pciutils +CHROMIUM_OPTS += use_libpci=true +else +CHROMIUM_OPTS += use_libpci=false +endif + +ifeq ($(BR2_PACKAGE_PULSEAUDIO),y) +CHROMIUM_DEPENDENCIES += pulseaudio +CHROMIUM_OPTS += use_pulseaudio=true +else +CHROMIUM_OPTS += use_pulseaudio=false +endif + +ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y) +CHROMIUM_DEPENDENCIES += libgtk3 +CHROMIUM_OPTS += use_gtk3=true +else +CHROMIUM_DEPENDENCIES += libgtk2 xlib_libXi xlib_libXtst +CHROMIUM_OPTS += use_gtk3=false +endif + +ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y) +CHROMIUM_TARGET_LDFLAGS += --gcc-toolchain=$(TOOLCHAIN_EXTERNAL_INSTALL_DIR) +else +CHROMIUM_TARGET_LDFLAGS += --gcc-toolchain=$(HOST_DIR) +endif + +CHROMIUM_TARGET_CFLAGS += $(CHROMIUM_TARGET_LDFLAGS) +CHROMIUM_TARGET_CXXFLAGS += $(CHROMIUM_TARGET_CFLAGS) + +define CHROMIUM_CONFIGURE_CMDS + mkdir -p $(@D)/third_party/node/linux/node-linux-x64/bin + ln -sf $(HOST_DIR)/bin/node $(@D)/third_party/node/linux/node-linux-x64/bin/ + + ( cd $(@D); \ + $(TARGET_MAKE_ENV) \ + $(HOST_DIR)/bin/python2 tools/gn/bootstrap/bootstrap.py -s --no-clean; \ + HOST_AR="$(HOSTAR)" \ + HOST_NM="$(HOSTNM)" \ + HOST_CC="$(HOSTCC)" \ + HOST_CXX="$(HOSTCXX)" \ + HOST_CFLAGS="$(HOST_CFLAGS)" \ + HOST_CXXFLAGS="$(HOST_CXXFLAGS)" \ + TARGET_AR="ar" \ + TARGET_NM="nm" \ + TARGET_CC="clang" \ + TARGET_CXX="clang++" \ + TARGET_CFLAGS="$(CHROMIUM_TARGET_CFLAGS)" \ + TARGET_CXXFLAGS="$(CHROMIUM_TARGET_CXXFLAGS)" \ + TARGET_LDFLAGS="$(CHROMIUM_TARGET_LDFLAGS)" \ + out/Release/gn gen out/Release --args="$(CHROMIUM_OPTS)" \ + --script-executable=$(HOST_DIR)/bin/python2 \ + ) +endef + +define CHROMIUM_BUILD_CMDS + ( cd $(@D); \ + $(TARGET_MAKE_ENV) \ + ninja -j$(PARALLEL_JOBS) -C out/Release chrome chrome_sandbox chromedriver \ + ) +endef + +define CHROMIUM_INSTALL_TARGET_CMDS + $(INSTALL) -D $(@D)/out/Release/chrome $(TARGET_DIR)/usr/lib/chromium/chromium + $(INSTALL) -Dm4755 $(@D)/out/Release/chrome_sandbox \ + $(TARGET_DIR)/usr/lib/chromium/chrome-sandbox + cp $(@D)/out/Release/{chrome_{100,200}_percent,resources}.pak \ + $(@D)/out/Release/chromedriver \ + $(TARGET_DIR)/usr/lib/chromium/ + $(INSTALL) -Dm644 -t $(TARGET_DIR)/usr/lib/chromium/locales \ + $(@D)/out/Release/locales/*.pak + cp $(@D)/out/Release/icudtl.dat $(TARGET_DIR)/usr/lib/chromium/ +endef + +$(eval $(generic-package)) diff --git a/package/chromium/toolchain/BUILD.gn b/package/chromium/toolchain/BUILD.gn new file mode 100644 index 0000000000..e8525bd67d --- /dev/null +++ b/package/chromium/toolchain/BUILD.gn @@ -0,0 +1,71 @@ +import("//build/toolchain/gcc_toolchain.gni") +import("//build/config/sysroot.gni") + +gcc_toolchain("host") { + cc = getenv("HOST_CC") + cxx = getenv("HOST_CXX") + ar = getenv("HOST_AR") + nm = getenv("HOST_NM") + ld = cxx + + extra_cflags = getenv("HOST_CFLAGS") + extra_cppflags = getenv("HOST_CPPFLAGS") + extra_cxxflags = getenv("HOST_CXXFLAGS") + extra_ldflags = getenv("HOST_LDFLAGS") + + toolchain_args = { + cc_wrapper = "" + current_cpu = host_cpu + current_os = host_os + is_clang = false + use_sysroot = false + use_lld = false + } +} + +gcc_toolchain("target") { + cc = getenv("TARGET_CC") + cxx = getenv("TARGET_CXX") + ar = getenv("TARGET_AR") + nm = getenv("TARGET_NM") + ld = cxx + + extra_cflags = getenv("TARGET_CFLAGS") + extra_cppflags = getenv("TARGET_CPPFLAGS") + extra_cxxflags = getenv("TARGET_CXXFLAGS") + extra_ldflags = getenv("TARGET_LDFLAGS") + + toolchain_args = { + cc_wrapper = "" + current_cpu = target_cpu + current_os = target_os + is_clang = is_clang + use_sysroot = use_sysroot + } +} + +gcc_toolchain("v8_snapshot") { + cc = getenv("V8_CC") + cxx = getenv("V8_CXX") + ar = getenv("V8_AR") + nm = getenv("V8_NM") + ld = cxx + + extra_cflags = getenv("V8_CFLAGS") + extra_cppflags = getenv("V8_CPPFLAGS") + extra_cxxflags = getenv("V8_CXXFLAGS") + extra_ldflags = getenv("V8_LDFLAGS") + + toolchain_args = { + cc_wrapper = "" + if (target_cpu == "x86" || target_cpu == "arm" || target_cpu == "mipsel") { + current_cpu = "x86" + } else { + current_cpu = "x64" + } + current_os = host_os + is_clang = is_clang + use_sysroot = false + } +} + -- 2.18.0 ^ permalink raw reply related [flat|nested] 23+ messages in thread
* [Buildroot] [PATCH v6 4/4] chromium: new package 2018-07-10 23:42 ` [Buildroot] [PATCH v6 4/4] chromium: " Joseph Kogut @ 2018-07-14 19:11 ` Martin Bark 2018-07-14 22:57 ` Joseph Kogut 2018-07-26 13:31 ` Hao HU 1 sibling, 1 reply; 23+ messages in thread From: Martin Bark @ 2018-07-14 19:11 UTC (permalink / raw) To: buildroot Joseph, On 11 July 2018 at 00:42, Joseph Kogut <joseph.kogut@gmail.com> wrote: > Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com> > --- > DEVELOPERS | 1 + > package/Config.in | 1 + > ...iler_cpu_abi-for-buildroot-toolchain.patch | 102 ++++++++++++ > .../0002-Fix-arm-build-with-glibc-2.27.patch | 28 ++++ > package/chromium/Config.in | 64 ++++++++ > package/chromium/chromium.hash | 3 + > package/chromium/chromium.mk | 146 ++++++++++++++++++ > package/chromium/toolchain/BUILD.gn | 71 +++++++++ > 8 files changed, 416 insertions(+) > create mode 100644 package/chromium/0001-modify-compiler_cpu_abi-for-buildroot-toolchain.patch > create mode 100644 package/chromium/0002-Fix-arm-build-with-glibc-2.27.patch > create mode 100644 package/chromium/Config.in > create mode 100644 package/chromium/chromium.hash > create mode 100644 package/chromium/chromium.mk > create mode 100644 package/chromium/toolchain/BUILD.gn > > diff --git a/DEVELOPERS b/DEVELOPERS > index 05d2bdde20..e3dde531b4 100644 > --- a/DEVELOPERS > +++ b/DEVELOPERS > @@ -1058,6 +1058,7 @@ F: package/rabbitmq-c/ > N: Joseph Kogut <joseph.kogut@gmail.com> > F: package/at-spi2-atk/ > F: package/at-spi2-core/ > +F: package/chromium/ > F: package/gconf/ > F: package/libnss/ > F: package/lld/ > diff --git a/package/Config.in b/package/Config.in > index 20fe5ad8ff..2515975df3 100644 > --- a/package/Config.in > +++ b/package/Config.in > @@ -14,6 +14,7 @@ menu "Audio and video applications" > source "package/aumix/Config.in" > source "package/bellagio/Config.in" > source "package/bluez-alsa/Config.in" > + source "package/chromium/Config.in" > source "package/dvblast/Config.in" > source "package/dvdauthor/Config.in" > source "package/dvdrw-tools/Config.in" > diff --git a/package/chromium/0001-modify-compiler_cpu_abi-for-buildroot-toolchain.patch b/package/chromium/0001-modify-compiler_cpu_abi-for-buildroot-toolchain.patch > new file mode 100644 > index 0000000000..1848b0bd14 > --- /dev/null > +++ b/package/chromium/0001-modify-compiler_cpu_abi-for-buildroot-toolchain.patch > @@ -0,0 +1,102 @@ > +From 3d5106d1d4720e1be8a4bd977be38743d6fb1f3c Mon Sep 17 00:00:00 2001 > +From: Joseph Kogut <joseph.kogut@gmail.com> > +Date: Sun, 10 Jun 2018 09:59:11 -0700 > +Subject: [PATCH] modify compiler_cpu_abi for buildroot toolchain > + > +Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com> > +--- > + build/config/compiler/BUILD.gn | 36 +++++++++++++++++++--------------- > + 1 file changed, 20 insertions(+), 16 deletions(-) > + > +diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn > +index 461e62da2..27c9f29ed 100644 > +--- a/build/config/compiler/BUILD.gn > ++++ b/build/config/compiler/BUILD.gn > +@@ -683,6 +683,10 @@ config("compiler_cpu_abi") { > + "-march=x86-64", > + ] > + ldflags += [ "-m64" ] > ++ if (is_clang) { > ++ cflags += ["--target=x86_64-buildroot-linux-gnu"] > ++ ldflags += ["--target=x86_64-buildroot-linux-gnu"] > ++ } > + } else if (current_cpu == "x86") { > + cflags += [ "-m32" ] > + ldflags += [ "-m32" ] > +@@ -695,8 +699,8 @@ config("compiler_cpu_abi") { > + } > + } else if (current_cpu == "arm") { > + if (is_clang && !is_android && !is_nacl) { > +- cflags += [ "--target=arm-linux-gnueabihf" ] > +- ldflags += [ "--target=arm-linux-gnueabihf" ] > ++ cflags += [ "--target=arm-buildroot-linux-gnueabihf" ] > ++ ldflags += [ "--target=arm-buildroot-linux-gnueabihf" ] > + } > + if (!is_nacl) { > + cflags += [ > +@@ -709,18 +713,18 @@ config("compiler_cpu_abi") { > + } > + } else if (current_cpu == "arm64") { > + if (is_clang && !is_android && !is_nacl && !is_fuchsia) { > +- cflags += [ "--target=aarch64-linux-gnu" ] > +- ldflags += [ "--target=aarch64-linux-gnu" ] > ++ cflags += [ "--target=aarch64-buildroot-linux-gnu" ] > ++ ldflags += [ "--target=aarch64-buildroot-linux-gnu" ] > + } > + } else if (current_cpu == "mipsel" && !is_nacl) { > + if (custom_toolchain == "") { > + if (is_clang) { > + if (is_android) { > +- cflags += [ "--target=mipsel-linux-android" ] > +- ldflags += [ "--target=mipsel-linux-android" ] > ++ cflags += [ "--target=mipsel-buildroot-linux-android" ] > ++ ldflags += [ "--target=mipsel-buildroot-linux-android" ] > + } else { > +- cflags += [ "--target=mipsel-linux-gnu" ] > +- ldflags += [ "--target=mipsel-linux-gnu" ] > ++ cflags += [ "--target=mipsel-buildroot-linux-gnu" ] > ++ ldflags += [ "--target=mipsel-buildroot-linux-gnu" ] > + } > + } else { > + cflags += [ "-EL" ] > +@@ -799,8 +803,8 @@ config("compiler_cpu_abi") { > + } else if (current_cpu == "mips" && !is_nacl) { > + if (custom_toolchain == "") { > + if (is_clang) { > +- cflags += [ "--target=mips-linux-gnu" ] > +- ldflags += [ "--target=mips-linux-gnu" ] > ++ cflags += [ "--target=mips-buildroot-linux-gnu" ] > ++ ldflags += [ "--target=mips-buildroot-linux-gnu" ] > + } else { > + cflags += [ "-EB" ] > + ldflags += [ "-EB" ] > +@@ -844,11 +848,11 @@ config("compiler_cpu_abi") { > + if (custom_toolchain == "") { > + if (is_clang) { > + if (is_android) { > +- cflags += [ "--target=mips64el-linux-android" ] > +- ldflags += [ "--target=mips64el-linux-android" ] > ++ cflags += [ "--target=mips64el-buildroot-linux-android" ] > ++ ldflags += [ "--target=mips64el-buildroot-linux-android" ] > + } else { > +- cflags += [ "--target=mips64el-linux-gnuabi64" ] > +- ldflags += [ "--target=mips64el-linux-gnuabi64" ] > ++ cflags += [ "--target=mips64el-buildroot-linux-gnuabi64" ] > ++ ldflags += [ "--target=mips64el-buildroot-linux-gnuabi64" ] > + } > + } else { > + cflags += [ > +@@ -905,8 +909,8 @@ config("compiler_cpu_abi") { > + } else if (current_cpu == "mips64") { > + if (custom_toolchain == "") { > + if (is_clang) { > +- cflags += [ "--target=mips64-linux-gnuabi64" ] > +- ldflags += [ "--target=mips64-linux-gnuabi64" ] > ++ cflags += [ "--target=mips64-buildroot-linux-gnuabi64" ] > ++ ldflags += [ "--target=mips64-buildroot-linux-gnuabi64" ] > + } else { > + cflags += [ > + "-EB", > +-- > +2.17.1 > + > diff --git a/package/chromium/0002-Fix-arm-build-with-glibc-2.27.patch b/package/chromium/0002-Fix-arm-build-with-glibc-2.27.patch > new file mode 100644 > index 0000000000..8aebbd06c8 > --- /dev/null > +++ b/package/chromium/0002-Fix-arm-build-with-glibc-2.27.patch > @@ -0,0 +1,28 @@ > +From aed4599c18586dfac46139a3c32011f804fdaef6 Mon Sep 17 00:00:00 2001 > +From: Joseph Kogut <joseph.kogut@gmail.com> > +Date: Wed, 13 Jun 2018 13:59:24 -0700 > +Subject: [PATCH] Fix arm build with glibc 2.27 > + > +Upstream patch from: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1060155 > + > +Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com> > +--- > + third_party/crashpad/crashpad/compat/linux/sys/ptrace.h | 2 +- > + 1 file changed, 1 insertion(+), 1 deletion(-) > + > +diff --git a/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h b/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h > +index 73861576d..e5c95c7cc 100644 > +--- a/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h > ++++ b/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h > +@@ -34,7 +34,7 @@ static constexpr __ptrace_request PTRACE_GET_THREAD_AREA = > + #endif // !PTRACE_GET_THREAD_AREA && !PT_GET_THREAD_AREA && defined(__GLIBC__) > + > + // https://sourceware.org/bugzilla/show_bug.cgi?id=22433 > +-#if !defined(PTRACE_GETVFPREGS) && \ > ++#if !defined(PTRACE_GETVFPREGS) && !defined(PT_GETVFPREGS) && \ > + defined(__GLIBC__) && (defined(__arm__) || defined(__arm64__)) > + static constexpr __ptrace_request PTRACE_GETVFPREGS = > + static_cast<__ptrace_request>(27); > +-- > +2.17.1 > + > diff --git a/package/chromium/Config.in b/package/chromium/Config.in > new file mode 100644 > index 0000000000..fa04d3bbd2 > --- /dev/null > +++ b/package/chromium/Config.in > @@ -0,0 +1,64 @@ > +config BR2_PACKAGE_CHROMIUM_ARCH_SUPPORTS > + bool > + default y if BR2_arm > + default y if BR2_aarch64 > + default y if BR2_i386 > + default y if BR2_x86_64 > + > +config BR2_PACKAGE_CHROMIUM_TARGET_ARCH > + string > + default "arm" if BR2_arm > + default "arm64" if BR2_aarch64 > + default "x86" if BR2_i386 > + default "x64" if BR2_x86_64 > + I tried building for an aarch64 target and it fails with the error ERROR at //chrome/installer/linux/BUILD.gn:413:7: Assertion failed. assert(false, "Linux installer not configured for this architecture.") Looking at chrome/installer/linux/BUILD.gn it seems only i386, x86_64, arm, mipsel and mips64el target architectures are supported. I think you need to remove BR2_aarch64 and add BR2_mipsel and BR2_mips64el > +menuconfig BR2_PACKAGE_CHROMIUM > + bool "chromium" BR2_PACKAGE_CHROMIUM should depend on BR2_PACKAGE_CHROMIUM_ARCH_SUPPORTS > + depends on BR2_HOST_GCC_AT_LEAST_4_9 # gn requires -std=c++14 > + depends on BR2_PACKAGE_HAS_LIBGL > + depends on BR2_PACKAGE_XORG7 > + depends on BR2_TOOLCHAIN_USES_GLIBC > + select BR2_PACKAGE_AT_SPI2_ATK > + select BR2_PACKAGE_ALSA_LIB > + select BR2_PACKAGE_FREETYPE > + select BR2_PACKAGE_HARFBUZZ > + select BR2_PACKAGE_HOST_CLANG > + select BR2_PACKAGE_HOST_LLD > + select BR2_PACKAGE_HOST_NINJA > + select BR2_PACKAGE_HOST_NODEJS > + select BR2_PACKAGE_HOST_PYTHON > + select BR2_PACKAGE_JPEG > + select BR2_PACKAGE_LIBDRM > + select BR2_PACKAGE_LIBERATION # runtime > + select BR2_PACKAGE_LIBGLIB2 > + select BR2_PACKAGE_LIBGTK2 if !BR2_PACKAGE_LIBGTK3_X11 > + select BR2_PACKAGE_LIBKRB5 > + select BR2_PACKAGE_LIBNSS > + select BR2_PACKAGE_LIBPNG > + select BR2_PACKAGE_XLIB_LIBXCOMPOSITE > + select BR2_PACKAGE_XLIB_LIBXCURSOR > + select BR2_PACKAGE_XLIB_LIBXI if !BR2_PACKAGE_LIBGTK3_X11 > + select BR2_PACKAGE_XLIB_LIBXRANDR > + select BR2_PACKAGE_XLIB_LIBXSCRNSAVER > + select BR2_PACKAGE_XLIB_LIBXTST if !BR2_PACKAGE_LIBGTK3_X11 > + help > + Chromium is an open-source Web browser project started by > + Google, to provide the source code for the proprietary > + Google Chrome browser. > + > +if BR2_PACKAGE_CHROMIUM > + > +config BR2_PACKAGE_CHROMIUM_PROPRIETARY_CODECS > + bool "Enable proprietary codecs" > + help > + Enables proprietary codecs with additional licensing > + restrictions, such as MP3 and H264 > + > +endif # BR2_PACKAGE_CHROMIUM > + > +comment "chromium needs toolchain w/ Glibc, host gcc >= 4.9.0" > + depends on !BR2_TOOLCHAIN_USES_GLIBC \ > + || !BR2_HOST_GCC_AT_LEAST_4_9 > + > +comment "chromium depends on X.org and needs an OpenGL backend" > + depends on !BR2_PACKAGE_XORG7 || !BR2_PACKAGE_HAS_LIBGL and the comments should also depend on BR2_PACKAGE_CHROMIUM_ARCH_SUPPORTS > diff --git a/package/chromium/chromium.hash b/package/chromium/chromium.hash > new file mode 100644 > index 0000000000..4c39ac5c08 > --- /dev/null > +++ b/package/chromium/chromium.hash > @@ -0,0 +1,3 @@ > +# locally calculated > +sha256 f8b1e5319163e378027826b12cf256b97423bb90e10e2013469d96e03bc9db8a chromium-67.0.3396.79.tar.xz > +sha256 845022e0c1db1abb41a6ba4cd3c4b674ec290f3359d9d3c78ae558d4c0ed9308 LICENSE > diff --git a/package/chromium/chromium.mk b/package/chromium/chromium.mk > new file mode 100644 > index 0000000000..465eef17ad > --- /dev/null > +++ b/package/chromium/chromium.mk > @@ -0,0 +1,146 @@ > +################################################################################ > +# > +# Chromium > +# > +################################################################################ > + > +CHROMIUM_VERSION = 67.0.3396.79 The current stable release of chromium is 67.0.3396.99 > +CHROMIUM_SITE = https://commondatastorage.googleapis.com/chromium-browser-official > +CHROMIUM_SOURCE = chromium-$(CHROMIUM_VERSION).tar.xz > +CHROMIUM_LICENSE = BSD-Style > +CHROMIUM_LICENSE_FILES = LICENSE > +CHROMIUM_DEPENDENCIES = alsa-lib cairo cups dbus freetype harfbuzz \ cups should not be listed in CHROMIUM_DEPENDENCIES because you have it optionally compiled in below > + host-clang host-lld host-ninja host-nodejs host-python \ > + jpeg libdrm libglib2 libkrb5 libnss libpng pango \ > + xlib_libXcomposite xlib_libXScrnSaver xlib_libXcursor \ > + xlib_libXrandr zlib > + > +CHROMIUM_TOOLCHAIN_CONFIG_PATH = $(shell pwd)/package/chromium/toolchain > + > +CHROMIUM_OPTS = \ > + host_toolchain=\"$(CHROMIUM_TOOLCHAIN_CONFIG_PATH):host\" \ > + custom_toolchain=\"$(CHROMIUM_TOOLCHAIN_CONFIG_PATH):target\" \ > + use_lld=true \ > + is_clang=true \ > + clang_use_chrome_plugins=false \ > + treat_warnings_as_errors=false \ > + use_gnome_keyring=false \ > + linux_use_bundled_binutils=false \ > + use_sysroot=true \ > + target_sysroot=\"$(STAGING_DIR)\" \ > + target_cpu=\"$(BR2_PACKAGE_CHROMIUM_TARGET_ARCH)\" \ > + enable_nacl=false \ > + use_dbus=true \ > + use_system_zlib=true \ > + use_system_libjpeg=true \ > + use_system_libpng=true \ > + use_system_libdrm=true \ > + use_system_harfbuzz=true \ > + use_system_freetype=true > + > +# tcmalloc has portability issues > +CHROMIUM_OPTS += use_allocator=\"none\" > + > +# V8 snapshots require compiling V8 with the same word size as the target > +# architecture, which means the host needs to have that toolchain available. > +CHROMIUM_OPTS += v8_use_snapshot=false > + > +ifeq ($(BR2_ENABLE_DEBUG),y) > +CHROMIUM_OPTS += is_debug=true > +else > +CHROMIUM_OPTS += is_debug=false > +endif > + > +ifeq ($(BR2_PACKAGE_CUPS),y) > +CHROMIUM_DEPENDENCIES += cups > +CHROMIUM_OPTS += use_cups=true > +else > +CHROMIUM_OPTS += use_cups=false > +endif > + > +ifeq ($(BR2_PACKAGE_CHROMIUM_PROPRIETARY_CODECS),y) > +CHROMIUM_OPTS += proprietary_codecs=true ffmpeg_branding=\"Chrome\" > +endif > + > +ifeq ($(BR2_PACKAGE_DBUS),y) > +CHROMIUM_OPTS += use_dbus=true > +else > +CHROMIUM_OPTS += use_dbus=false > +endif dbus is included in the CHROMIUM_DEPENDENCIES and the default CHROMIUM_OPTS set use_dbus=true so is dbus really optional? I think you can remove this ifeq ($(BR2_PACKAGE_DBUS),y) section > + > +ifeq ($(BR2_PACKAGE_PCIUTILS),y) > +CHROMIUM_DEPENDENCIES += pciutils > +CHROMIUM_OPTS += use_libpci=true > +else > +CHROMIUM_OPTS += use_libpci=false > +endif > + > +ifeq ($(BR2_PACKAGE_PULSEAUDIO),y) > +CHROMIUM_DEPENDENCIES += pulseaudio > +CHROMIUM_OPTS += use_pulseaudio=true > +else > +CHROMIUM_OPTS += use_pulseaudio=false > +endif > + > +ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y) > +CHROMIUM_DEPENDENCIES += libgtk3 > +CHROMIUM_OPTS += use_gtk3=true > +else > +CHROMIUM_DEPENDENCIES += libgtk2 xlib_libXi xlib_libXtst > +CHROMIUM_OPTS += use_gtk3=false > +endif > + > +ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y) > +CHROMIUM_TARGET_LDFLAGS += --gcc-toolchain=$(TOOLCHAIN_EXTERNAL_INSTALL_DIR) > +else > +CHROMIUM_TARGET_LDFLAGS += --gcc-toolchain=$(HOST_DIR) > +endif > + > +CHROMIUM_TARGET_CFLAGS += $(CHROMIUM_TARGET_LDFLAGS) > +CHROMIUM_TARGET_CXXFLAGS += $(CHROMIUM_TARGET_CFLAGS) > + > +define CHROMIUM_CONFIGURE_CMDS > + mkdir -p $(@D)/third_party/node/linux/node-linux-x64/bin > + ln -sf $(HOST_DIR)/bin/node $(@D)/third_party/node/linux/node-linux-x64/bin/ Given this is hard coded to node-linux-x64 does this mean chromium will only build if BR2_HOSTARCH is x86_64 ? > + > + ( cd $(@D); \ > + $(TARGET_MAKE_ENV) \ > + $(HOST_DIR)/bin/python2 tools/gn/bootstrap/bootstrap.py -s --no-clean; \ > + HOST_AR="$(HOSTAR)" \ > + HOST_NM="$(HOSTNM)" \ > + HOST_CC="$(HOSTCC)" \ > + HOST_CXX="$(HOSTCXX)" \ > + HOST_CFLAGS="$(HOST_CFLAGS)" \ > + HOST_CXXFLAGS="$(HOST_CXXFLAGS)" \ > + TARGET_AR="ar" \ > + TARGET_NM="nm" \ > + TARGET_CC="clang" \ > + TARGET_CXX="clang++" \ > + TARGET_CFLAGS="$(CHROMIUM_TARGET_CFLAGS)" \ > + TARGET_CXXFLAGS="$(CHROMIUM_TARGET_CXXFLAGS)" \ > + TARGET_LDFLAGS="$(CHROMIUM_TARGET_LDFLAGS)" \ > + out/Release/gn gen out/Release --args="$(CHROMIUM_OPTS)" \ > + --script-executable=$(HOST_DIR)/bin/python2 \ > + ) > +endef > + > +define CHROMIUM_BUILD_CMDS > + ( cd $(@D); \ > + $(TARGET_MAKE_ENV) \ > + ninja -j$(PARALLEL_JOBS) -C out/Release chrome chrome_sandbox chromedriver \ > + ) > +endef > + > +define CHROMIUM_INSTALL_TARGET_CMDS > + $(INSTALL) -D $(@D)/out/Release/chrome $(TARGET_DIR)/usr/lib/chromium/chromium > + $(INSTALL) -Dm4755 $(@D)/out/Release/chrome_sandbox \ > + $(TARGET_DIR)/usr/lib/chromium/chrome-sandbox > + cp $(@D)/out/Release/{chrome_{100,200}_percent,resources}.pak \ > + $(@D)/out/Release/chromedriver \ > + $(TARGET_DIR)/usr/lib/chromium/ > + $(INSTALL) -Dm644 -t $(TARGET_DIR)/usr/lib/chromium/locales \ > + $(@D)/out/Release/locales/*.pak > + cp $(@D)/out/Release/icudtl.dat $(TARGET_DIR)/usr/lib/chromium/ > +endef > + > +$(eval $(generic-package)) > diff --git a/package/chromium/toolchain/BUILD.gn b/package/chromium/toolchain/BUILD.gn > new file mode 100644 > index 0000000000..e8525bd67d > --- /dev/null > +++ b/package/chromium/toolchain/BUILD.gn > @@ -0,0 +1,71 @@ > +import("//build/toolchain/gcc_toolchain.gni") > +import("//build/config/sysroot.gni") > + > +gcc_toolchain("host") { > + cc = getenv("HOST_CC") > + cxx = getenv("HOST_CXX") > + ar = getenv("HOST_AR") > + nm = getenv("HOST_NM") > + ld = cxx > + > + extra_cflags = getenv("HOST_CFLAGS") > + extra_cppflags = getenv("HOST_CPPFLAGS") > + extra_cxxflags = getenv("HOST_CXXFLAGS") > + extra_ldflags = getenv("HOST_LDFLAGS") > + > + toolchain_args = { > + cc_wrapper = "" > + current_cpu = host_cpu > + current_os = host_os > + is_clang = false > + use_sysroot = false > + use_lld = false > + } > +} > + > +gcc_toolchain("target") { > + cc = getenv("TARGET_CC") > + cxx = getenv("TARGET_CXX") > + ar = getenv("TARGET_AR") > + nm = getenv("TARGET_NM") > + ld = cxx > + > + extra_cflags = getenv("TARGET_CFLAGS") > + extra_cppflags = getenv("TARGET_CPPFLAGS") > + extra_cxxflags = getenv("TARGET_CXXFLAGS") > + extra_ldflags = getenv("TARGET_LDFLAGS") > + > + toolchain_args = { > + cc_wrapper = "" > + current_cpu = target_cpu > + current_os = target_os > + is_clang = is_clang > + use_sysroot = use_sysroot > + } > +} > + > +gcc_toolchain("v8_snapshot") { > + cc = getenv("V8_CC") > + cxx = getenv("V8_CXX") > + ar = getenv("V8_AR") > + nm = getenv("V8_NM") > + ld = cxx > + > + extra_cflags = getenv("V8_CFLAGS") > + extra_cppflags = getenv("V8_CPPFLAGS") > + extra_cxxflags = getenv("V8_CXXFLAGS") > + extra_ldflags = getenv("V8_LDFLAGS") > + > + toolchain_args = { > + cc_wrapper = "" > + if (target_cpu == "x86" || target_cpu == "arm" || target_cpu == "mipsel") { > + current_cpu = "x86" > + } else { > + current_cpu = "x64" > + } > + current_os = host_os > + is_clang = is_clang > + use_sysroot = false > + } > +} > + > -- > 2.18.0 > > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot Thanks Martin ^ permalink raw reply [flat|nested] 23+ messages in thread
* [Buildroot] [PATCH v6 4/4] chromium: new package 2018-07-14 19:11 ` Martin Bark @ 2018-07-14 22:57 ` Joseph Kogut 2018-07-15 21:54 ` Martin Bark 0 siblings, 1 reply; 23+ messages in thread From: Joseph Kogut @ 2018-07-14 22:57 UTC (permalink / raw) To: buildroot Hi Martin, On Sat, Jul 14, 2018 at 12:11 PM Martin Bark <martin@barkynet.com> wrote: > <snip> > > I tried building for an aarch64 target and it fails with the error > > ERROR at //chrome/installer/linux/BUILD.gn:413:7: Assertion failed. > assert(false, "Linux installer not configured for this architecture.") > > Looking at chrome/installer/linux/BUILD.gn it seems only i386, x86_64, > arm, mipsel and mips64el target architectures are supported. I think > you need to remove BR2_aarch64 and add BR2_mipsel and BR2_mips64el > Can you try adding the argument "enable_linux_installer=false" to CHROMIUM_OPTS in chromium.mk, then reconfiguring and rebuilding? I believe the "linux installer" target here is simply packaging for Debian and Fedora, which this package doesn't use. > > +comment "chromium needs toolchain w/ Glibc, host gcc >= 4.9.0" > > + depends on !BR2_TOOLCHAIN_USES_GLIBC \ > > + || !BR2_HOST_GCC_AT_LEAST_4_9 > > + > > +comment "chromium depends on X.org and needs an OpenGL backend" > > + depends on !BR2_PACKAGE_XORG7 || !BR2_PACKAGE_HAS_LIBGL > > and the comments should also depend on BR2_PACKAGE_CHROMIUM_ARCH_SUPPORTS > > > + > > +CHROMIUM_VERSION = 67.0.3396.79 > > The current stable release of chromium is 67.0.3396.99 > > > +CHROMIUM_DEPENDENCIES = alsa-lib cairo cups dbus freetype harfbuzz \ > > cups should not be listed in CHROMIUM_DEPENDENCIES because you have it > optionally compiled in below > Thanks for the tips, I'll fix these things in the next release. > > +ifeq ($(BR2_PACKAGE_DBUS),y) > > +CHROMIUM_OPTS += use_dbus=true > > +else > > +CHROMIUM_OPTS += use_dbus=false > > +endif > > dbus is included in the CHROMIUM_DEPENDENCIES and the default > CHROMIUM_OPTS set use_dbus=true so is dbus really optional? I think > you can remove this ifeq ($(BR2_PACKAGE_DBUS),y) section > I have this fixed in my WIP branch for next release. > > +define CHROMIUM_CONFIGURE_CMDS > > + mkdir -p $(@D)/third_party/node/linux/node-linux-x64/bin > > + ln -sf $(HOST_DIR)/bin/node $(@D)/third_party/node/linux/node-linux-x64/bin/ > > Given this is hard coded to node-linux-x64 does this mean chromium > will only build if BR2_HOSTARCH is x86_64 ? > I haven't tried building on a different host arch, but this is likely the case. I'm not aware of any other common processors using other architectures that are fast enough to compile Chromium in a reasonable amount of time. Additionally, compiling Chromium requires a minimum of 4 GiB of memory. Is it reasonable to depend on BR2_HOSTARCH = x86_64, or is it worth seeing what can be done to fix this? Thanks, Joseph ^ permalink raw reply [flat|nested] 23+ messages in thread
* [Buildroot] [PATCH v6 4/4] chromium: new package 2018-07-14 22:57 ` Joseph Kogut @ 2018-07-15 21:54 ` Martin Bark 2018-07-16 16:29 ` Joseph Kogut 0 siblings, 1 reply; 23+ messages in thread From: Martin Bark @ 2018-07-15 21:54 UTC (permalink / raw) To: buildroot Joseph, On 14 July 2018 at 23:57, Joseph Kogut <joseph.kogut@gmail.com> wrote: > Hi Martin, > > On Sat, Jul 14, 2018 at 12:11 PM Martin Bark <martin@barkynet.com> wrote: >> > <snip> >> >> I tried building for an aarch64 target and it fails with the error >> >> ERROR at //chrome/installer/linux/BUILD.gn:413:7: Assertion failed. >> assert(false, "Linux installer not configured for this architecture.") >> >> Looking at chrome/installer/linux/BUILD.gn it seems only i386, x86_64, >> arm, mipsel and mips64el target architectures are supported. I think >> you need to remove BR2_aarch64 and add BR2_mipsel and BR2_mips64el >> > > Can you try adding the argument "enable_linux_installer=false" to > CHROMIUM_OPTS in chromium.mk, then reconfiguring and rebuilding? > > I believe the "linux installer" target here is simply packaging for > Debian and Fedora, which this package doesn't use. > Thanks, that go the build further. Now it fails with the following error. Any ideas? ERROR at //build/config/linux/pkg_config.gni:103:17: Script returned non-zero exit code. pkgresult = exec_script(pkg_config_script, args, "value") ^---------- Current dir: /home/br-user/buildroot/output/build/chromium-67.0.3396.79/out/Release/ Command: /home/br-user/buildroot/output/host/bin/python2 -- /home/br-user/buildroot/output/build/chromium-67.0.3396.79/build/config/linux/pkg-config.py -s /home/br-user/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot -a arm64 --system_libdir lib nss -v -lssl3 Returned 1. stderr: Traceback (most recent call last): File "/home/br-user/buildroot/output/build/chromium-67.0.3396.79/build/config/linux/pkg-config.py", line 232, in <module> sys.exit(main()) File "/home/br-user/buildroot/output/build/chromium-67.0.3396.79/build/config/linux/pkg-config.py", line 139, in main prefix = GetPkgConfigPrefixToStrip(options, args) File "/home/br-user/buildroot/output/build/chromium-67.0.3396.79/build/config/linux/pkg-config.py", line 80, in GetPkgConfigPrefixToStrip "--variable=prefix"] + args, env=os.environ) File "/home/br-user/buildroot/output/host/lib/python2.7/subprocess.py", line 216, in check_output process = Popen(stdout=PIPE, *popenargs, **kwargs) File "/home/br-user/buildroot/output/host/lib/python2.7/subprocess.py", line 394, in __init__ errread, errwrite) File "/home/br-user/buildroot/output/host/lib/python2.7/subprocess.py", line 1047, in _execute_child raise child_exception OSError: [Errno 2] No such file or directory See //third_party/nss/BUILD.gn:15:3: whence it was called. pkg_config("system_nss_no_ssl_config") { ^--------------------------------------- See //crypto/BUILD.gn:221:25: which caused the file to be included. public_configs += [ "//third_party/nss:system_nss_no_ssl_config" ] ^------------------------------------------- package/pkg-generic.mk:219: recipe for target '/home/br-user/buildroot/output/build/chromium-67.0.3396.79/.stamp_configured' failed make: *** [/home/br-user/buildroot/output/build/chromium-67.0.3396.79/.stamp_configured] Error 1 Thanks Martin >> > +comment "chromium needs toolchain w/ Glibc, host gcc >= 4.9.0" >> > + depends on !BR2_TOOLCHAIN_USES_GLIBC \ >> > + || !BR2_HOST_GCC_AT_LEAST_4_9 >> > + >> > +comment "chromium depends on X.org and needs an OpenGL backend" >> > + depends on !BR2_PACKAGE_XORG7 || !BR2_PACKAGE_HAS_LIBGL >> >> and the comments should also depend on BR2_PACKAGE_CHROMIUM_ARCH_SUPPORTS >> > >> > + >> > +CHROMIUM_VERSION = 67.0.3396.79 >> >> The current stable release of chromium is 67.0.3396.99 >> > >> > +CHROMIUM_DEPENDENCIES = alsa-lib cairo cups dbus freetype harfbuzz \ >> >> cups should not be listed in CHROMIUM_DEPENDENCIES because you have it >> optionally compiled in below >> > > Thanks for the tips, I'll fix these things in the next release. > >> > +ifeq ($(BR2_PACKAGE_DBUS),y) >> > +CHROMIUM_OPTS += use_dbus=true >> > +else >> > +CHROMIUM_OPTS += use_dbus=false >> > +endif >> >> dbus is included in the CHROMIUM_DEPENDENCIES and the default >> CHROMIUM_OPTS set use_dbus=true so is dbus really optional? I think >> you can remove this ifeq ($(BR2_PACKAGE_DBUS),y) section >> > > I have this fixed in my WIP branch for next release. > >> > +define CHROMIUM_CONFIGURE_CMDS >> > + mkdir -p $(@D)/third_party/node/linux/node-linux-x64/bin >> > + ln -sf $(HOST_DIR)/bin/node $(@D)/third_party/node/linux/node-linux-x64/bin/ >> >> Given this is hard coded to node-linux-x64 does this mean chromium >> will only build if BR2_HOSTARCH is x86_64 ? >> > > I haven't tried building on a different host arch, but this is likely > the case. I'm not aware of any other common processors using other > architectures that are fast enough to compile Chromium in a reasonable > amount of time. Additionally, compiling Chromium requires a minimum of > 4 GiB of memory. > > Is it reasonable to depend on BR2_HOSTARCH = x86_64, or is it worth > seeing what can be done to fix this? > > Thanks, > Joseph ^ permalink raw reply [flat|nested] 23+ messages in thread
* [Buildroot] [PATCH v6 4/4] chromium: new package 2018-07-15 21:54 ` Martin Bark @ 2018-07-16 16:29 ` Joseph Kogut 2018-07-17 11:43 ` Martin Bark 0 siblings, 1 reply; 23+ messages in thread From: Joseph Kogut @ 2018-07-16 16:29 UTC (permalink / raw) To: buildroot Martin, On Sun, Jul 15, 2018 at 2:54 PM Martin Bark <martin@barkynet.com> wrote: > > Joseph, > > On 14 July 2018 at 23:57, Joseph Kogut <joseph.kogut@gmail.com> wrote: > > Hi Martin, > > > > On Sat, Jul 14, 2018 at 12:11 PM Martin Bark <martin@barkynet.com> wrote: > >> > > <snip> > >> > >> I tried building for an aarch64 target and it fails with the error > >> > >> ERROR at //chrome/installer/linux/BUILD.gn:413:7: Assertion failed. > >> assert(false, "Linux installer not configured for this architecture.") > >> > >> Looking at chrome/installer/linux/BUILD.gn it seems only i386, x86_64, > >> arm, mipsel and mips64el target architectures are supported. I think > >> you need to remove BR2_aarch64 and add BR2_mipsel and BR2_mips64el > >> > > > > Can you try adding the argument "enable_linux_installer=false" to > > CHROMIUM_OPTS in chromium.mk, then reconfiguring and rebuilding? > > > > I believe the "linux installer" target here is simply packaging for > > Debian and Fedora, which this package doesn't use. > > > > Thanks, that go the build further. Now it fails with the following > error. Any ideas? > > > > ERROR at //build/config/linux/pkg_config.gni:103:17: Script returned > non-zero exit code. > pkgresult = exec_script(pkg_config_script, args, "value") > ^---------- > Current dir: /home/br-user/buildroot/output/build/chromium-67.0.3396.79/out/Release/ > Command: /home/br-user/buildroot/output/host/bin/python2 -- > /home/br-user/buildroot/output/build/chromium-67.0.3396.79/build/config/linux/pkg-config.py > -s /home/br-user/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot > -a arm64 --system_libdir lib nss -v -lssl3 > Returned 1. > stderr: > > Traceback (most recent call last): > File "/home/br-user/buildroot/output/build/chromium-67.0.3396.79/build/config/linux/pkg-config.py", > line 232, in <module> > sys.exit(main()) > File "/home/br-user/buildroot/output/build/chromium-67.0.3396.79/build/config/linux/pkg-config.py", > line 139, in main > prefix = GetPkgConfigPrefixToStrip(options, args) > File "/home/br-user/buildroot/output/build/chromium-67.0.3396.79/build/config/linux/pkg-config.py", > line 80, in GetPkgConfigPrefixToStrip > "--variable=prefix"] + args, env=os.environ) > File "/home/br-user/buildroot/output/host/lib/python2.7/subprocess.py", > line 216, in check_output > process = Popen(stdout=PIPE, *popenargs, **kwargs) > File "/home/br-user/buildroot/output/host/lib/python2.7/subprocess.py", > line 394, in __init__ > errread, errwrite) > File "/home/br-user/buildroot/output/host/lib/python2.7/subprocess.py", > line 1047, in _execute_child > raise child_exception > OSError: [Errno 2] No such file or directory > > See //third_party/nss/BUILD.gn:15:3: whence it was called. > pkg_config("system_nss_no_ssl_config") { > ^--------------------------------------- > See //crypto/BUILD.gn:221:25: which caused the file to be included. > public_configs += [ "//third_party/nss:system_nss_no_ssl_config" ] > ^------------------------------------------- > package/pkg-generic.mk:219: recipe for target > '/home/br-user/buildroot/output/build/chromium-67.0.3396.79/.stamp_configured' > failed > make: *** [/home/br-user/buildroot/output/build/chromium-67.0.3396.79/.stamp_configured] > Error 1 > I think this issue, along with a few others, have since been resolved in my chromium-v7-wip branch, which you can find at https://github.com/jakogut/buildroot. ^ permalink raw reply [flat|nested] 23+ messages in thread
* [Buildroot] [PATCH v6 4/4] chromium: new package 2018-07-16 16:29 ` Joseph Kogut @ 2018-07-17 11:43 ` Martin Bark 2018-07-26 18:51 ` Joseph Kogut 0 siblings, 1 reply; 23+ messages in thread From: Martin Bark @ 2018-07-17 11:43 UTC (permalink / raw) To: buildroot Joseph, On 16 July 2018 at 17:29, Joseph Kogut <joseph.kogut@gmail.com> wrote: > Martin, > > On Sun, Jul 15, 2018 at 2:54 PM Martin Bark <martin@barkynet.com> wrote: >> >> Joseph, >> >> On 14 July 2018 at 23:57, Joseph Kogut <joseph.kogut@gmail.com> wrote: >> > Hi Martin, >> > >> > On Sat, Jul 14, 2018 at 12:11 PM Martin Bark <martin@barkynet.com> wrote: >> >> >> > <snip> >> >> >> >> I tried building for an aarch64 target and it fails with the error >> >> >> >> ERROR at //chrome/installer/linux/BUILD.gn:413:7: Assertion failed. >> >> assert(false, "Linux installer not configured for this architecture.") >> >> >> >> Looking at chrome/installer/linux/BUILD.gn it seems only i386, x86_64, >> >> arm, mipsel and mips64el target architectures are supported. I think >> >> you need to remove BR2_aarch64 and add BR2_mipsel and BR2_mips64el >> >> >> > >> > Can you try adding the argument "enable_linux_installer=false" to >> > CHROMIUM_OPTS in chromium.mk, then reconfiguring and rebuilding? >> > >> > I believe the "linux installer" target here is simply packaging for >> > Debian and Fedora, which this package doesn't use. >> > >> >> Thanks, that go the build further. Now it fails with the following >> error. Any ideas? >> >> >> >> ERROR at //build/config/linux/pkg_config.gni:103:17: Script returned >> non-zero exit code. >> pkgresult = exec_script(pkg_config_script, args, "value") >> ^---------- >> Current dir: /home/br-user/buildroot/output/build/chromium-67.0.3396.79/out/Release/ >> Command: /home/br-user/buildroot/output/host/bin/python2 -- >> /home/br-user/buildroot/output/build/chromium-67.0.3396.79/build/config/linux/pkg-config.py >> -s /home/br-user/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot >> -a arm64 --system_libdir lib nss -v -lssl3 >> Returned 1. >> stderr: >> >> Traceback (most recent call last): >> File "/home/br-user/buildroot/output/build/chromium-67.0.3396.79/build/config/linux/pkg-config.py", >> line 232, in <module> >> sys.exit(main()) >> File "/home/br-user/buildroot/output/build/chromium-67.0.3396.79/build/config/linux/pkg-config.py", >> line 139, in main >> prefix = GetPkgConfigPrefixToStrip(options, args) >> File "/home/br-user/buildroot/output/build/chromium-67.0.3396.79/build/config/linux/pkg-config.py", >> line 80, in GetPkgConfigPrefixToStrip >> "--variable=prefix"] + args, env=os.environ) >> File "/home/br-user/buildroot/output/host/lib/python2.7/subprocess.py", >> line 216, in check_output >> process = Popen(stdout=PIPE, *popenargs, **kwargs) >> File "/home/br-user/buildroot/output/host/lib/python2.7/subprocess.py", >> line 394, in __init__ >> errread, errwrite) >> File "/home/br-user/buildroot/output/host/lib/python2.7/subprocess.py", >> line 1047, in _execute_child >> raise child_exception >> OSError: [Errno 2] No such file or directory >> >> See //third_party/nss/BUILD.gn:15:3: whence it was called. >> pkg_config("system_nss_no_ssl_config") { >> ^--------------------------------------- >> See //crypto/BUILD.gn:221:25: which caused the file to be included. >> public_configs += [ "//third_party/nss:system_nss_no_ssl_config" ] >> ^------------------------------------------- >> package/pkg-generic.mk:219: recipe for target >> '/home/br-user/buildroot/output/build/chromium-67.0.3396.79/.stamp_configured' >> failed >> make: *** [/home/br-user/buildroot/output/build/chromium-67.0.3396.79/.stamp_configured] >> Error 1 >> > > I think this issue, along with a few others, have since been resolved > in my chromium-v7-wip branch, which you can find at > https://github.com/jakogut/buildroot. I just tried out your chromium-v7-wip branch but unfortunately i get the exact same error. Note i'm building inside the buildroot/base:20180318.1724 docker container. Also, to get the code to build i had to change select BR2_PACKAGE_JPEG_TURBO into BR2_PACKAGE_JPEG in package/chromium/Config.in. I think you should also change the CHROMIUM_DEPENDENCIES from jpeg-turbo to jpeg and let the jpeg package pick which jpeg library to use for the target. Thanks Martin ^ permalink raw reply [flat|nested] 23+ messages in thread
* [Buildroot] [PATCH v6 4/4] chromium: new package 2018-07-17 11:43 ` Martin Bark @ 2018-07-26 18:51 ` Joseph Kogut 0 siblings, 0 replies; 23+ messages in thread From: Joseph Kogut @ 2018-07-26 18:51 UTC (permalink / raw) To: buildroot On Tue, Jul 17, 2018 at 4:43 AM Martin Bark <martin@barkynet.com> wrote: > > Joseph, > > On 16 July 2018 at 17:29, Joseph Kogut <joseph.kogut@gmail.com> wrote: > > Martin, > > > > On Sun, Jul 15, 2018 at 2:54 PM Martin Bark <martin@barkynet.com> wrote: > >> > >> Joseph, > >> > >> On 14 July 2018 at 23:57, Joseph Kogut <joseph.kogut@gmail.com> wrote: > >> > Hi Martin, > >> > > >> > On Sat, Jul 14, 2018 at 12:11 PM Martin Bark <martin@barkynet.com> wrote: > >> >> > >> > <snip> > >> >> > >> >> I tried building for an aarch64 target and it fails with the error > >> >> > >> >> ERROR at //chrome/installer/linux/BUILD.gn:413:7: Assertion failed. > >> >> assert(false, "Linux installer not configured for this architecture.") > >> >> > >> >> Looking at chrome/installer/linux/BUILD.gn it seems only i386, x86_64, > >> >> arm, mipsel and mips64el target architectures are supported. I think > >> >> you need to remove BR2_aarch64 and add BR2_mipsel and BR2_mips64el > >> >> > >> > > >> > Can you try adding the argument "enable_linux_installer=false" to > >> > CHROMIUM_OPTS in chromium.mk, then reconfiguring and rebuilding? > >> > > >> > I believe the "linux installer" target here is simply packaging for > >> > Debian and Fedora, which this package doesn't use. > >> > > >> > >> Thanks, that go the build further. Now it fails with the following > >> error. Any ideas? > >> > >> > >> > >> ERROR at //build/config/linux/pkg_config.gni:103:17: Script returned > >> non-zero exit code. > >> pkgresult = exec_script(pkg_config_script, args, "value") > >> ^---------- > >> Current dir: /home/br-user/buildroot/output/build/chromium-67.0.3396.79/out/Release/ > >> Command: /home/br-user/buildroot/output/host/bin/python2 -- > >> /home/br-user/buildroot/output/build/chromium-67.0.3396.79/build/config/linux/pkg-config.py > >> -s /home/br-user/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot > >> -a arm64 --system_libdir lib nss -v -lssl3 > >> Returned 1. > >> stderr: > >> > >> Traceback (most recent call last): > >> File "/home/br-user/buildroot/output/build/chromium-67.0.3396.79/build/config/linux/pkg-config.py", > >> line 232, in <module> > >> sys.exit(main()) > >> File "/home/br-user/buildroot/output/build/chromium-67.0.3396.79/build/config/linux/pkg-config.py", > >> line 139, in main > >> prefix = GetPkgConfigPrefixToStrip(options, args) > >> File "/home/br-user/buildroot/output/build/chromium-67.0.3396.79/build/config/linux/pkg-config.py", > >> line 80, in GetPkgConfigPrefixToStrip > >> "--variable=prefix"] + args, env=os.environ) > >> File "/home/br-user/buildroot/output/host/lib/python2.7/subprocess.py", > >> line 216, in check_output > >> process = Popen(stdout=PIPE, *popenargs, **kwargs) > >> File "/home/br-user/buildroot/output/host/lib/python2.7/subprocess.py", > >> line 394, in __init__ > >> errread, errwrite) > >> File "/home/br-user/buildroot/output/host/lib/python2.7/subprocess.py", > >> line 1047, in _execute_child > >> raise child_exception > >> OSError: [Errno 2] No such file or directory > >> > >> See //third_party/nss/BUILD.gn:15:3: whence it was called. > >> pkg_config("system_nss_no_ssl_config") { > >> ^--------------------------------------- > >> See //crypto/BUILD.gn:221:25: which caused the file to be included. > >> public_configs += [ "//third_party/nss:system_nss_no_ssl_config" ] > >> ^------------------------------------------- > >> package/pkg-generic.mk:219: recipe for target > >> '/home/br-user/buildroot/output/build/chromium-67.0.3396.79/.stamp_configured' > >> failed > >> make: *** [/home/br-user/buildroot/output/build/chromium-67.0.3396.79/.stamp_configured] > >> Error 1 > >> > > > > I think this issue, along with a few others, have since been resolved > > in my chromium-v7-wip branch, which you can find at > > https://github.com/jakogut/buildroot. > > I just tried out your chromium-v7-wip branch but unfortunately i get > the exact same error. Note i'm building inside the > buildroot/base:20180318.1724 docker container. > > Also, to get the code to build i had to change select > BR2_PACKAGE_JPEG_TURBO into BR2_PACKAGE_JPEG in > package/chromium/Config.in. I think you should also change the > CHROMIUM_DEPENDENCIES from jpeg-turbo to jpeg and let the jpeg package > pick which jpeg library to use for the target. > Skia depends on libjpeg-turbo, and will fail during linking if it's not selected. Specfically, what build error did you encounter? ^ permalink raw reply [flat|nested] 23+ messages in thread
* [Buildroot] [PATCH v6 4/4] chromium: new package 2018-07-10 23:42 ` [Buildroot] [PATCH v6 4/4] chromium: " Joseph Kogut 2018-07-14 19:11 ` Martin Bark @ 2018-07-26 13:31 ` Hao HU 2018-07-26 19:01 ` Joseph Kogut 1 sibling, 1 reply; 23+ messages in thread From: Hao HU @ 2018-07-26 13:31 UTC (permalink / raw) To: buildroot Hello Joseph, I have applied your v6 patch to the Buildroot 2018.05 and wanted to build the chrome in a x86 arch. The Target option is like this : /Target Architecture : i386 Target Architecture Variant i586/ And I have added the following in the lld.mk HOST_LLD_CONF_OPTS += -DLLVM_LINK_LLVM_DYLIB=ON -DLLVM_DYLIB_COMPONENTS=all +ifeq ($(BR2_PACKAGE_CHROMIUM_PROPRIETARY_CODECS),y) +CHROMIUM_OPTS += proprietary_codecs=true ffmpeg_branding=\"Chrome\" +endif And finally I have comment the following in the chromium.mk +ifeq ($(BR2_PACKAGE_CHROMIUM_PROPRIETARY_CODECS),y) + # CHROMIUM_OPTS += proprietary_codecs=true ffmpeg_branding=\"Chrome\" +endif But now there is still a problem /home/as_huhao/eolane/x2m/buildroot-2018.05-IHMI/output/host/bin/ld.lld: error: can't create dynamic relocation R_386_32 against local symbol in readonly segment; recompile object files with -fPIC >>> defined in obj/third_party/ffmpeg/libffmpeg_yasm.a(ffmpeg_yasm/dct32.o) >>> referenced by ../../third_party/ffmpeg/libavcodec/x86/dct32.asm >>> ffmpeg_yasm/dct32.o:(ff_dct32_float_sse) in archive >>> obj/third_party/ffmpeg/libffmpeg_yasm.a could you please tell me how to fix this problem? thank you very much! Hao Joseph Kogut wrote > Signed-off-by: Joseph Kogut < > joseph.kogut@ > > > --- > DEVELOPERS | 1 + > package/Config.in | 1 + > ...iler_cpu_abi-for-buildroot-toolchain.patch | 102 ++++++++++++ > .../0002-Fix-arm-build-with-glibc-2.27.patch | 28 ++++ > package/chromium/Config.in | 64 ++++++++ > package/chromium/chromium.hash | 3 + > package/chromium/chromium.mk | 146 ++++++++++++++++++ > package/chromium/toolchain/BUILD.gn | 71 +++++++++ > 8 files changed, 416 insertions(+) > create mode 100644 > package/chromium/0001-modify-compiler_cpu_abi-for-buildroot-toolchain.patch > create mode 100644 > package/chromium/0002-Fix-arm-build-with-glibc-2.27.patch > create mode 100644 package/chromium/Config.in > create mode 100644 package/chromium/chromium.hash > create mode 100644 package/chromium/chromium.mk > create mode 100644 package/chromium/toolchain/BUILD.gn > > diff --git a/DEVELOPERS b/DEVELOPERS > index 05d2bdde20..e3dde531b4 100644 > --- a/DEVELOPERS > +++ b/DEVELOPERS > @@ -1058,6 +1058,7 @@ F: package/rabbitmq-c/ > N: Joseph Kogut < > joseph.kogut@ > > > F: package/at-spi2-atk/ > F: package/at-spi2-core/ > +F: package/chromium/ > F: package/gconf/ > F: package/libnss/ > F: package/lld/ > diff --git a/package/Config.in b/package/Config.in > index 20fe5ad8ff..2515975df3 100644 > --- a/package/Config.in > +++ b/package/Config.in > @@ -14,6 +14,7 @@ menu "Audio and video applications" > source "package/aumix/Config.in" > source "package/bellagio/Config.in" > source "package/bluez-alsa/Config.in" > + source "package/chromium/Config.in" > source "package/dvblast/Config.in" > source "package/dvdauthor/Config.in" > source "package/dvdrw-tools/Config.in" > diff --git > a/package/chromium/0001-modify-compiler_cpu_abi-for-buildroot-toolchain.patch > b/package/chromium/0001-modify-compiler_cpu_abi-for-buildroot-toolchain.patch > new file mode 100644 > index 0000000000..1848b0bd14 > --- /dev/null > +++ > b/package/chromium/0001-modify-compiler_cpu_abi-for-buildroot-toolchain.patch > @@ -0,0 +1,102 @@ > +From 3d5106d1d4720e1be8a4bd977be38743d6fb1f3c Mon Sep 17 00:00:00 2001 > +From: Joseph Kogut < > joseph.kogut@ > > > +Date: Sun, 10 Jun 2018 09:59:11 -0700 > +Subject: [PATCH] modify compiler_cpu_abi for buildroot toolchain > + > +Signed-off-by: Joseph Kogut < > joseph.kogut@ > > > +--- > + build/config/compiler/BUILD.gn | 36 +++++++++++++++++++--------------- > + 1 file changed, 20 insertions(+), 16 deletions(-) > + > +diff --git a/build/config/compiler/BUILD.gn > b/build/config/compiler/BUILD.gn > +index 461e62da2..27c9f29ed 100644 > +--- a/build/config/compiler/BUILD.gn > ++++ b/build/config/compiler/BUILD.gn > +@@ -683,6 +683,10 @@ config("compiler_cpu_abi") { > + "-march=x86-64", > + ] > + ldflags += [ "-m64" ] > ++ if (is_clang) { > ++ cflags += ["--target=x86_64-buildroot-linux-gnu"] > ++ ldflags += ["--target=x86_64-buildroot-linux-gnu"] > ++ } > + } else if (current_cpu == "x86") { > + cflags += [ "-m32" ] > + ldflags += [ "-m32" ] > +@@ -695,8 +699,8 @@ config("compiler_cpu_abi") { > + } > + } else if (current_cpu == "arm") { > + if (is_clang && !is_android && !is_nacl) { > +- cflags += [ "--target=arm-linux-gnueabihf" ] > +- ldflags += [ "--target=arm-linux-gnueabihf" ] > ++ cflags += [ "--target=arm-buildroot-linux-gnueabihf" ] > ++ ldflags += [ "--target=arm-buildroot-linux-gnueabihf" ] > + } > + if (!is_nacl) { > + cflags += [ > +@@ -709,18 +713,18 @@ config("compiler_cpu_abi") { > + } > + } else if (current_cpu == "arm64") { > + if (is_clang && !is_android && !is_nacl && !is_fuchsia) { > +- cflags += [ "--target=aarch64-linux-gnu" ] > +- ldflags += [ "--target=aarch64-linux-gnu" ] > ++ cflags += [ "--target=aarch64-buildroot-linux-gnu" ] > ++ ldflags += [ "--target=aarch64-buildroot-linux-gnu" ] > + } > + } else if (current_cpu == "mipsel" && !is_nacl) { > + if (custom_toolchain == "") { > + if (is_clang) { > + if (is_android) { > +- cflags += [ "--target=mipsel-linux-android" ] > +- ldflags += [ "--target=mipsel-linux-android" ] > ++ cflags += [ "--target=mipsel-buildroot-linux-android" ] > ++ ldflags += [ "--target=mipsel-buildroot-linux-android" ] > + } else { > +- cflags += [ "--target=mipsel-linux-gnu" ] > +- ldflags += [ "--target=mipsel-linux-gnu" ] > ++ cflags += [ "--target=mipsel-buildroot-linux-gnu" ] > ++ ldflags += [ "--target=mipsel-buildroot-linux-gnu" ] > + } > + } else { > + cflags += [ "-EL" ] > +@@ -799,8 +803,8 @@ config("compiler_cpu_abi") { > + } else if (current_cpu == "mips" && !is_nacl) { > + if (custom_toolchain == "") { > + if (is_clang) { > +- cflags += [ "--target=mips-linux-gnu" ] > +- ldflags += [ "--target=mips-linux-gnu" ] > ++ cflags += [ "--target=mips-buildroot-linux-gnu" ] > ++ ldflags += [ "--target=mips-buildroot-linux-gnu" ] > + } else { > + cflags += [ "-EB" ] > + ldflags += [ "-EB" ] > +@@ -844,11 +848,11 @@ config("compiler_cpu_abi") { > + if (custom_toolchain == "") { > + if (is_clang) { > + if (is_android) { > +- cflags += [ "--target=mips64el-linux-android" ] > +- ldflags += [ "--target=mips64el-linux-android" ] > ++ cflags += [ "--target=mips64el-buildroot-linux-android" ] > ++ ldflags += [ "--target=mips64el-buildroot-linux-android" ] > + } else { > +- cflags += [ "--target=mips64el-linux-gnuabi64" ] > +- ldflags += [ "--target=mips64el-linux-gnuabi64" ] > ++ cflags += [ "--target=mips64el-buildroot-linux-gnuabi64" ] > ++ ldflags += [ "--target=mips64el-buildroot-linux-gnuabi64" ] > + } > + } else { > + cflags += [ > +@@ -905,8 +909,8 @@ config("compiler_cpu_abi") { > + } else if (current_cpu == "mips64") { > + if (custom_toolchain == "") { > + if (is_clang) { > +- cflags += [ "--target=mips64-linux-gnuabi64" ] > +- ldflags += [ "--target=mips64-linux-gnuabi64" ] > ++ cflags += [ "--target=mips64-buildroot-linux-gnuabi64" ] > ++ ldflags += [ "--target=mips64-buildroot-linux-gnuabi64" ] > + } else { > + cflags += [ > + "-EB", > +-- > +2.17.1 > + > diff --git a/package/chromium/0002-Fix-arm-build-with-glibc-2.27.patch > b/package/chromium/0002-Fix-arm-build-with-glibc-2.27.patch > new file mode 100644 > index 0000000000..8aebbd06c8 > --- /dev/null > +++ b/package/chromium/0002-Fix-arm-build-with-glibc-2.27.patch > @@ -0,0 +1,28 @@ > +From aed4599c18586dfac46139a3c32011f804fdaef6 Mon Sep 17 00:00:00 2001 > +From: Joseph Kogut < > joseph.kogut@ > > > +Date: Wed, 13 Jun 2018 13:59:24 -0700 > +Subject: [PATCH] Fix arm build with glibc 2.27 > + > +Upstream patch from: > https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1060155 > + > +Signed-off-by: Joseph Kogut < > joseph.kogut@ > > > +--- > + third_party/crashpad/crashpad/compat/linux/sys/ptrace.h | 2 +- > + 1 file changed, 1 insertion(+), 1 deletion(-) > + > +diff --git a/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h > b/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h > +index 73861576d..e5c95c7cc 100644 > +--- a/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h > ++++ b/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h > +@@ -34,7 +34,7 @@ static constexpr __ptrace_request > PTRACE_GET_THREAD_AREA = > + #endif // !PTRACE_GET_THREAD_AREA && !PT_GET_THREAD_AREA && > defined(__GLIBC__) > + > + // https://sourceware.org/bugzilla/show_bug.cgi?id=22433 > +-#if !defined(PTRACE_GETVFPREGS) && \ > ++#if !defined(PTRACE_GETVFPREGS) && !defined(PT_GETVFPREGS) && \ > + defined(__GLIBC__) && (defined(__arm__) || defined(__arm64__)) > + static constexpr __ptrace_request PTRACE_GETVFPREGS = > + static_cast<__ptrace_request>(27); > +-- > +2.17.1 > + > diff --git a/package/chromium/Config.in b/package/chromium/Config.in > new file mode 100644 > index 0000000000..fa04d3bbd2 > --- /dev/null > +++ b/package/chromium/Config.in > @@ -0,0 +1,64 @@ > +config BR2_PACKAGE_CHROMIUM_ARCH_SUPPORTS > + bool > + default y if BR2_arm > + default y if BR2_aarch64 > + default y if BR2_i386 > + default y if BR2_x86_64 > + > +config BR2_PACKAGE_CHROMIUM_TARGET_ARCH > + string > + default "arm" if BR2_arm > + default "arm64" if BR2_aarch64 > + default "x86" if BR2_i386 > + default "x64" if BR2_x86_64 > + > +menuconfig BR2_PACKAGE_CHROMIUM > + bool "chromium" > + depends on BR2_HOST_GCC_AT_LEAST_4_9 # gn requires -std=c++14 > + depends on BR2_PACKAGE_HAS_LIBGL > + depends on BR2_PACKAGE_XORG7 > + depends on BR2_TOOLCHAIN_USES_GLIBC > + select BR2_PACKAGE_AT_SPI2_ATK > + select BR2_PACKAGE_ALSA_LIB > + select BR2_PACKAGE_FREETYPE > + select BR2_PACKAGE_HARFBUZZ > + select BR2_PACKAGE_HOST_CLANG > + select BR2_PACKAGE_HOST_LLD > + select BR2_PACKAGE_HOST_NINJA > + select BR2_PACKAGE_HOST_NODEJS > + select BR2_PACKAGE_HOST_PYTHON > + select BR2_PACKAGE_JPEG > + select BR2_PACKAGE_LIBDRM > + select BR2_PACKAGE_LIBERATION # runtime > + select BR2_PACKAGE_LIBGLIB2 > + select BR2_PACKAGE_LIBGTK2 if !BR2_PACKAGE_LIBGTK3_X11 > + select BR2_PACKAGE_LIBKRB5 > + select BR2_PACKAGE_LIBNSS > + select BR2_PACKAGE_LIBPNG > + select BR2_PACKAGE_XLIB_LIBXCOMPOSITE > + select BR2_PACKAGE_XLIB_LIBXCURSOR > + select BR2_PACKAGE_XLIB_LIBXI if !BR2_PACKAGE_LIBGTK3_X11 > + select BR2_PACKAGE_XLIB_LIBXRANDR > + select BR2_PACKAGE_XLIB_LIBXSCRNSAVER > + select BR2_PACKAGE_XLIB_LIBXTST if !BR2_PACKAGE_LIBGTK3_X11 > + help > + Chromium is an open-source Web browser project started by > + Google, to provide the source code for the proprietary > + Google Chrome browser. > + > +if BR2_PACKAGE_CHROMIUM > + > +config BR2_PACKAGE_CHROMIUM_PROPRIETARY_CODECS > + bool "Enable proprietary codecs" > + help > + Enables proprietary codecs with additional licensing > + restrictions, such as MP3 and H264 > + > +endif # BR2_PACKAGE_CHROMIUM > + > +comment "chromium needs toolchain w/ Glibc, host gcc >= 4.9.0" > + depends on !BR2_TOOLCHAIN_USES_GLIBC \ > + || !BR2_HOST_GCC_AT_LEAST_4_9 > + > +comment "chromium depends on X.org and needs an OpenGL backend" > + depends on !BR2_PACKAGE_XORG7 || !BR2_PACKAGE_HAS_LIBGL > diff --git a/package/chromium/chromium.hash > b/package/chromium/chromium.hash > new file mode 100644 > index 0000000000..4c39ac5c08 > --- /dev/null > +++ b/package/chromium/chromium.hash > @@ -0,0 +1,3 @@ > +# locally calculated > +sha256 f8b1e5319163e378027826b12cf256b97423bb90e10e2013469d96e03bc9db8a > chromium-67.0.3396.79.tar.xz > +sha256 845022e0c1db1abb41a6ba4cd3c4b674ec290f3359d9d3c78ae558d4c0ed9308 > LICENSE > diff --git a/package/chromium/chromium.mk b/package/chromium/chromium.mk > new file mode 100644 > index 0000000000..465eef17ad > --- /dev/null > +++ b/package/chromium/chromium.mk > @@ -0,0 +1,146 @@ > +################################################################################ > +# > +# Chromium > +# > +################################################################################ > + > +CHROMIUM_VERSION = 67.0.3396.79 > +CHROMIUM_SITE = > https://commondatastorage.googleapis.com/chromium-browser-official > +CHROMIUM_SOURCE = chromium-$(CHROMIUM_VERSION).tar.xz > +CHROMIUM_LICENSE = BSD-Style > +CHROMIUM_LICENSE_FILES = LICENSE > +CHROMIUM_DEPENDENCIES = alsa-lib cairo cups dbus freetype harfbuzz \ > + host-clang host-lld host-ninja host-nodejs host-python \ > + jpeg libdrm libglib2 libkrb5 libnss libpng pango \ > + xlib_libXcomposite xlib_libXScrnSaver xlib_libXcursor \ > + xlib_libXrandr zlib > + > +CHROMIUM_TOOLCHAIN_CONFIG_PATH = $(shell pwd)/package/chromium/toolchain > + > +CHROMIUM_OPTS = \ > + host_toolchain=\"$(CHROMIUM_TOOLCHAIN_CONFIG_PATH):host\" \ > + custom_toolchain=\"$(CHROMIUM_TOOLCHAIN_CONFIG_PATH):target\" \ > + use_lld=true \ > + is_clang=true \ > + clang_use_chrome_plugins=false \ > + treat_warnings_as_errors=false \ > + use_gnome_keyring=false \ > + linux_use_bundled_binutils=false \ > + use_sysroot=true \ > + target_sysroot=\"$(STAGING_DIR)\" \ > + target_cpu=\"$(BR2_PACKAGE_CHROMIUM_TARGET_ARCH)\" \ > + enable_nacl=false \ > + use_dbus=true \ > + use_system_zlib=true \ > + use_system_libjpeg=true \ > + use_system_libpng=true \ > + use_system_libdrm=true \ > + use_system_harfbuzz=true \ > + use_system_freetype=true > + > +# tcmalloc has portability issues > +CHROMIUM_OPTS += use_allocator=\"none\" > + > +# V8 snapshots require compiling V8 with the same word size as the target > +# architecture, which means the host needs to have that toolchain > available. > +CHROMIUM_OPTS += v8_use_snapshot=false > + > +ifeq ($(BR2_ENABLE_DEBUG),y) > +CHROMIUM_OPTS += is_debug=true > +else > +CHROMIUM_OPTS += is_debug=false > +endif > + > +ifeq ($(BR2_PACKAGE_CUPS),y) > +CHROMIUM_DEPENDENCIES += cups > +CHROMIUM_OPTS += use_cups=true > +else > +CHROMIUM_OPTS += use_cups=false > +endif > + > +ifeq ($(BR2_PACKAGE_CHROMIUM_PROPRIETARY_CODECS),y) > +CHROMIUM_OPTS += proprietary_codecs=true ffmpeg_branding=\"Chrome\" > +endif > + > +ifeq ($(BR2_PACKAGE_DBUS),y) > +CHROMIUM_OPTS += use_dbus=true > +else > +CHROMIUM_OPTS += use_dbus=false > +endif > + > +ifeq ($(BR2_PACKAGE_PCIUTILS),y) > +CHROMIUM_DEPENDENCIES += pciutils > +CHROMIUM_OPTS += use_libpci=true > +else > +CHROMIUM_OPTS += use_libpci=false > +endif > + > +ifeq ($(BR2_PACKAGE_PULSEAUDIO),y) > +CHROMIUM_DEPENDENCIES += pulseaudio > +CHROMIUM_OPTS += use_pulseaudio=true > +else > +CHROMIUM_OPTS += use_pulseaudio=false > +endif > + > +ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y) > +CHROMIUM_DEPENDENCIES += libgtk3 > +CHROMIUM_OPTS += use_gtk3=true > +else > +CHROMIUM_DEPENDENCIES += libgtk2 xlib_libXi xlib_libXtst > +CHROMIUM_OPTS += use_gtk3=false > +endif > + > +ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y) > +CHROMIUM_TARGET_LDFLAGS += > --gcc-toolchain=$(TOOLCHAIN_EXTERNAL_INSTALL_DIR) > +else > +CHROMIUM_TARGET_LDFLAGS += --gcc-toolchain=$(HOST_DIR) > +endif > + > +CHROMIUM_TARGET_CFLAGS += $(CHROMIUM_TARGET_LDFLAGS) > +CHROMIUM_TARGET_CXXFLAGS += $(CHROMIUM_TARGET_CFLAGS) > + > +define CHROMIUM_CONFIGURE_CMDS > + mkdir -p $(@D)/third_party/node/linux/node-linux-x64/bin > + ln -sf $(HOST_DIR)/bin/node > $(@D)/third_party/node/linux/node-linux-x64/bin/ > + > + ( cd $(@D); \ > + $(TARGET_MAKE_ENV) \ > + $(HOST_DIR)/bin/python2 tools/gn/bootstrap/bootstrap.py -s --no-clean; > \ > + HOST_AR="$(HOSTAR)" \ > + HOST_NM="$(HOSTNM)" \ > + HOST_CC="$(HOSTCC)" \ > + HOST_CXX="$(HOSTCXX)" \ > + HOST_CFLAGS="$(HOST_CFLAGS)" \ > + HOST_CXXFLAGS="$(HOST_CXXFLAGS)" \ > + TARGET_AR="ar" \ > + TARGET_NM="nm" \ > + TARGET_CC="clang" \ > + TARGET_CXX="clang++" \ > + TARGET_CFLAGS="$(CHROMIUM_TARGET_CFLAGS)" \ > + TARGET_CXXFLAGS="$(CHROMIUM_TARGET_CXXFLAGS)" \ > + TARGET_LDFLAGS="$(CHROMIUM_TARGET_LDFLAGS)" \ > + out/Release/gn gen out/Release --args="$(CHROMIUM_OPTS)" \ > + --script-executable=$(HOST_DIR)/bin/python2 \ > + ) > +endef > + > +define CHROMIUM_BUILD_CMDS > + ( cd $(@D); \ > + $(TARGET_MAKE_ENV) \ > + ninja -j$(PARALLEL_JOBS) -C out/Release chrome chrome_sandbox > chromedriver \ > + ) > +endef > + > +define CHROMIUM_INSTALL_TARGET_CMDS > + $(INSTALL) -D $(@D)/out/Release/chrome > $(TARGET_DIR)/usr/lib/chromium/chromium > + $(INSTALL) -Dm4755 $(@D)/out/Release/chrome_sandbox \ > + $(TARGET_DIR)/usr/lib/chromium/chrome-sandbox > + cp $(@D)/out/Release/{chrome_{100,200}_percent,resources}.pak \ > + $(@D)/out/Release/chromedriver \ > + $(TARGET_DIR)/usr/lib/chromium/ > + $(INSTALL) -Dm644 -t $(TARGET_DIR)/usr/lib/chromium/locales \ > + $(@D)/out/Release/locales/*.pak > + cp $(@D)/out/Release/icudtl.dat $(TARGET_DIR)/usr/lib/chromium/ > +endef > + > +$(eval $(generic-package)) > diff --git a/package/chromium/toolchain/BUILD.gn > b/package/chromium/toolchain/BUILD.gn > new file mode 100644 > index 0000000000..e8525bd67d > --- /dev/null > +++ b/package/chromium/toolchain/BUILD.gn > @@ -0,0 +1,71 @@ > +import("//build/toolchain/gcc_toolchain.gni") > +import("//build/config/sysroot.gni") > + > +gcc_toolchain("host") { > + cc = getenv("HOST_CC") > + cxx = getenv("HOST_CXX") > + ar = getenv("HOST_AR") > + nm = getenv("HOST_NM") > + ld = cxx > + > + extra_cflags = getenv("HOST_CFLAGS") > + extra_cppflags = getenv("HOST_CPPFLAGS") > + extra_cxxflags = getenv("HOST_CXXFLAGS") > + extra_ldflags = getenv("HOST_LDFLAGS") > + > + toolchain_args = { > + cc_wrapper = "" > + current_cpu = host_cpu > + current_os = host_os > + is_clang = false > + use_sysroot = false > + use_lld = false > + } > +} > + > +gcc_toolchain("target") { > + cc = getenv("TARGET_CC") > + cxx = getenv("TARGET_CXX") > + ar = getenv("TARGET_AR") > + nm = getenv("TARGET_NM") > + ld = cxx > + > + extra_cflags = getenv("TARGET_CFLAGS") > + extra_cppflags = getenv("TARGET_CPPFLAGS") > + extra_cxxflags = getenv("TARGET_CXXFLAGS") > + extra_ldflags = getenv("TARGET_LDFLAGS") > + > + toolchain_args = { > + cc_wrapper = "" > + current_cpu = target_cpu > + current_os = target_os > + is_clang = is_clang > + use_sysroot = use_sysroot > + } > +} > + > +gcc_toolchain("v8_snapshot") { > + cc = getenv("V8_CC") > + cxx = getenv("V8_CXX") > + ar = getenv("V8_AR") > + nm = getenv("V8_NM") > + ld = cxx > + > + extra_cflags = getenv("V8_CFLAGS") > + extra_cppflags = getenv("V8_CPPFLAGS") > + extra_cxxflags = getenv("V8_CXXFLAGS") > + extra_ldflags = getenv("V8_LDFLAGS") > + > + toolchain_args = { > + cc_wrapper = "" > + if (target_cpu == "x86" || target_cpu == "arm" || target_cpu == > "mipsel") { > + current_cpu = "x86" > + } else { > + current_cpu = "x64" > + } > + current_os = host_os > + is_clang = is_clang > + use_sysroot = false > + } > +} > + > -- > 2.18.0 > > _______________________________________________ > buildroot mailing list > buildroot@ > http://lists.busybox.net/mailman/listinfo/buildroot Joseph Kogut wrote > Signed-off-by: Joseph Kogut < > joseph.kogut@ > > > --- > DEVELOPERS | 1 + > package/Config.in | 1 + > ...iler_cpu_abi-for-buildroot-toolchain.patch | 102 ++++++++++++ > .../0002-Fix-arm-build-with-glibc-2.27.patch | 28 ++++ > package/chromium/Config.in | 64 ++++++++ > package/chromium/chromium.hash | 3 + > package/chromium/chromium.mk | 146 ++++++++++++++++++ > package/chromium/toolchain/BUILD.gn | 71 +++++++++ > 8 files changed, 416 insertions(+) > create mode 100644 > package/chromium/0001-modify-compiler_cpu_abi-for-buildroot-toolchain.patch > create mode 100644 > package/chromium/0002-Fix-arm-build-with-glibc-2.27.patch > create mode 100644 package/chromium/Config.in > create mode 100644 package/chromium/chromium.hash > create mode 100644 package/chromium/chromium.mk > create mode 100644 package/chromium/toolchain/BUILD.gn > > diff --git a/DEVELOPERS b/DEVELOPERS > index 05d2bdde20..e3dde531b4 100644 > --- a/DEVELOPERS > +++ b/DEVELOPERS > @@ -1058,6 +1058,7 @@ F: package/rabbitmq-c/ > N: Joseph Kogut < > joseph.kogut@ > > > F: package/at-spi2-atk/ > F: package/at-spi2-core/ > +F: package/chromium/ > F: package/gconf/ > F: package/libnss/ > F: package/lld/ > diff --git a/package/Config.in b/package/Config.in > index 20fe5ad8ff..2515975df3 100644 > --- a/package/Config.in > +++ b/package/Config.in > @@ -14,6 +14,7 @@ menu "Audio and video applications" > source "package/aumix/Config.in" > source "package/bellagio/Config.in" > source "package/bluez-alsa/Config.in" > + source "package/chromium/Config.in" > source "package/dvblast/Config.in" > source "package/dvdauthor/Config.in" > source "package/dvdrw-tools/Config.in" > diff --git > a/package/chromium/0001-modify-compiler_cpu_abi-for-buildroot-toolchain.patch > b/package/chromium/0001-modify-compiler_cpu_abi-for-buildroot-toolchain.patch > new file mode 100644 > index 0000000000..1848b0bd14 > --- /dev/null > +++ > b/package/chromium/0001-modify-compiler_cpu_abi-for-buildroot-toolchain.patch > @@ -0,0 +1,102 @@ > +From 3d5106d1d4720e1be8a4bd977be38743d6fb1f3c Mon Sep 17 00:00:00 2001 > +From: Joseph Kogut < > joseph.kogut@ > > > +Date: Sun, 10 Jun 2018 09:59:11 -0700 > +Subject: [PATCH] modify compiler_cpu_abi for buildroot toolchain > + > +Signed-off-by: Joseph Kogut < > joseph.kogut@ > > > +--- > + build/config/compiler/BUILD.gn | 36 +++++++++++++++++++--------------- > + 1 file changed, 20 insertions(+), 16 deletions(-) > + > +diff --git a/build/config/compiler/BUILD.gn > b/build/config/compiler/BUILD.gn > +index 461e62da2..27c9f29ed 100644 > +--- a/build/config/compiler/BUILD.gn > ++++ b/build/config/compiler/BUILD.gn > +@@ -683,6 +683,10 @@ config("compiler_cpu_abi") { > + "-march=x86-64", > + ] > + ldflags += [ "-m64" ] > ++ if (is_clang) { > ++ cflags += ["--target=x86_64-buildroot-linux-gnu"] > ++ ldflags += ["--target=x86_64-buildroot-linux-gnu"] > ++ } > + } else if (current_cpu == "x86") { > + cflags += [ "-m32" ] > + ldflags += [ "-m32" ] > +@@ -695,8 +699,8 @@ config("compiler_cpu_abi") { > + } > + } else if (current_cpu == "arm") { > + if (is_clang && !is_android && !is_nacl) { > +- cflags += [ "--target=arm-linux-gnueabihf" ] > +- ldflags += [ "--target=arm-linux-gnueabihf" ] > ++ cflags += [ "--target=arm-buildroot-linux-gnueabihf" ] > ++ ldflags += [ "--target=arm-buildroot-linux-gnueabihf" ] > + } > + if (!is_nacl) { > + cflags += [ > +@@ -709,18 +713,18 @@ config("compiler_cpu_abi") { > + } > + } else if (current_cpu == "arm64") { > + if (is_clang && !is_android && !is_nacl && !is_fuchsia) { > +- cflags += [ "--target=aarch64-linux-gnu" ] > +- ldflags += [ "--target=aarch64-linux-gnu" ] > ++ cflags += [ "--target=aarch64-buildroot-linux-gnu" ] > ++ ldflags += [ "--target=aarch64-buildroot-linux-gnu" ] > + } > + } else if (current_cpu == "mipsel" && !is_nacl) { > + if (custom_toolchain == "") { > + if (is_clang) { > + if (is_android) { > +- cflags += [ "--target=mipsel-linux-android" ] > +- ldflags += [ "--target=mipsel-linux-android" ] > ++ cflags += [ "--target=mipsel-buildroot-linux-android" ] > ++ ldflags += [ "--target=mipsel-buildroot-linux-android" ] > + } else { > +- cflags += [ "--target=mipsel-linux-gnu" ] > +- ldflags += [ "--target=mipsel-linux-gnu" ] > ++ cflags += [ "--target=mipsel-buildroot-linux-gnu" ] > ++ ldflags += [ "--target=mipsel-buildroot-linux-gnu" ] > + } > + } else { > + cflags += [ "-EL" ] > +@@ -799,8 +803,8 @@ config("compiler_cpu_abi") { > + } else if (current_cpu == "mips" && !is_nacl) { > + if (custom_toolchain == "") { > + if (is_clang) { > +- cflags += [ "--target=mips-linux-gnu" ] > +- ldflags += [ "--target=mips-linux-gnu" ] > ++ cflags += [ "--target=mips-buildroot-linux-gnu" ] > ++ ldflags += [ "--target=mips-buildroot-linux-gnu" ] > + } else { > + cflags += [ "-EB" ] > + ldflags += [ "-EB" ] > +@@ -844,11 +848,11 @@ config("compiler_cpu_abi") { > + if (custom_toolchain == "") { > + if (is_clang) { > + if (is_android) { > +- cflags += [ "--target=mips64el-linux-android" ] > +- ldflags += [ "--target=mips64el-linux-android" ] > ++ cflags += [ "--target=mips64el-buildroot-linux-android" ] > ++ ldflags += [ "--target=mips64el-buildroot-linux-android" ] > + } else { > +- cflags += [ "--target=mips64el-linux-gnuabi64" ] > +- ldflags += [ "--target=mips64el-linux-gnuabi64" ] > ++ cflags += [ "--target=mips64el-buildroot-linux-gnuabi64" ] > ++ ldflags += [ "--target=mips64el-buildroot-linux-gnuabi64" ] > + } > + } else { > + cflags += [ > +@@ -905,8 +909,8 @@ config("compiler_cpu_abi") { > + } else if (current_cpu == "mips64") { > + if (custom_toolchain == "") { > + if (is_clang) { > +- cflags += [ "--target=mips64-linux-gnuabi64" ] > +- ldflags += [ "--target=mips64-linux-gnuabi64" ] > ++ cflags += [ "--target=mips64-buildroot-linux-gnuabi64" ] > ++ ldflags += [ "--target=mips64-buildroot-linux-gnuabi64" ] > + } else { > + cflags += [ > + "-EB", > +-- > +2.17.1 > + > diff --git a/package/chromium/0002-Fix-arm-build-with-glibc-2.27.patch > b/package/chromium/0002-Fix-arm-build-with-glibc-2.27.patch > new file mode 100644 > index 0000000000..8aebbd06c8 > --- /dev/null > +++ b/package/chromium/0002-Fix-arm-build-with-glibc-2.27.patch > @@ -0,0 +1,28 @@ > +From aed4599c18586dfac46139a3c32011f804fdaef6 Mon Sep 17 00:00:00 2001 > +From: Joseph Kogut < > joseph.kogut@ > > > +Date: Wed, 13 Jun 2018 13:59:24 -0700 > +Subject: [PATCH] Fix arm build with glibc 2.27 > + > +Upstream patch from: > https://chromium-review.googlesource.com/c/crashpad/crashpad/+/1060155 > + > +Signed-off-by: Joseph Kogut < > joseph.kogut@ > > > +--- > + third_party/crashpad/crashpad/compat/linux/sys/ptrace.h | 2 +- > + 1 file changed, 1 insertion(+), 1 deletion(-) > + > +diff --git a/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h > b/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h > +index 73861576d..e5c95c7cc 100644 > +--- a/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h > ++++ b/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h > +@@ -34,7 +34,7 @@ static constexpr __ptrace_request > PTRACE_GET_THREAD_AREA = > + #endif // !PTRACE_GET_THREAD_AREA && !PT_GET_THREAD_AREA && > defined(__GLIBC__) > + > + // https://sourceware.org/bugzilla/show_bug.cgi?id=22433 > +-#if !defined(PTRACE_GETVFPREGS) && \ > ++#if !defined(PTRACE_GETVFPREGS) && !defined(PT_GETVFPREGS) && \ > + defined(__GLIBC__) && (defined(__arm__) || defined(__arm64__)) > + static constexpr __ptrace_request PTRACE_GETVFPREGS = > + static_cast<__ptrace_request>(27); > +-- > +2.17.1 > + > diff --git a/package/chromium/Config.in b/package/chromium/Config.in > new file mode 100644 > index 0000000000..fa04d3bbd2 > --- /dev/null > +++ b/package/chromium/Config.in > @@ -0,0 +1,64 @@ > +config BR2_PACKAGE_CHROMIUM_ARCH_SUPPORTS > + bool > + default y if BR2_arm > + default y if BR2_aarch64 > + default y if BR2_i386 > + default y if BR2_x86_64 > + > +config BR2_PACKAGE_CHROMIUM_TARGET_ARCH > + string > + default "arm" if BR2_arm > + default "arm64" if BR2_aarch64 > + default "x86" if BR2_i386 > + default "x64" if BR2_x86_64 > + > +menuconfig BR2_PACKAGE_CHROMIUM > + bool "chromium" > + depends on BR2_HOST_GCC_AT_LEAST_4_9 # gn requires -std=c++14 > + depends on BR2_PACKAGE_HAS_LIBGL > + depends on BR2_PACKAGE_XORG7 > + depends on BR2_TOOLCHAIN_USES_GLIBC > + select BR2_PACKAGE_AT_SPI2_ATK > + select BR2_PACKAGE_ALSA_LIB > + select BR2_PACKAGE_FREETYPE > + select BR2_PACKAGE_HARFBUZZ > + select BR2_PACKAGE_HOST_CLANG > + select BR2_PACKAGE_HOST_LLD > + select BR2_PACKAGE_HOST_NINJA > + select BR2_PACKAGE_HOST_NODEJS > + select BR2_PACKAGE_HOST_PYTHON > + select BR2_PACKAGE_JPEG > + select BR2_PACKAGE_LIBDRM > + select BR2_PACKAGE_LIBERATION # runtime > + select BR2_PACKAGE_LIBGLIB2 > + select BR2_PACKAGE_LIBGTK2 if !BR2_PACKAGE_LIBGTK3_X11 > + select BR2_PACKAGE_LIBKRB5 > + select BR2_PACKAGE_LIBNSS > + select BR2_PACKAGE_LIBPNG > + select BR2_PACKAGE_XLIB_LIBXCOMPOSITE > + select BR2_PACKAGE_XLIB_LIBXCURSOR > + select BR2_PACKAGE_XLIB_LIBXI if !BR2_PACKAGE_LIBGTK3_X11 > + select BR2_PACKAGE_XLIB_LIBXRANDR > + select BR2_PACKAGE_XLIB_LIBXSCRNSAVER > + select BR2_PACKAGE_XLIB_LIBXTST if !BR2_PACKAGE_LIBGTK3_X11 > + help > + Chromium is an open-source Web browser project started by > + Google, to provide the source code for the proprietary > + Google Chrome browser. > + > +if BR2_PACKAGE_CHROMIUM > + > +config BR2_PACKAGE_CHROMIUM_PROPRIETARY_CODECS > + bool "Enable proprietary codecs" > + help > + Enables proprietary codecs with additional licensing > + restrictions, such as MP3 and H264 > + > +endif # BR2_PACKAGE_CHROMIUM > + > +comment "chromium needs toolchain w/ Glibc, host gcc >= 4.9.0" > + depends on !BR2_TOOLCHAIN_USES_GLIBC \ > + || !BR2_HOST_GCC_AT_LEAST_4_9 > + > +comment "chromium depends on X.org and needs an OpenGL backend" > + depends on !BR2_PACKAGE_XORG7 || !BR2_PACKAGE_HAS_LIBGL > diff --git a/package/chromium/chromium.hash > b/package/chromium/chromium.hash > new file mode 100644 > index 0000000000..4c39ac5c08 > --- /dev/null > +++ b/package/chromium/chromium.hash > @@ -0,0 +1,3 @@ > +# locally calculated > +sha256 f8b1e5319163e378027826b12cf256b97423bb90e10e2013469d96e03bc9db8a > chromium-67.0.3396.79.tar.xz > +sha256 845022e0c1db1abb41a6ba4cd3c4b674ec290f3359d9d3c78ae558d4c0ed9308 > LICENSE > diff --git a/package/chromium/chromium.mk b/package/chromium/chromium.mk > new file mode 100644 > index 0000000000..465eef17ad > --- /dev/null > +++ b/package/chromium/chromium.mk > @@ -0,0 +1,146 @@ > +################################################################################ > +# > +# Chromium > +# > +################################################################################ > + > +CHROMIUM_VERSION = 67.0.3396.79 > +CHROMIUM_SITE = > https://commondatastorage.googleapis.com/chromium-browser-official > +CHROMIUM_SOURCE = chromium-$(CHROMIUM_VERSION).tar.xz > +CHROMIUM_LICENSE = BSD-Style > +CHROMIUM_LICENSE_FILES = LICENSE > +CHROMIUM_DEPENDENCIES = alsa-lib cairo cups dbus freetype harfbuzz \ > + host-clang host-lld host-ninja host-nodejs host-python \ > + jpeg libdrm libglib2 libkrb5 libnss libpng pango \ > + xlib_libXcomposite xlib_libXScrnSaver xlib_libXcursor \ > + xlib_libXrandr zlib > + > +CHROMIUM_TOOLCHAIN_CONFIG_PATH = $(shell pwd)/package/chromium/toolchain > + > +CHROMIUM_OPTS = \ > + host_toolchain=\"$(CHROMIUM_TOOLCHAIN_CONFIG_PATH):host\" \ > + custom_toolchain=\"$(CHROMIUM_TOOLCHAIN_CONFIG_PATH):target\" \ > + use_lld=true \ > + is_clang=true \ > + clang_use_chrome_plugins=false \ > + treat_warnings_as_errors=false \ > + use_gnome_keyring=false \ > + linux_use_bundled_binutils=false \ > + use_sysroot=true \ > + target_sysroot=\"$(STAGING_DIR)\" \ > + target_cpu=\"$(BR2_PACKAGE_CHROMIUM_TARGET_ARCH)\" \ > + enable_nacl=false \ > + use_dbus=true \ > + use_system_zlib=true \ > + use_system_libjpeg=true \ > + use_system_libpng=true \ > + use_system_libdrm=true \ > + use_system_harfbuzz=true \ > + use_system_freetype=true > + > +# tcmalloc has portability issues > +CHROMIUM_OPTS += use_allocator=\"none\" > + > +# V8 snapshots require compiling V8 with the same word size as the target > +# architecture, which means the host needs to have that toolchain > available. > +CHROMIUM_OPTS += v8_use_snapshot=false > + > +ifeq ($(BR2_ENABLE_DEBUG),y) > +CHROMIUM_OPTS += is_debug=true > +else > +CHROMIUM_OPTS += is_debug=false > +endif > + > +ifeq ($(BR2_PACKAGE_CUPS),y) > +CHROMIUM_DEPENDENCIES += cups > +CHROMIUM_OPTS += use_cups=true > +else > +CHROMIUM_OPTS += use_cups=false > +endif > + > +ifeq ($(BR2_PACKAGE_CHROMIUM_PROPRIETARY_CODECS),y) > +CHROMIUM_OPTS += proprietary_codecs=true ffmpeg_branding=\"Chrome\" > +endif > + > +ifeq ($(BR2_PACKAGE_DBUS),y) > +CHROMIUM_OPTS += use_dbus=true > +else > +CHROMIUM_OPTS += use_dbus=false > +endif > + > +ifeq ($(BR2_PACKAGE_PCIUTILS),y) > +CHROMIUM_DEPENDENCIES += pciutils > +CHROMIUM_OPTS += use_libpci=true > +else > +CHROMIUM_OPTS += use_libpci=false > +endif > + > +ifeq ($(BR2_PACKAGE_PULSEAUDIO),y) > +CHROMIUM_DEPENDENCIES += pulseaudio > +CHROMIUM_OPTS += use_pulseaudio=true > +else > +CHROMIUM_OPTS += use_pulseaudio=false > +endif > + > +ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y) > +CHROMIUM_DEPENDENCIES += libgtk3 > +CHROMIUM_OPTS += use_gtk3=true > +else > +CHROMIUM_DEPENDENCIES += libgtk2 xlib_libXi xlib_libXtst > +CHROMIUM_OPTS += use_gtk3=false > +endif > + > +ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y) > +CHROMIUM_TARGET_LDFLAGS += > --gcc-toolchain=$(TOOLCHAIN_EXTERNAL_INSTALL_DIR) > +else > +CHROMIUM_TARGET_LDFLAGS += --gcc-toolchain=$(HOST_DIR) > +endif > + > +CHROMIUM_TARGET_CFLAGS += $(CHROMIUM_TARGET_LDFLAGS) > +CHROMIUM_TARGET_CXXFLAGS += $(CHROMIUM_TARGET_CFLAGS) > + > +define CHROMIUM_CONFIGURE_CMDS > + mkdir -p $(@D)/third_party/node/linux/node-linux-x64/bin > + ln -sf $(HOST_DIR)/bin/node > $(@D)/third_party/node/linux/node-linux-x64/bin/ > + > + ( cd $(@D); \ > + $(TARGET_MAKE_ENV) \ > + $(HOST_DIR)/bin/python2 tools/gn/bootstrap/bootstrap.py -s --no-clean; > \ > + HOST_AR="$(HOSTAR)" \ > + HOST_NM="$(HOSTNM)" \ > + HOST_CC="$(HOSTCC)" \ > + HOST_CXX="$(HOSTCXX)" \ > + HOST_CFLAGS="$(HOST_CFLAGS)" \ > + HOST_CXXFLAGS="$(HOST_CXXFLAGS)" \ > + TARGET_AR="ar" \ > + TARGET_NM="nm" \ > + TARGET_CC="clang" \ > + TARGET_CXX="clang++" \ > + TARGET_CFLAGS="$(CHROMIUM_TARGET_CFLAGS)" \ > + TARGET_CXXFLAGS="$(CHROMIUM_TARGET_CXXFLAGS)" \ > + TARGET_LDFLAGS="$(CHROMIUM_TARGET_LDFLAGS)" \ > + out/Release/gn gen out/Release --args="$(CHROMIUM_OPTS)" \ > + --script-executable=$(HOST_DIR)/bin/python2 \ > + ) > +endef > + > +define CHROMIUM_BUILD_CMDS > + ( cd $(@D); \ > + $(TARGET_MAKE_ENV) \ > + ninja -j$(PARALLEL_JOBS) -C out/Release chrome chrome_sandbox > chromedriver \ > + ) > +endef > + > +define CHROMIUM_INSTALL_TARGET_CMDS > + $(INSTALL) -D $(@D)/out/Release/chrome > $(TARGET_DIR)/usr/lib/chromium/chromium > + $(INSTALL) -Dm4755 $(@D)/out/Release/chrome_sandbox \ > + $(TARGET_DIR)/usr/lib/chromium/chrome-sandbox > + cp $(@D)/out/Release/{chrome_{100,200}_percent,resources}.pak \ > + $(@D)/out/Release/chromedriver \ > + $(TARGET_DIR)/usr/lib/chromium/ > + $(INSTALL) -Dm644 -t $(TARGET_DIR)/usr/lib/chromium/locales \ > + $(@D)/out/Release/locales/*.pak > + cp $(@D)/out/Release/icudtl.dat $(TARGET_DIR)/usr/lib/chromium/ > +endef > + > +$(eval $(generic-package)) > diff --git a/package/chromium/toolchain/BUILD.gn > b/package/chromium/toolchain/BUILD.gn > new file mode 100644 > index 0000000000..e8525bd67d > --- /dev/null > +++ b/package/chromium/toolchain/BUILD.gn > @@ -0,0 +1,71 @@ > +import("//build/toolchain/gcc_toolchain.gni") > +import("//build/config/sysroot.gni") > + > +gcc_toolchain("host") { > + cc = getenv("HOST_CC") > + cxx = getenv("HOST_CXX") > + ar = getenv("HOST_AR") > + nm = getenv("HOST_NM") > + ld = cxx > + > + extra_cflags = getenv("HOST_CFLAGS") > + extra_cppflags = getenv("HOST_CPPFLAGS") > + extra_cxxflags = getenv("HOST_CXXFLAGS") > + extra_ldflags = getenv("HOST_LDFLAGS") > + > + toolchain_args = { > + cc_wrapper = "" > + current_cpu = host_cpu > + current_os = host_os > + is_clang = false > + use_sysroot = false > + use_lld = false > + } > +} > + > +gcc_toolchain("target") { > + cc = getenv("TARGET_CC") > + cxx = getenv("TARGET_CXX") > + ar = getenv("TARGET_AR") > + nm = getenv("TARGET_NM") > + ld = cxx > + > + extra_cflags = getenv("TARGET_CFLAGS") > + extra_cppflags = getenv("TARGET_CPPFLAGS") > + extra_cxxflags = getenv("TARGET_CXXFLAGS") > + extra_ldflags = getenv("TARGET_LDFLAGS") > + > + toolchain_args = { > + cc_wrapper = "" > + current_cpu = target_cpu > + current_os = target_os > + is_clang = is_clang > + use_sysroot = use_sysroot > + } > +} > + > +gcc_toolchain("v8_snapshot") { > + cc = getenv("V8_CC") > + cxx = getenv("V8_CXX") > + ar = getenv("V8_AR") > + nm = getenv("V8_NM") > + ld = cxx > + > + extra_cflags = getenv("V8_CFLAGS") > + extra_cppflags = getenv("V8_CPPFLAGS") > + extra_cxxflags = getenv("V8_CXXFLAGS") > + extra_ldflags = getenv("V8_LDFLAGS") > + > + toolchain_args = { > + cc_wrapper = "" > + if (target_cpu == "x86" || target_cpu == "arm" || target_cpu == > "mipsel") { > + current_cpu = "x86" > + } else { > + current_cpu = "x64" > + } > + current_os = host_os > + is_clang = is_clang > + use_sysroot = false > + } > +} > + > -- > 2.18.0 > > _______________________________________________ > buildroot mailing list > buildroot@ > http://lists.busybox.net/mailman/listinfo/buildroot -- Sent from: http://buildroot-busybox.2317881.n4.nabble.com/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* [Buildroot] [PATCH v6 4/4] chromium: new package 2018-07-26 13:31 ` Hao HU @ 2018-07-26 19:01 ` Joseph Kogut 2018-07-26 20:02 ` Hao HU ` (2 more replies) 0 siblings, 3 replies; 23+ messages in thread From: Joseph Kogut @ 2018-07-26 19:01 UTC (permalink / raw) To: buildroot Hi Hao, On Thu, Jul 26, 2018 at 6:37 AM Hao HU <huhao526200@gmail.com> wrote: > > Hello Joseph, > > I have applied your v6 patch to the Buildroot 2018.05 and wanted to build > the chrome in a x86 arch. > > The Target option is like this : > > /Target Architecture : i386 > Target Architecture Variant i586/ > > And I have added the following in the lld.mk > > HOST_LLD_CONF_OPTS += -DLLVM_LINK_LLVM_DYLIB=ON -DLLVM_DYLIB_COMPONENTS=all > > +ifeq ($(BR2_PACKAGE_CHROMIUM_PROPRIETARY_CODECS),y) > +CHROMIUM_OPTS += proprietary_codecs=true ffmpeg_branding=\"Chrome\" > +endif > > And finally I have comment the following in the chromium.mk > > +ifeq ($(BR2_PACKAGE_CHROMIUM_PROPRIETARY_CODECS),y) > + # CHROMIUM_OPTS += proprietary_codecs=true ffmpeg_branding=\"Chrome\" > +endif > I'm not sure what the intent is here. Chromium codec options belong in the Chromium makefile, not the LLD makefile. Were you encountering a build error related to enabling Chromium proprietary codecs? > But now there is still a problem > > /home/as_huhao/eolane/x2m/buildroot-2018.05-IHMI/output/host/bin/ld.lld: > error: can't create dynamic relocation R_386_32 against local symbol in > readonly segment; recompile object files with -fPIC > >>> defined in obj/third_party/ffmpeg/libffmpeg_yasm.a(ffmpeg_yasm/dct32.o) > >>> referenced by ../../third_party/ffmpeg/libavcodec/x86/dct32.asm > >>> ffmpeg_yasm/dct32.o:(ff_dct32_float_sse) in archive > >>> obj/third_party/ffmpeg/libffmpeg_yasm.a > I've encountered the same issue, and I'm still working on a solution, which is why I haven't submitted v7 of this patchset. Apparently the Chromium team compiles i386 builds with GNU gold instead of LLD. LLD is more strict, and by default errors out when trying to dynamically relocate symbols in read only segments. Consequently, the upstream build is broken on i386 when linking with LLD. > could you please tell me how to fix this problem? > I'm testing a couple of solutions. In the mean time, try setting use_gold=false in CHROMIUM_OPTS, and let me know if that helps. ^ permalink raw reply [flat|nested] 23+ messages in thread
* [Buildroot] [PATCH v6 4/4] chromium: new package 2018-07-26 19:01 ` Joseph Kogut @ 2018-07-26 20:02 ` Hao HU 2018-07-27 7:56 ` Hao HU 2018-07-27 14:03 ` Hao HU 2 siblings, 0 replies; 23+ messages in thread From: Hao HU @ 2018-07-26 20:02 UTC (permalink / raw) To: buildroot Hi Joseph, Joseph Kogut wrote > Hi Hao, > > On Thu, Jul 26, 2018 at 6:37 AM Hao HU < > huhao526200@ > > wrote: >> >> Hello Joseph, >> >> I have applied your v6 patch to the Buildroot 2018.05 and wanted to build >> the chrome in a x86 arch. >> >> The Target option is like this : >> >> /Target Architecture : i386 >> Target Architecture Variant i586/ >> >> And I have added the following in the lld.mk >> >> HOST_LLD_CONF_OPTS += -DLLVM_LINK_LLVM_DYLIB=ON >> -DLLVM_DYLIB_COMPONENTS=all >> >> +ifeq ($(BR2_PACKAGE_CHROMIUM_PROPRIETARY_CODECS),y) >> +CHROMIUM_OPTS += proprietary_codecs=true ffmpeg_branding=\"Chrome\" >> +endif >> >> And finally I have comment the following in the chromium.mk >> >> +ifeq ($(BR2_PACKAGE_CHROMIUM_PROPRIETARY_CODECS),y) >> + # CHROMIUM_OPTS += proprietary_codecs=true ffmpeg_branding=\"Chrome\" >> +endif >> > >>I'm not sure what the intent is here. Chromium codec options belong in >>the Chromium makefile, not the LLD makefile. Were you encountering a >>build error related to enabling Chromium proprietary codecs? > > I was encountering the build error like this when I build the object files > of chromium: / > In file included from ../../third_party/ffmpeg/libavcodec/h264_cabac.c:36: > In file included from > ../../third_party/ffmpeg/libavcodec/cabac_functions.h:46: > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:193:9: error: inline > assembly requires more registers than available > BRANCHLESS_GET_CABAC("%0", "%q0", "(%4)", "%1", "%w1", > ^ > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:143:9: note: expanded from > macro 'BRANCHLESS_GET_CABAC' > "movzbl "statep" , "ret" > \n\t"\ > ^ > error: register allocation failed: maximum depth for recoloring reached. > Use -fexhaustive-register-search to skip cutoffs > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:193:9: error: inline > assembly requires more registers than available > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:143:9: note: expanded from > macro 'BRANCHLESS_GET_CABAC' > "movzbl "statep" , "ret" > \n\t"\ > ^ > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:193:9: error: inline > assembly requires more registers than available > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:143:9: note: expanded from > macro 'BRANCHLESS_GET_CABAC' > "movzbl "statep" , "ret" > \n\t"\ > ^ > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:193:9: error: inline > assembly requires more registers than available > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:143:9: note: expanded from > macro 'BRANCHLESS_GET_CABAC' > "movzbl "statep" , "ret" > \n\t"\ > ^ > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:193:9: error: inline > assembly requires more registers than available > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:143:9: note: expanded from > macro 'BRANCHLESS_GET_CABAC' > "movzbl "statep" , "ret" > \n\t"\ > ^ > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:193:9: error: inline > assembly requires more registers than available > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:143:9: note: expanded from > macro 'BRANCHLESS_GET_CABAC' > "movzbl "statep" , "ret" > \n\t"\ > ^ > error: register allocation failed: maximum depth for recoloring reached. > Use -fexhaustive-register-search to skip cutoffs > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:193:9: error: inline > assembly requires more registers than available > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:143:9: note: expanded from > macro 'BRANCHLESS_GET_CABAC' > "movzbl "statep" , "ret" > \n\t"\ > ^ > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:193:9: error: inline > assembly requires more registers than available > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:143:9: note: expanded from > macro 'BRANCHLESS_GET_CABAC' > "movzbl "statep" , "ret" > \n\t"\ > ^ > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:193:9: error: inline > assembly requires more registers than available > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:143:9: note: expanded from > macro 'BRANCHLESS_GET_CABAC' > "movzbl "statep" , "ret" > \n\t"\ > ^ > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:193:9: error: inline > assembly requires more registers than available > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:143:9: note: expanded from > macro 'BRANCHLESS_GET_CABAC' > "movzbl "statep" , "ret" > \n\t"\ > ^ > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:193:9: error: inline > assembly requires more registers than available > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:143:9: note: expanded from > macro 'BRANCHLESS_GET_CABAC' > "movzbl "statep" , "ret" > \n\t"\ > ^ > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:193:9: error: inline > assembly requires more registers than available > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:143:9: note: expanded from > macro 'BRANCHLESS_GET_CABAC' > "movzbl "statep" , "ret" > \n\t"\ > ^ > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:193:9: error: inline > assembly requires more registers than available > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:143:9: note: expanded from > macro 'BRANCHLESS_GET_CABAC' > "movzbl "statep" , "ret" > \n\t"\ > ^ > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:193:9: error: inline > assembly requires more registers than available > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:143:9: note: expanded from > macro 'BRANCHLESS_GET_CABAC' > "movzbl "statep" , "ret" > \n\t"\ > ^ > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:193:9: error: inline > assembly requires more registers than available > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:143:9: note: expanded from > macro 'BRANCHLESS_GET_CABAC' > "movzbl "statep" , "ret" > \n\t"\ > ^ > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:193:9: error: inline > assembly requires more registers than available > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:143:9: note: expanded from > macro 'BRANCHLESS_GET_CABAC' > "movzbl "statep" , "ret" > \n\t"\ > ^ > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:193:9: error: inline > assembly requires more registers than available > ../../third_party/ffmpeg/libavcodec/x86/cabac.h:143:9: note: expanded from > macro 'BRANCHLESS_GET_CABAC' > "movzbl "statep" , "ret" > \n\t"\ > ^ > fatal error: too many errors emitted, stopping now [-ferror-limit=] > clang: error: unable to execute command: Segmentation fault > clang: error: clang frontend command failed due to signal (use -v to see > invocation) > clang version 6.0.0 (tags/RELEASE_600/final) > Target: i586-buildroot-linux-gnu > Thread model: posix > InstalledDir: > /home/as_huhao/eolane/x2m/buildroot-2018.05-IHMI/output/host/bin > clang: note: diagnostic msg: PLEASE submit a bug report to and include > the crash backtrace, preprocessed source, and associated run script. > clang: note: diagnostic msg: > ******************** / > / > PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT: > Preprocessed source(s) and associated run script(s) are located at: > clang: note: diagnostic msg: /tmp/h264_cabac-e9fdc6.c > clang: note: diagnostic msg: /tmp/h264_cabac-e9fdc6.sh > clang: note: diagnostic msg: / > > > So I have added the comment # CHROMIUM_OPTS += proprietary_codecs=true > ffmpeg_branding=\"Chrome\" in the chromium.mk , which means removing the / > proprietary_codecs=true > ffmpeg_branding=\"Chrome\" / > > in the args.gn of the chromium > > And it worked and until it finished building all the .o files of chromium > > >> But now there is still a problem >> >> /home/as_huhao/eolane/x2m/buildroot-2018.05-IHMI/output/host/bin/ld.lld: >> error: can't create dynamic relocation R_386_32 against local symbol in >> readonly segment; recompile object files with -fPIC >> >>> defined in >> obj/third_party/ffmpeg/libffmpeg_yasm.a(ffmpeg_yasm/dct32.o) >> >>> referenced by ../../third_party/ffmpeg/libavcodec/x86/dct32.asm >> >>> ffmpeg_yasm/dct32.o:(ff_dct32_float_sse) in archive >> >>> obj/third_party/ffmpeg/libffmpeg_yasm.a >> > >>I've encountered the same issue, and I'm still working on a solution, >>which is why I haven't submitted v7 of this patchset. Apparently the >>Chromium team compiles i386 builds with GNU gold instead of LLD. LLD >>is more strict, and by default errors out when trying to dynamically >>relocate symbols in read only segments. > >>Consequently, the upstream build is broken on i386 when linking with LLD. > >> could you please tell me how to fix this problem? >> > >>I'm testing a couple of solutions. In the mean time, try setting >>use_gold=false in CHROMIUM_OPTS, and let me know if that helps. > > > But when it link to the chrome it still had the problem / > /home/as_huhao/eolane/x2m/buildroot-2018.05-IHMI/output/host/bin/ld.lld: > error: can't create dynamic relocation R_386_32 against local symbol in > readonly segment; recompile object files with -fPIC > >>> defined in > obj/third_party/ffmpeg/libffmpeg_yasm.a(ffmpeg_yasm/dct32.o) > >>> referenced by ../../third_party/ffmpeg/libavcodec/x86/dct32.asm > >>> ffmpeg_yasm/dct32.o:(ff_dct32_float_sse) in archive > >>> obj/third_party/ffmpeg/libffmpeg_yasm.a / > > So I tried to add the following statement in the lld.mk / > HOST_LLD_CONF_OPTS += -DLLVM_LINK_LLVM_DYLIB=ON > -DLLVM_DYLIB_COMPONENTS=all / > > > But it still not worked. > > And I will try to setting > use_gold=false in CHROMIUM_OPTS > > And I will tell you the result. > > If you fix the problem, please tell me as soon as possible, because I am > in a hurry to finish my project. > > Thank you very much. > > Hao > _______________________________________________ > buildroot mailing list > buildroot@ > http://lists.busybox.net/mailman/listinfo/buildroot -- Sent from: http://buildroot-busybox.2317881.n4.nabble.com/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* [Buildroot] [PATCH v6 4/4] chromium: new package 2018-07-26 19:01 ` Joseph Kogut 2018-07-26 20:02 ` Hao HU @ 2018-07-27 7:56 ` Hao HU 2018-07-27 14:03 ` Hao HU 2 siblings, 0 replies; 23+ messages in thread From: Hao HU @ 2018-07-27 7:56 UTC (permalink / raw) To: buildroot Hi Joseph, >Hi Hao, >On Thu, Jul 26, 2018 at 6:37 AM Hao HU <[hidden email]> wrote: > > Hello Joseph, > > I have applied your v6 patch to the Buildroot 2018.05 and wanted to build > the chrome in a x86 arch. > > The Target option is like this : > > /Target Architecture : i386 > Target Architecture Variant i586/ > > And I have added the following in the lld.mk > > HOST_LLD_CONF_OPTS += -DLLVM_LINK_LLVM_DYLIB=ON > -DLLVM_DYLIB_COMPONENTS=all > > +ifeq ($(BR2_PACKAGE_CHROMIUM_PROPRIETARY_CODECS),y) > +CHROMIUM_OPTS += proprietary_codecs=true ffmpeg_branding=\"Chrome\" > +endif > > And finally I have comment the following in the chromium.mk > > +ifeq ($(BR2_PACKAGE_CHROMIUM_PROPRIETARY_CODECS),y) > + # CHROMIUM_OPTS += proprietary_codecs=true ffmpeg_branding=\"Chrome\" > +endif > >I'm not sure what the intent is here. Chromium codec options belong in >the Chromium makefile, not the LLD makefile. Were you encountering a >build error related to enabling Chromium proprietary codecs? I was encountering the build error like this when I build the object files of chromium: / In file included from ../../third_party/ffmpeg/libavcodec/h264_cabac.c:36: In file included from ../../third_party/ffmpeg/libavcodec/cabac_functions.h:46: ../../third_party/ffmpeg/libavcodec/x86/cabac.h:193:9: error: inline assembly requires more registers than available BRANCHLESS_GET_CABAC("%0", "%q0", "(%4)", "%1", "%w1", ^ ./../third_party/ffmpeg/libavcodec/x86/cabac.h:143:9: note: expanded from macro 'BRANCHLESS_GET_CABAC' "movzbl "statep" , "ret" \n\t"\ ^ error: register allocation failed: maximum depth for recoloring reached. Use -fexhaustive-register-search to skip cutoffs ../../third_party/ffmpeg/libavcodec/x86/cabac.h:193:9: error: inline assembly requires more registers than available ../../third_party/ffmpeg/libavcodec/x86/cabac.h:143:9: note: expanded from macro 'BRANCHLESS_GET_CABAC' "movzbl "statep" , "ret" \n\t"\ ^ ../../third_party/ffmpeg/libavcodec/x86/cabac.h:193:9: error: inline assembly requires more registers than available ../../third_party/ffmpeg/libavcodec/x86/cabac.h:143:9: note: expanded from macro 'BRANCHLESS_GET_CABAC' "movzbl "statep" , "ret" \n\t"\ ^ ../../third_party/ffmpeg/libavcodec/x86/cabac.h:193:9: error: inline assembly requires more registers than available ../../third_party/ffmpeg/libavcodec/x86/cabac.h:143:9: note: expanded from macro 'BRANCHLESS_GET_CABAC' "movzbl "statep" , "ret" \n\t"\ ^ ../../third_party/ffmpeg/libavcodec/x86/cabac.h:193:9: error: inline assembly requires more registers than available ../../third_party/ffmpeg/libavcodec/x86/cabac.h:143:9: note: expanded from macro 'BRANCHLESS_GET_CABAC' "movzbl "statep" , "ret" \n\t"\ ^ ../../third_party/ffmpeg/libavcodec/x86/cabac.h:193:9: error: inline assembly requires more registers than available ../../third_party/ffmpeg/libavcodec/x86/cabac.h:143:9: note: expanded from macro 'BRANCHLESS_GET_CABAC' "movzbl "statep" , "ret" \n\t"\ ^ error: register allocation failed: maximum depth for recoloring reached. Use -fexhaustive-register-search to skip cutoffs ../../third_party/ffmpeg/libavcodec/x86/cabac.h:193:9: error: inline assembly requires more registers than available ../../third_party/ffmpeg/libavcodec/x86/cabac.h:143:9: note: expanded from macro 'BRANCHLESS_GET_CABAC' "movzbl "statep" , "ret" \n\t"\ ^ ../../third_party/ffmpeg/libavcodec/x86/cabac.h:193:9: error: inline assembly requires more registers than available ../../third_party/ffmpeg/libavcodec/x86/cabac.h:143:9: note: expanded from macro 'BRANCHLESS_GET_CABAC' "movzbl "statep" , "ret" \n\t"\ ^ ../../third_party/ffmpeg/libavcodec/x86/cabac.h:193:9: error: inline assembly requires more registers than available ../../third_party/ffmpeg/libavcodec/x86/cabac.h:143:9: note: expanded from macro 'BRANCHLESS_GET_CABAC' "movzbl "statep" , "ret" \n\t"\ ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] clang: error: unable to execute command: Segmentation fault clang: error: clang frontend command failed due to signal (use -v to see invocation) clang version 6.0.0 (tags/RELEASE_600/final) Target: i586-buildroot-linux-gnu Thread model: posix InstalledDir: /home/as_huhao/eolane/x2m/buildroot-2018.05-IHMI/output/host/bin clang: note: diagnostic msg: PLEASE submit a bug report to and include the crash backtrace, preprocessed source, and associated run script. clang: note: diagnostic msg: ******************** PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT: Preprocessed source(s) and associated run script(s) are located at: clang: note: diagnostic msg: /tmp/h264_cabac-e9fdc6.c clang: note: diagnostic msg: /tmp/h264_cabac-e9fdc6.sh clang: note: diagnostic msg:/ So I have added the comment # CHROMIUM_OPTS += proprietary_codecs=true ffmpeg_branding=\"Chrome\" in the chromium.mk , which means removing the proprietary_codecs=true ffmpeg_branding=\"Chrome\" in the args.gn of the chromium And it worked and until it finished building all the .o files of chromium > But now there is still a problem > > /home/as_huhao/eolane/x2m/buildroot-2018.05-IHMI/output/host/bin/ld.lld: > error: can't create dynamic relocation R_386_32 against local symbol in > readonly segment; recompile object files with -fPIC > >>> defined in > obj/third_party/ffmpeg/libffmpeg_yasm.a(ffmpeg_yasm/dct32.o) > >>> referenced by ../../third_party/ffmpeg/libavcodec/x86/dct32.asm > >>> ffmpeg_yasm/dct32.o:(ff_dct32_float_sse) in archive > >>> obj/third_party/ffmpeg/libffmpeg_yasm.a > >I've encountered the same issue, and I'm still working on a solution, >which is why I haven't submitted v7 of this patchset. Apparently the >Chromium team compiles i386 builds with GNU gold instead of LLD. LLD >is more strict, and by default errors out when trying to dynamically >relocate symbols in read only segments. >Consequently, the upstream build is broken on i386 when linking with LLD. > could you please tell me how to fix this problem? > >I'm testing a couple of solutions. In the mean time, try setting >use_gold=false in CHROMIUM_OPTS, and let me know if that helps. But when it link to the chrome it still had the problem /home/as_huhao/eolane/x2m/buildroot-2018.05-IHMI/output/host/bin/ld.lld: error: can't create dynamic relocation R_386_32 against local symbol in readonly segment; recompile object files with -fPIC >>> defined in obj/third_party/ffmpeg/libffmpeg_yasm.a(ffmpeg_yasm/dct32.o) >>> referenced by ../../third_party/ffmpeg/libavcodec/x86/dct32.asm >>> ffmpeg_yasm/dct32.o:(ff_dct32_float_sse) in archive >>> obj/third_party/ffmpeg/libffmpeg_yasm.a So I tried to add the following statement in the lld.mk HOST_LLD_CONF_OPTS += -DLLVM_LINK_LLVM_DYLIB=ON -DLLVM_DYLIB_COMPONENTS=all But it still not worked. And I will try to setting use_gold=false in CHROMIUM_OPTS And I will tell you the result. If you fix the problem, please tell me as soon as possible, because I am in a hurry to finish my project. Thank you very much. Hao -- Sent from: http://buildroot-busybox.2317881.n4.nabble.com/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* [Buildroot] [PATCH v6 4/4] chromium: new package 2018-07-26 19:01 ` Joseph Kogut 2018-07-26 20:02 ` Hao HU 2018-07-27 7:56 ` Hao HU @ 2018-07-27 14:03 ` Hao HU 2018-07-27 16:12 ` Joseph Kogut 2 siblings, 1 reply; 23+ messages in thread From: Hao HU @ 2018-07-27 14:03 UTC (permalink / raw) To: buildroot Hi Joseph, Today I tried to set use_gold=false in CHROMIUM_OPTS in chromium.mk. But it did't work. The same problem as following still exists. //home/as_huhao/eolane/x2m/buildroot-2018.05-IHMI/output/host/bin/ld.lld: error: can't create dynamic relocation R_386_32 against local symbol in readonly segment; recompile object files with -fPIC >>> defined in obj/third_party/ffmpeg/libffmpeg_yasm.a(ffmpeg_yasm/dct32.o) >>> referenced by ../../third_party/ffmpeg/libavcodec/x86/dct32.asm >>> ffmpeg_yasm/dct32.o:(ff_dct32_float_sse) in archive >>> obj/third_party/ffmpeg/libffmpeg_yasm.a / Best regards, Hao -- Sent from: http://buildroot-busybox.2317881.n4.nabble.com/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* [Buildroot] [PATCH v6 4/4] chromium: new package 2018-07-27 14:03 ` Hao HU @ 2018-07-27 16:12 ` Joseph Kogut 2018-07-30 9:04 ` Hao HU 0 siblings, 1 reply; 23+ messages in thread From: Joseph Kogut @ 2018-07-27 16:12 UTC (permalink / raw) To: buildroot On Fri, Jul 27, 2018 at 7:03 AM Hao HU <huhao526200@gmail.com> wrote: > > Hi Joseph, > > Today I tried to set use_gold=false in CHROMIUM_OPTS in chromium.mk. > > But it did't work. The same problem as following still exists. > > //home/as_huhao/eolane/x2m/buildroot-2018.05-IHMI/output/host/bin/ld.lld: > error: can't create dynamic relocation R_386_32 against local symbol in > readonly segment; recompile object files with -fPIC > >>> defined in obj/third_party/ffmpeg/libffmpeg_yasm.a(ffmpeg_yasm/dct32.o) > >>> referenced by ../../third_party/ffmpeg/libavcodec/x86/dct32.asm > >>> ffmpeg_yasm/dct32.o:(ff_dct32_float_sse) in archive > >>> obj/third_party/ffmpeg/libffmpeg_yasm.a / > Did you allow the Chromium package to reconfigure, i.e., by deleting .stamp_configured, or running 'make chromium-dirclean all'? ^ permalink raw reply [flat|nested] 23+ messages in thread
* [Buildroot] [PATCH v6 4/4] chromium: new package 2018-07-27 16:12 ` Joseph Kogut @ 2018-07-30 9:04 ` Hao HU 2018-07-30 17:05 ` Joseph Kogut 0 siblings, 1 reply; 23+ messages in thread From: Hao HU @ 2018-07-30 9:04 UTC (permalink / raw) To: buildroot Joseph Kogut wrote > On Fri, Jul 27, 2018 at 7:03 AM Hao HU < > huhao526200@ > > wrote: >> >> Hi Joseph, >> >> Today I tried to set use_gold=false in CHROMIUM_OPTS in chromium.mk. >> >> But it did't work. The same problem as following still exists. >> >> //home/as_huhao/eolane/x2m/buildroot-2018.05-IHMI/output/host/bin/ld.lld: >> error: can't create dynamic relocation R_386_32 against local symbol in >> readonly segment; recompile object files with -fPIC >> >>> defined in >> obj/third_party/ffmpeg/libffmpeg_yasm.a(ffmpeg_yasm/dct32.o) >> >>> referenced by ../../third_party/ffmpeg/libavcodec/x86/dct32.asm >> >>> ffmpeg_yasm/dct32.o:(ff_dct32_float_sse) in archive >> >>> obj/third_party/ffmpeg/libffmpeg_yasm.a / >> > >>Did you allow the Chromium package to reconfigure, i.e., by deleting >>.stamp_configured, or running 'make chromium-dirclean all'? > > Before I tested if the use_gold=false worked or not, firstly I deleted the > folder / > /ouput/build/chromium--67.0.3396.79 / > then I run $ make > > Is that right or not? > _______________________________________________ > buildroot mailing list > buildroot@ > http://lists.busybox.net/mailman/listinfo/buildroot -- Sent from: http://buildroot-busybox.2317881.n4.nabble.com/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* [Buildroot] [PATCH v6 4/4] chromium: new package 2018-07-30 9:04 ` Hao HU @ 2018-07-30 17:05 ` Joseph Kogut 2018-07-30 17:21 ` Hao HU 0 siblings, 1 reply; 23+ messages in thread From: Joseph Kogut @ 2018-07-30 17:05 UTC (permalink / raw) To: buildroot Hi Hao, On Mon, Jul 30, 2018 at 2:04 AM Hao HU <huhao526200@gmail.com> wrote: > >>Did you allow the Chromium package to reconfigure, i.e., by deleting > >>.stamp_configured, or running 'make chromium-dirclean all'? > > > > Before I tested if the use_gold=false worked or not, firstly I deleted the > > folder > / > > /ouput/build/chromium--67.0.3396.79 > / > > then I run $ make > > > > Is that right or not? That will repeat the configure step, which is what you want. If recompiling with use_lld=false doesn't work, the i386 build is still broken, and needs fixed. Can you switch the target architecture to x86_64? That build works properly. ^ permalink raw reply [flat|nested] 23+ messages in thread
* [Buildroot] [PATCH v6 4/4] chromium: new package 2018-07-30 17:05 ` Joseph Kogut @ 2018-07-30 17:21 ` Hao HU 2018-07-30 18:13 ` Joseph Kogut 0 siblings, 1 reply; 23+ messages in thread From: Hao HU @ 2018-07-30 17:21 UTC (permalink / raw) To: buildroot Hi Joseph, >Hi Hao, >On Mon, Jul 30, 2018 at 2:04 AM Hao HU <[hidden email]> wrote: > >>Did you allow the Chromium package to reconfigure, i.e., by deleting > >>.stamp_configured, or running 'make chromium-dirclean all'? > > > > Before I tested if the use_gold=false worked or not, firstly I deleted > the > > folder > / > > /ouput/build/chromium--67.0.3396.79 > / > > then I run $ make > > > > Is that right or not? >That will repeat the configure step, which is what you want. If >recompiling with use_lld=false doesn't work, the i386 build is still >broken, and needs fixed. Do you mean recompiling with use_gold=false? Or I should try setting use_lld=false? >Can you switch the target architecture to x86_64? That build works properl I have tested the x86_64, it worked, but my project needs to build on a i386 arch. Best regards, Hao -- Sent from: http://buildroot-busybox.2317881.n4.nabble.com/ ^ permalink raw reply [flat|nested] 23+ messages in thread
* [Buildroot] [PATCH v6 4/4] chromium: new package 2018-07-30 17:21 ` Hao HU @ 2018-07-30 18:13 ` Joseph Kogut 2018-07-30 21:39 ` Joseph Kogut 0 siblings, 1 reply; 23+ messages in thread From: Joseph Kogut @ 2018-07-30 18:13 UTC (permalink / raw) To: buildroot On Mon, Jul 30, 2018 at 10:21 AM Hao HU <huhao526200@gmail.com> wrote: > > Do you mean recompiling with use_gold=false? Or I should try setting > use_lld=false? > The problem is stricter defaults with LLD, so you want to disable LLD for an i386 build, which means the proper flag is use_lld=false. I haven't tried this, so it may not fix your problem. > >Can you switch the target architecture to x86_64? That build works properl > > I have tested the x86_64, it worked, but my project needs to build on a i386 > arch. > If that's the case, the only solution is to link without LLD. The Chromium team informed me that they still compile with Gold on i386. Also, this is unrelated, but when you reply you're only addressing the mailing list, so your messages are skipping my inbox and I only notice when I check messages sent to the mailing list. Make sure to address your messages to the correct recipient and CC the mailing list. ^ permalink raw reply [flat|nested] 23+ messages in thread
* [Buildroot] [PATCH v6 4/4] chromium: new package 2018-07-30 18:13 ` Joseph Kogut @ 2018-07-30 21:39 ` Joseph Kogut 0 siblings, 0 replies; 23+ messages in thread From: Joseph Kogut @ 2018-07-30 21:39 UTC (permalink / raw) To: buildroot Hi Hao, I just finished an i386 build that linked Chromium successfully with GN option use_lld=false. This was the main issue holding back the next version of this patchset, so you can expect it to be posted to the mailing list soon. Thanks for testing! Best, Joseph ^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2018-07-30 21:39 UTC | newest] Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2018-07-10 23:42 [Buildroot] [PATCH v6 0/4] chromium: new package Joseph Kogut 2018-07-10 23:42 ` [Buildroot] [PATCH v6 1/4] libgtk3: convert atk-bridge to optional dependency Joseph Kogut 2018-07-10 23:42 ` [Buildroot] [PATCH v6 2/4] llvm: add config to build backend for host arch Joseph Kogut 2018-07-10 23:42 ` [Buildroot] [PATCH v6 3/4] lld: new package Joseph Kogut 2018-07-11 9:59 ` Valentin Korenblit 2018-07-10 23:42 ` [Buildroot] [PATCH v6 4/4] chromium: " Joseph Kogut 2018-07-14 19:11 ` Martin Bark 2018-07-14 22:57 ` Joseph Kogut 2018-07-15 21:54 ` Martin Bark 2018-07-16 16:29 ` Joseph Kogut 2018-07-17 11:43 ` Martin Bark 2018-07-26 18:51 ` Joseph Kogut 2018-07-26 13:31 ` Hao HU 2018-07-26 19:01 ` Joseph Kogut 2018-07-26 20:02 ` Hao HU 2018-07-27 7:56 ` Hao HU 2018-07-27 14:03 ` Hao HU 2018-07-27 16:12 ` Joseph Kogut 2018-07-30 9:04 ` Hao HU 2018-07-30 17:05 ` Joseph Kogut 2018-07-30 17:21 ` Hao HU 2018-07-30 18:13 ` Joseph Kogut 2018-07-30 21:39 ` Joseph Kogut
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.