¿Cómo compilo de forma cruzada Chromium para ARM?

12

Objetivo

Necesito instalar Chromium en FriendlyARM mini210scon Linux 3.0.8 armv7l

Medio ambiente

Toolchain depot_tools

Después de obtener el depot_tools:

vagrant@vagrant:~/depot_tools$ fetch chromium

Variables de entorno

export GYP_CROSSCOMPILE=1
export GYP_DEFINES="target_arch=arm arm_float_abi=hard"

Dependencias

vagrant@vagrant:~/depot_tools/src$  ./chrome/installer/linux/sysroot_scripts/install-debian.wheezy.sysroot.py --arch=arm 
Installing Debian Wheezy arm root image: /home/vagrant/depot_tools/src/chrome/installer/linux/debian_wheezy_arm-sysroot
Downloading http://storage.googleapis.com/chrome-linux-sysroot/toolchain/285950/debian_wheezy_arm_sysroot.tgz

build/install-build-deps.sh --arm
build/install-build-deps-android.sh
gclient sync

Compilar

build/gyp_chromium -Goutput_dir=out_arm 
ninja -C out_arm/Debug chrome

Errores

vagrant@vagrant:~/depot_tools/src$ ninja -C out_arm/Debug chrome
ninja: Entering directory `out_arm/Debug'
[222/18316] CXX obj/third_party/webrtc/modules/audio_coding/codecs/audio_encoder_interface.audio_encoder.o
FAILED: ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/third_party/webrtc/modules/audio_coding/codecs/audio_encoder_interface.audio_encoder.o.d -DV8_DEPRECATION_WARNINGS -D_FILE_OFFSET_BITS=64 -DCHROMIUM_BUILD -DCR_CLANG_REVISION=223108 -DTOOLKIT_VIEWS=1 -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_AURA=1 -DUSE_ASH=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 -DUSE_DEFAULT_RENDER_THEME=1 -DUSE_LIBJPEG_TURBO=1 -DUSE_X11=1 -DUSE_CLIPBOARD_AURAX11=1 -DENABLE_ONE_CLICK_SIGNIN -DENABLE_PRE_SYNC_BACKUP -DENABLE_REMOTING=1 -DENABLE_WEBRTC=1 -DENABLE_PEPPER_CDMS -DENABLE_CONFIGURATION_POLICY -DENABLE_NOTIFICATIONS -DUSE_UDEV -DDONT_EMBED_BUILD_METADATA -DENABLE_TASK_MANAGER=1 -DENABLE_EXTENSIONS=1 -DENABLE_PLUGINS=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_BACKGROUND=1 -DENABLE_GOOGLE_NOW=1 -DCLD_VERSION=2 -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_PRINT_PREVIEW=1 -DENABLE_SPELLCHECK=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_APP_LIST=1 -DENABLE_SETTINGS_APP=1 -DENABLE_SUPERVISED_USERS=1 -DENABLE_MDNS=1 -DENABLE_SERVICE_DISCOVERY=1 -DV8_USE_EXTERNAL_STARTUP_DATA -DWEBRTC_RESTRICT_LOGGING -DEXPAT_RELATIVE_PATH -DWEBRTC_MODULE_UTILITY_VIDEO -DWEBRTC_CHROMIUM_BUILD -DLOGGING_INSIDE_WEBRTC -DWEBRTC_ARCH_ARM -DWEBRTC_ARCH_ARM_V7 -DWEBRTC_ARCH_ARM_NEON -DWEBRTC_POSIX -DWEBRTC_LINUX -DUSE_LIBPCI=1 -DUSE_GLIB=1 -DUSE_NSS=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -D_DEBUG -D_GLIBCXX_DEBUG=1 -Igen -I../.. -I../../third_party/webrtc/overrides -I../../third_party -fstack-protector --param=ssp-buffer-size=4 -Werror -pthread -fno-strict-aliasing -Wall -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -pipe -fPIC -Wno-reserved-user-defined-literal -Xclang -load -Xclang /home/vagrant/depot_tools/src/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so -Xclang -add-plugin -Xclang find-bad-constructs -fcolor-diagnostics -Wheader-hygiene -Wno-char-subscripts -Wno-unneeded-internal-declaration -Wno-covered-switch-default -Wstring-conversion -Wno-c++11-narrowing -Wno-deprecated-register -Wno-inconsistent-missing-override -target arm-linux-gnueabihf -march=armv7-a -no-integrated-as -mtune=generic-armv7-a -mfpu=neon -mfloat-abi=hard -mthumb --sysroot=/home/vagrant/depot_tools/src/chrome/installer/linux/debian_wheezy_arm-sysroot -O0 -g -gdwarf-4 -funwind-tables -Wno-undefined-bool-conversion -Wno-tautological-undefined-compare -fno-exceptions -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -Wsign-compare -std=gnu++11  -c ../../third_party/webrtc/modules/audio_coding/codecs/audio_encoder.cc -o obj/third_party/webrtc/modules/audio_coding/codecs/audio_encoder_interface.audio_encoder.o
/tmp/audio_encoder-f5366d.s: Assembler messages:
/tmp/audio_encoder-f5366d.s:559: Internal error!
Assertion failure in get_line_subseg at ../../gas/dwarf2dbg.c line 262.
Please report this bug.
clang: error: assembler command failed with exit code 1 (use -v to see invocation)
[222/18316] ACTION Generating resources from app/generated_resources.grd
ninja: build stopped: subcommand failed.

Esperamos algunas recomendaciones y pistas

Siguiendo las instrucciones de eyoung100 , sigue obteniendo un error pero más

vagrant@vagrant:/vagrant_data/buildhost/src$ ninja -C out/Debug chrome
ninja: Entering directory `out/Debug'
[369/18783] CXX obj/mojo/public/cpp/bindings/lib/mojo_cpp_bindings.array_internal.o
FAILED: ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/mojo/public/cpp/bindings/lib/mojo_cpp_bindings.array_internal.o.d -DV8_DEPRECATION_WARNINGS -D_FILE_OFFSET_BITS=64 -DCHROMIUM_BUILD -DCR_CLANG_REVISION=223108 -DCOMPONENT_BUILD -DTOOLKIT_VIEWS=1 -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_AURA=1 -DUSE_ASH=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 -DUSE_DEFAULT_RENDER_THEME=1 -DUSE_LIBJPEG_TURBO=1 -DUSE_X11=1 -DUSE_CLIPBOARD_AURAX11=1 -DENABLE_ONE_CLICK_SIGNIN -DENABLE_PRE_SYNC_BACKUP -DENABLE_REMOTING=1 -DENABLE_WEBRTC=1 -DENABLE_PEPPER_CDMS -DENABLE_CONFIGURATION_POLICY -DENABLE_NOTIFICATIONS -DUSE_UDEV -DDONT_EMBED_BUILD_METADATA -DENABLE_TASK_MANAGER=1 -DENABLE_EXTENSIONS=1 -DENABLE_PLUGINS=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_BACKGROUND=1 -DENABLE_GOOGLE_NOW=1 -DCLD_VERSION=2 -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_PRINT_PREVIEW=1 -DENABLE_SPELLCHECK=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_APP_LIST=1 -DENABLE_SETTINGS_APP=1 -DENABLE_SUPERVISED_USERS=1 -DENABLE_MDNS=1 -DENABLE_SERVICE_DISCOVERY=1 -DV8_USE_EXTERNAL_STARTUP_DATA -DUSE_LIBPCI=1 -DUSE_GLIB=1 -DUSE_NSS=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -D_DEBUG -D_GLIBCXX_DEBUG=1 -Igen -I../.. -fstack-protector --param=ssp-buffer-size=4 -Werror -pthread -fno-strict-aliasing -Wall -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -pipe -fPIC -Wno-reserved-user-defined-literal -Xclang -load -Xclang /vagrant_data/buildhost/src/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so -Xclang -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs -Xclang strict-virtual-specifiers -fcolor-diagnostics -Wheader-hygiene -Wno-char-subscripts -Wno-unneeded-internal-declaration -Wno-covered-switch-default -Wstring-conversion -Wno-c++11-narrowing -Wno-deprecated-register -Wno-inconsistent-missing-override -target arm-linux-gnueabihf -march=armv7-a -no-integrated-as -mtune=generic-armv7-a -mfpu=neon -mfloat-abi=hard -mthumb --sysroot=/vagrant_data/buildhost/src/chrome/installer/linux/debian_wheezy_arm-sysroot -O0 -g -gdwarf-4 -funwind-tables -Wno-undefined-bool-conversion -Wno-tautological-undefined-compare -fno-exceptions -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -Wsign-compare -std=gnu++11  -c ../../mojo/public/cpp/bindings/lib/array_internal.cc -o obj/mojo/public/cpp/bindings/lib/mojo_cpp_bindings.array_internal.o
/tmp/array_internal-a7a8d2.s: Assembler messages:
/tmp/array_internal-a7a8d2.s:1182: Internal error!
Assertion failure in get_line_subseg at ../../gas/dwarf2dbg.c line 262.
Please report this bug.
clang: error: assembler command failed with exit code 1 (use -v to see invocation)
[369/18783] ACTION Generating resources from app/generated_resources.grd
ninja: build stopped: subcommand failed.

