[Buildroot] [PATCH v6 4/4] chromium: new package

Hao HU huhao526200 at gmail.com
Thu Jul 26 13:31:52 UTC 2018


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/



More information about the buildroot mailing list