Как перекрестно скомпилировать Chromium для ARM?

Цель

Мне нужно установить Chromium на FriendlyARM mini210s управлением Linux 3.0.8 armv7l

Окружающая среда

  • Бродячий бокс с Ubuntu Precise64
  • Установленные depot_tools следуя этим рекомендациям Get-the-code и Linux Chromium ARM

Инструментарий depot_tools

После получения depot_tools :

 vagrant@vagrant:~/depot_tools$ fetch chromium 

Переменные среды

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

зависимости

 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 

компилировать

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

ошибки

 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.od -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. 

С нетерпением ждем некоторых рекомендаций и

Следуя инструкциям пользователя eyoung100 , вы все равно получаете сообщение об ошибке, но далее

 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.od -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. 

Опубликованная проблема в другой группе Google:

Эта же проблема, когда кросс-компиляция на Precise64 VM

Ошибка, которую я получаю при кросс-компиляции на Trusty64 VM

ОБНОВЛЕНИЕ Попытка перекрестного компиляции на Ubuntu 14.04 (Trusty) FAILED

… аналогичное сообщение, чем с 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.od -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. 

На Precise64, когда clang=False FAILED

При использовании chromium.gyp_env (без переменных env)

 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', } 

Я получаю это

 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.od -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. 

On Precise64 при экспорте env. переменные clang=0

когда

 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 

Я получаю эту ошибку

 $ 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.od -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. 

Компиляция завершена УСПЕХ

На точной 64-битной памяти Vagrant VM

Окружающая среда

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

и встроенный режим деблокирования

 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 

с

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

Нажмите здесь, чтобы ответить на вопрос Как установить Chrome на мой голый Linux 3.0.8 armv7l?

    One Solution collect form web for “Как перекрестно скомпилировать Chromium для ARM?”

    Теперь, когда я на работе, я напишу шаг за шагом ответ. Сначала вы, кажется, делаете шаги в неправильном порядке. Таким образом, я буду указывать эти шаги в том порядке, в котором они должны быть выполнены.

    1. mkdir -pv ~/chromium
    2. cd ~/chromium
    3. git config --global user.name “Joel Maranhao”
    4. git config --global user.email “youremail@example.com”
    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 См. Обновление Примечания 1
    10. mkdir -v ~/chromium/buildhost См. Обновление Примечание 2
    11. cd ../buildhost См. Обновление Примечание 2
    12. fetch --nohooks chromium
    13. cd src && ./build/install-build-deps.sh См. примечание 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 См. примечание 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 См. Примечание 4
    19. gclient runhooks
    20. ninja -C out/Debug chrome

    Примечание. Шаги 17-19. Шаг 18 заменяет экспортные выражения из рецепта 2 в файле chromium.gyp_env (это эффективно переключает компилятор сборки на clang ). Шаг 19 импортирует настройки chromium.gyp_env и запускает правильные строковые скрипты в правильном порядке.

    Предупреждение: Шаги тестирования

    Я проведу эти шаги на своей виртуальной машине XUbuntu и отправлю отчет / обновление и т. Д.


    Обновить примечания

    1. Сделать изменение постоянным для переменной PATH целесообразно, если вы хотите сделать это более одного раза. Найдите следующее:

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

    в $HOME\.profile . Добавьте PATH=$PATH:~/chromium/depot_tools , так что окончательный, if выглядит так:

    # 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

    Если необходимо, создайте директорию $HOME/bin (она не существует на моей виртуальной машине), а затем выйдите из системы и снова зайдите в нее.


    1. От изучения вашей почты при загрузке Gigs and Gigs данных из репозитория я вижу, что вы запустили скрипт fetch и загрузили исходный код в каталог depot_tools . Это распространенная ошибка, и ее легко устранить, создав отдельный каталог, как я уже сделал. Это позволяет использовать инструменты, необходимые для управления и управления файлами сборки отдельно от объектов, которые вы создаете. Это также гарантирует, что объекты, которые вы строите, не загрязнены инструментами, используемыми для их создания.
    2. Первый проход build-deps.sh загружает все инструменты сборки независимо от кросс-компиляции или нет. Шаг 14 и 15 необходимы в случае, если сценарий жалуется на Held Packages. Второй проход (шаг 16) устанавливает кросс-компиляцию. Я буду обновлять эту заметку по мере продвижения сборки.
    3. По какой-то причине у OP и я оба были проблемы с файлом gyp_env . Из-за этого я обновил Шаг 18, ​​чтобы включить необходимый экспорт. Если вы заинтересованы в использовании файла gyp_env , обратитесь к документации Gyp User Documentation , Configuring Builds и Common Gyp Build
    Interesting Posts

    Как настроить bluez / kernel для периферийной клавиатуры Bluetooth

    Какая функция в ядре Linux отключает действие?

    Как перемещать строку из одной строки в другую

    Ошибка с распаковкой файла .gz в Mint, но отлично работает в Windows, поэтому файл не поврежден

    Вы видели эту кошку?

    Увеличение настроек `ulimit -u` временно в OSX Yosemite

    Как кота два heredocs?

    Ошибка VirtualBox, хранилище: настройки, гостевые дополнения

    Перезапустить вентилятор вручную в Linux

    ошибка перфоратора: не удалось mmap с 25 (несоответствующий ioctl для устройства)

    Отфильтровать несколько элементов из вывода длинной команды

    Опасно ли повторно устанавливать раздел rw / ro?

    Как сохранить фокус курсора при переключении рабочего пространства, если у меня есть полноэкранное окно на другом экране?

    % pre section my.rpm больше не выполняется на RHEL 6.7

    Если моя программа обнаруживает, что потеря мощности произойдет через несколько секунд, что она может сделать, чтобы избежать повреждения данных?

    Linux и Unix - лучшая ОС в мире.