Problema publicado en otro grupo de Google:

Este mismo problema cuando se realiza una compilación cruzada en Precise64 VM

El error que obtengo al realizar una compilación cruzada en Trusty64 VM

ACTUALIZACIÓN El intento de compilación cruzada en Ubuntu 14.04 (Trusty) FALLÓ

... mensaje similar que con Precise64

vagrant@vagrant-ubuntu-trusty-64:/vagrant_data/buildhost/src$ ninja -C out/Debug chrome
ninja: Entering directory `out/Debug'
[66/18785] CXX obj/mojo/public/cpp/bindings/lib/mojo_cpp_bindings.array_internal.o
FAILED: ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/mojo/public/cpp/bindings/lib/mojo_cpp_bindings.array_internal.o.d -DV8_DEPRECATION_WARNINGS -D_FILE_OFFSET_BITS=64 -DCHROMIUM_BUILD -DCR_CLANG_REVISION=223108 -DCOMPONENT_BUILD -DTOOLKIT_VIEWS=1 -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_AURA=1 -DUSE_ASH=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 -DUSE_DEFAULT_RENDER_THEME=1 -DUSE_LIBJPEG_TURBO=1 -DUSE_X11=1 -DUSE_CLIPBOARD_AURAX11=1 -DENABLE_ONE_CLICK_SIGNIN -DENABLE_PRE_SYNC_BACKUP -DENABLE_REMOTING=1 -DENABLE_WEBRTC=1 -DENABLE_PEPPER_CDMS -DENABLE_CONFIGURATION_POLICY -DENABLE_NOTIFICATIONS -DUSE_UDEV -DDONT_EMBED_BUILD_METADATA -DENABLE_TASK_MANAGER=1 -DENABLE_EXTENSIONS=1 -DENABLE_PLUGINS=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_BACKGROUND=1 -DENABLE_GOOGLE_NOW=1 -DCLD_VERSION=2 -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_PRINT_PREVIEW=1 -DENABLE_SPELLCHECK=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_APP_LIST=1 -DENABLE_SETTINGS_APP=1 -DENABLE_SUPERVISED_USERS=1 -DENABLE_MDNS=1 -DENABLE_SERVICE_DISCOVERY=1 -DV8_USE_EXTERNAL_STARTUP_DATA -DUSE_LIBPCI=1 -DUSE_GLIB=1 -DUSE_NSS=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -D_DEBUG -D_GLIBCXX_DEBUG=1 -Igen -I../.. -fstack-protector --param=ssp-buffer-size=4 -Werror -pthread -fno-strict-aliasing -Wall -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -pipe -fPIC -Wno-reserved-user-defined-literal -Xclang -load -Xclang /vagrant_data/buildhost/src/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so -Xclang -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs -Xclang strict-virtual-specifiers -fcolor-diagnostics -Wheader-hygiene -Wno-char-subscripts -Wno-unneeded-internal-declaration -Wno-covered-switch-default -Wstring-conversion -Wno-c++11-narrowing -Wno-deprecated-register -Wno-inconsistent-missing-override -target arm-linux-gnueabihf -march=armv7-a -no-integrated-as -mtune=generic-armv7-a -mfpu=neon -mfloat-abi=hard -mthumb --sysroot=/vagrant_data/buildhost/src/chrome/installer/linux/debian_wheezy_arm-sysroot -O0 -g -gdwarf-4 -funwind-tables -Wno-undefined-bool-conversion -Wno-tautological-undefined-compare -fno-exceptions -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -Wsign-compare -std=gnu++11  -c ../../mojo/public/cpp/bindings/lib/array_internal.cc -o obj/mojo/public/cpp/bindings/lib/mojo_cpp_bindings.array_internal.o
/tmp/array_internal-227b6c.s: Assembler messages:
/tmp/array_internal-227b6c.s:1180: Internal error!
Assertion failure in get_line_subseg at ../../gas/dwarf2dbg.c line 271.
Please report this bug.
clang: error: assembler command failed with exit code 1 (use -v to see invocation)
[66/18785] CXX obj/mojo/public/cpp/bindings/lib/mojo_cpp_bindings.message_queue.o
ninja: build stopped: subcommand failed.

En Precise64 cuando clang=FalseFALLIDA

Al usar chromium.gyp_env(sin variables ambientales)

vagrant@vagrant:/vagrant_data/buildhost/src$ more ../chromium.gyp_env 
{ 'GYP_DEFINES': 'target_arch=arm arm_float_abi=hard component=shared_library linux_use_gold_flags=1 clang=False', 'GYP_CROSSCOMPILE': 'True', }

entiendo esto

vagrant@vagrant:/vagrant_data/buildhost/src$ ninja -C out/Debug chrome
ninja: Entering directory `out/Debug'
[2/18785] CC obj/third_party/libwebp/dsp/libwebp_dsp.enc_sse2.o
FAILED: cc -MMD -MF obj/third_party/libwebp/dsp/libwebp_dsp.enc_sse2.o.d -DV8_DEPRECATION_WARNINGS -D_FILE_OFFSET_BITS=64 -DCHROMIUM_BUILD -DCOMPONENT_BUILD -DTOOLKIT_VIEWS=1 -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_AURA=1 -DUSE_ASH=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 -DUSE_DEFAULT_RENDER_THEME=1 -DUSE_LIBJPEG_TURBO=1 -DUSE_X11=1 -DUSE_CLIPBOARD_AURAX11=1 -DENABLE_ONE_CLICK_SIGNIN -DENABLE_PRE_SYNC_BACKUP -DENABLE_REMOTING=1 -DENABLE_WEBRTC=1 -DENABLE_PEPPER_CDMS -DENABLE_CONFIGURATION_POLICY -DENABLE_NOTIFICATIONS -DUSE_UDEV -DDONT_EMBED_BUILD_METADATA -DENABLE_TASK_MANAGER=1 -DENABLE_EXTENSIONS=1 -DENABLE_PLUGINS=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_BACKGROUND=1 -DENABLE_GOOGLE_NOW=1 -DCLD_VERSION=2 -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_PRINT_PREVIEW=1 -DENABLE_SPELLCHECK=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_APP_LIST=1 -DENABLE_SETTINGS_APP=1 -DENABLE_SUPERVISED_USERS=1 -DENABLE_MDNS=1 -DENABLE_SERVICE_DISCOVERY=1 -DV8_USE_EXTERNAL_STARTUP_DATA -DUSE_LIBPCI=1 -DUSE_GLIB=1 -DUSE_NSS=1 -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -D_DEBUG -D_GLIBCXX_DEBUG=1 -Igen -I../../third_party/libwebp -fstack-protector --param=ssp-buffer-size=4 -pthread -fno-strict-aliasing -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -pipe -fPIC -Wno-format -Wno-unused-result -march=armv7-a -mtune=generic-armv7-a -mfpu=neon -mfloat-abi=hard -mthumb --sysroot=/vagrant_data/buildhost/src/chrome/installer/linux/debian_wheezy_arm-sysroot -O0 -g -gdwarf-4 -funwind-tables   -c ../../third_party/libwebp/dsp/enc_sse2.c -o obj/third_party/libwebp/dsp/libwebp_dsp.enc_sse2.o
cc1: error: unrecognized command line option ‘-mfpu=neon’
cc1: error: unrecognized command line option ‘-mfloat-abi=hard’
cc1: error: unrecognized command line option ‘-mthumb’
../../third_party/libwebp/dsp/enc_sse2.c:1:0: error: bad value (generic-armv7-a) for -mtune= switch
../../third_party/libwebp/dsp/enc_sse2.c:1:0: error: bad value (armv7-a) for -march= switch
../../third_party/libwebp/dsp/enc_sse2.c:1:0: error: bad value (generic-armv7-a) for -mtune= switch
[2/18785] ACTION Generating libudev0 library loader
ninja: build stopped: subcommand failed.

En Precise64 al exportar env. variablesclang=0

Cuando

vagrant@vagrant:/vagrant_data/buildhost/src$ env | grep GYP
GYP_CROSSCOMPILE=1
GYP_DEFINES=target_arch=arm arm_float_abi=hard component=shared_library linux_use_gold_flags=1 clang=0

Me sale este error

$ ninja -C out/Debug chrome
ninja: Entering directory `out/Debug'
[6/18785] CXX obj/components/crash/app/crash_component_lib.crash_reporter_client.o
FAILED: /usr/bin/arm-linux-gnueabihf-g++ -MMD -MF obj/components/crash/app/crash_component_lib.crash_reporter_client.o.d -DV8_DEPRECATION_WARNINGS -D_FILE_OFFSET_BITS=64 -DCHROMIUM_BUILD -DCOMPONENT_BUILD -DTOOLKIT_VIEWS=1 -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_AURA=1 -DUSE_ASH=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 -DUSE_DEFAULT_RENDER_THEME=1 -DUSE_LIBJPEG_TURBO=1 -DUSE_X11=1 -DUSE_CLIPBOARD_AURAX11=1 -DENABLE_ONE_CLICK_SIGNIN -DENABLE_PRE_SYNC_BACKUP -DENABLE_REMOTING=1 -DENABLE_WEBRTC=1 -DENABLE_PEPPER_CDMS -DENABLE_CONFIGURATION_POLICY -DENABLE_NOTIFICATIONS -DUSE_UDEV -DDONT_EMBED_BUILD_METADATA -DENABLE_TASK_MANAGER=1 -DENABLE_EXTENSIONS=1 -DENABLE_PLUGINS=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_BACKGROUND=1 -DENABLE_GOOGLE_NOW=1 -DCLD_VERSION=2 -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_PRINT_PREVIEW=1 -DENABLE_SPELLCHECK=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_APP_LIST=1 -DENABLE_SETTINGS_APP=1 -DENABLE_SUPERVISED_USERS=1 -DENABLE_MDNS=1 -DENABLE_SERVICE_DISCOVERY=1 -DV8_USE_EXTERNAL_STARTUP_DATA -DUSE_LIBPCI=1 -DUSE_GLIB=1 -DUSE_NSS=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -D_DEBUG -D_GLIBCXX_DEBUG=1 -Igen -I../.. -I../../breakpad/src -fstack-protector --param=ssp-buffer-size=4 -Werror -pthread -fno-strict-aliasing -Wall -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -pipe -fPIC -march=armv7-a -mtune=generic-armv7-a -mfpu=neon -mfloat-abi=hard -mthumb --sysroot=/vagrant_data/buildhost/src/chrome/installer/linux/debian_wheezy_arm-sysroot -O0 -g -gdwarf-4 -funwind-tables -fno-exceptions -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -Wsign-compare -Wno-abi  -c ../../components/crash/app/crash_reporter_client.cc -o obj/components/crash/app/crash_component_lib.crash_reporter_client.o
In file included from ../../base/basictypes.h:18:0,
                 from ../../base/strings/string16.h:33,
                 from ../../components/crash/app/crash_reporter_client.h:10,
                 from ../../components/crash/app/crash_reporter_client.cc:5:
../../base/macros.h:165:3: error: identifier ‘static_assert’ will become a keyword in C++0x [-Werror=c++0x-compat]
../../base/macros.h: In function ‘Dest bit_cast(const Source&)’:
../../base/macros.h:165:3: error: there are no arguments to ‘static_assert’ that depend on a template parameter, so a declaration of ‘static_assert’ must be available [-fpermissive]
../../base/macros.h:165:3: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
In file included from ../../components/crash/app/crash_reporter_client.h:10:0,
                 from ../../components/crash/app/crash_reporter_client.cc:5:
../../base/strings/string16.h: At global scope:
../../base/strings/string16.h:67:3: error: expected identifier before ‘sizeof’
../../base/strings/string16.h:67:3: error: expected ‘,’ or ‘...’ before ‘sizeof’
../../base/strings/string16.h:67:3: error: ISO C++ forbids declaration of ‘static_assert’ with no type [-fpermissive]
In file included from ../../base/files/file_path.h:111:0,
                 from ../../components/crash/app/crash_reporter_client.cc:7:
../../base/containers/hash_tables.h:171:61: error: ‘>>’ operator will be treated as two right angle brackets in C++0x [-Werror=c++0x-compat]
../../base/containers/hash_tables.h:171:61: note: suggest parentheses around ‘>>’ expression
../../base/containers/hash_tables.h:171:61: error: ‘>>’ should be ‘> >’ within a nested template argument list
../../base/containers/hash_tables.h:172:1: error: expected unqualified-id before ‘using’
../../base/containers/hash_tables.h:177:61: error: ‘>>’ operator will be treated as two right angle brackets in C++0x [-Werror=c++0x-compat]
../../base/containers/hash_tables.h:177:61: note: suggest parentheses around ‘>>’ expression
../../base/containers/hash_tables.h:177:61: error: ‘>>’ should be ‘> >’ within a nested template argument list
../../base/containers/hash_tables.h:178:1: error: expected unqualified-id before ‘using’
../../base/containers/hash_tables.h:184:42: error: ‘>>’ operator will be treated as two right angle brackets in C++0x [-Werror=c++0x-compat]
../../base/containers/hash_tables.h:184:42: note: suggest parentheses around ‘>>’ expression
../../base/containers/hash_tables.h:184:42: error: spurious ‘>>’, use ‘>’ to terminate a template argument list
../../base/containers/hash_tables.h:185:1: error: expected ‘>’ before ‘using’
../../base/containers/hash_tables.h:186:68: error: expected unqualified-id before ‘;’ token
../../base/containers/hash_tables.h:191:42: error: ‘>>’ operator will be treated as two right angle brackets in C++0x [-Werror=c++0x-compat]
../../base/containers/hash_tables.h:191:42: note: suggest parentheses around ‘>>’ expression
../../base/containers/hash_tables.h:191:42: error: spurious ‘>>’, use ‘>’ to terminate a template argument list
../../base/containers/hash_tables.h:192:1: error: expected ‘>’ before ‘using’
../../base/containers/hash_tables.h:192:76: error: expected unqualified-id before ‘;’ token
cc1plus: all warnings being treated as errors
[6/18785] ACTION Generating resources from blink_resources.grd
ninja: build stopped: subcommand failed.

Compilación completa ÉXITO

En Precise64 4GB de memoria Vagrant VM

Medio ambiente

GYP_CROSSCOMPILE=1
GYP_DEFINES=target_arch=arm arm_float_abi=hard component=shared_library linux_use_gold_flags=1

y construido en modo Release

ninja -v -C out/Release chrome

vagrant@vagrant:~/chromium/buildhost/src/out/Release$ ls
build.ninja             gen         icudtl.dat              libpdf.so      nacl_bootstrap_raw       nacl_irt_arm.nexe.debug.raw  protoc                             resources          yasm
chrome                  genmacro    java_mojo               libpdf.so.TOC  nacl_helper              natives_blob.bin             pseudo_locales                     resources.pak
chrome.1                genmodule   keyboard_resources.pak  libyuv.a       nacl_helper_bootstrap    obj                          pyproto                            snapshot_blob.bin
chrome_100_percent.pak  genperf     lib                     libyuv_neon.a  nacl_irt_arm.nexe        obj.host                     re2c                               tls_edit
chrome-wrapper          genstring   libffmpegsumo.so        locales        nacl_irt_arm.nexe.cmd    pnacl                        remoting_locales                   xdg-mime

con

vagrant@vagrant:~/chromium/buildhost/src/out/Release$ ls -alh chrome
-rwxrwxr-x 1 vagrant vagrant 39M Jan 12 22:47 chrome

Haga clic aquí para responder ¿Cómo instalo Chrome en mi Linux 3.0.8 armv7l simple?

zabumba
fuente
1
Comience de nuevo, borre su directorio de compilación, instale las herramientas de depósito y siga la receta 2 . Déjame saber los resultados ...
eyoung100
Ok, lo entiendo. Comienzo de nuevo, con un entorno limpio y sin configuraciones CC, CXX, etc. Ver mi pregunta actualizada
zabumba

Respuestas:

13

Ahora que estoy en el trabajo, escribiré una respuesta paso a paso. En primer lugar, parece estar haciendo los pasos en el orden incorrecto. Como tal, enumeraré estos pasos en el orden en que deberían ejecutarse.

  1. mkdir -pv ~/chromium
  2. cd ~/chromium
  3. git config --global user.name “Joel Maranhao”
  4. git config --global user.email “[email protected]
  5. git config --global core.autocrlf false
  6. git config --global core.filemode false
  7. git config --global color.ui true
  8. git clone https://chromium.googlesource.com/chromium/tools/depot_tools
  9. export PATH=$PATH:~/chromium/depot_tools Ver las notas de actualización 1
  10. mkdir -v ~/chromium/buildhost Ver la nota de actualización 2
  11. cd ../buildhost Ver la nota de actualización 2
  12. fetch --nohooks chromium
  13. cd src && ./build/install-build-deps.sh Ver nota 3
  14. sudo apt-get install gcc-arm-linux-gnueabihf
  15. sudo apt-get install g++-4.8-multilib-arm-linux-gnueabihf
  16. ./build/install-build-deps.sh --arm Ver nota 3
  17. gclient sync
  18. GYP_CROSSCOMPILE=1 GYP_DEFINES=target_arch=arm arm_float_abi=hard component=shared_library linux_use_gold_flags=1 Ver nota 4
  19. gclient runhooks
  20. ninja -C out/Debug chrome

Observe los Pasos 17 - 19. El Paso 18 reemplaza las Declaraciones de exportación de la Receta 2 en el archivo chromium.gyp_env (Esto efectivamente cambia el compilador de compilación a clang). El paso 19 importa la configuración de chromium.gyp_env y ejecutará los scripts de compilación adecuados en el orden correcto.

Advertencia: Pasos de prueba

Probaré estos pasos en mi VM XUbuntu e informaré / actualizaré, etc.


Notas de actualización

  1. PATHEs recomendable hacer el cambio permanente a la variable si va a hacerlo más de una vez. Encuentra el siguiente:

# set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fi

en $HOME\.profile. Agregar PATH=$PATH:~/chromium/depot_tools, para que el final se ifvea así:

# set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" PATH=$PATH:~/chromium/depot_tools fi

Si es necesario, cree un $HOME/bindirectorio (no existía en mi VM), luego cierre la sesión y vuelva a iniciarla.


  1. De Estudiar su publicación, mientras descarga Gigs y Gigs de datos del repositorio, veo que ejecutó el fetchscript y descargó el Código fuente en el depot_toolsdirectorio. Este es un error común y se soluciona fácilmente creando un directorio separado, como lo he hecho. Esto mantiene las herramientas necesarias para administrar y manipular los archivos de compilación separados de los elementos que está creando. Esto también asegura que los elementos que está construyendo no estén contaminados por las herramientas utilizadas para construirlos.
  2. El primer paso de build-deps.shdescargas de todas las herramientas de compilación, independientemente de la compilación cruzada o no. Los pasos 14 y 15 son necesarios en caso de que el script se queje de paquetes retenidos. El segundo pase (Paso 16), configura la compilación cruzada. Actualizaré esta nota a medida que avance la compilación.
  3. Por alguna razón, el OP y yo tuvimos problemas con el gyp_envarchivo. Debido a esto, he actualizado el Paso 18 para incluir las exportaciones necesarias. Si está interesado en usar el gyp_envarchivo, consulte la Documentación de usuario de Gyp , Configuración de compilaciones y Parámetros de compilación de Gyp comunes
eyoung100
fuente
1
@joelmaranhao Ahora estoy en el paso 13 La descarga se agotó durante la noche.
eyoung100
1
Uso apt-cache search -multilib-arm-linux-gnueabihf Estoy usando 14.10, entonces 4.8 puede ser 4.6 etc.
eyoung100
1
No, si /build/install-build-deps.shno informa un error durante el primer pase. Si se queja, reemplace 4.8 en el paso 15 con 4.6 y vuelva a ejecutar/build/install-build-deps.sh
eyoung100
1
Verdadero es 1. Es una variable binaria
eyoung100
1
Probemos el compilador predeterminado de Linux. Vea la actualización al paso 18.
eyoung100