Comment compiler de manière croisée Chromium for ARM?

12

Objectif

J'ai besoin d'installer Chromium sur FriendlyARM mini210ssous Linux 3.0.8 armv7l

Environnement

Toolchain depot_tools

Après avoir obtenu depot_tools:

vagrant@vagrant:~/depot_tools$ fetch chromium

Variables d'environnement

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

Dépendances

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

Compiler

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

les erreurs

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.

Dans l'attente de quelques recommandations et pistes

En suivant les instructions de eyoung100 , toujours une erreur mais plus loin

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.

Problème publié sur un autre groupe Google:

Ce même problème lors de la compilation croisée sur Precise64 VM

L'erreur que j'obtiens lors de la compilation croisée sur Trusty64 VM

UPDATE Tentative de compilation croisée sur Ubuntu 14.04 (Trusty) ÉCHEC

... message similaire à celui de 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.

Sur Precise64 quand clang=FalseÉCHEC

Lors de l'utilisation chromium.gyp_env(pas de variables 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', }

j'ai compris

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.

Sur Precise64 lors de l'exportation env. les variablesclang=0

Quand

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

Je reçois cette erreur

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

Compilation complète SUCCÈS

Sur Precise64 4 Go de mémoire Vagrant VM

Environnement

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

et construit en mode 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

avec

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

Cliquez ici pour répondre sur Comment installer Chrome sur mon nu armv7l Linux 3.0.8?

zabumba
la source
1
Recommencer, effacer votre répertoire de construction, installer les outils de dépôt et suivre la recette 2 . Faites-moi savoir les résultats ...
eyoung100
Ok je comprends. Je recommence, avec un environnement propre et sans paramètres CC, CXX etc. Voir ma question mise à jour
zabumba

Réponses:

13

Maintenant que je suis au travail, je vais écrire une réponse étape par étape. Tout d'abord, vous semblez suivre les étapes dans le mauvais ordre. En tant que tel, je numéroterai ces étapes dans l'ordre dans lequel elles doivent être exécutées.

  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 Voir les notes de mise à jour 1
  10. mkdir -v ~/chromium/buildhost Voir la note de mise à jour 2
  11. cd ../buildhost Voir la note de mise à jour 2
  12. fetch --nohooks chromium
  13. cd src && ./build/install-build-deps.sh Voir note 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 Voir note 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 Voir note 4
  19. gclient runhooks
  20. ninja -C out/Debug chrome

Remarquez les étapes 17 à 19. L'étape 18 remplace les instructions d'exportation de la recette 2 dans le fichier chromium.gyp_env (cela bascule effectivement le compilateur de génération clang). L'étape 19 importe les paramètres chromium.gyp_env et exécutera les bons buildscripts dans le bon ordre.

Avertissement: étapes de test

Je vais tester ces étapes sur ma machine virtuelle XUbuntu et faire rapport / mise à jour, etc.


Notes de mise à jour

  1. Il PATHest conseillé de rendre le changement permanent à la variable si vous souhaitez le faire plus d'une fois. Trouvez les éléments suivants:

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

dans $HOME\.profile. Ajoutez PATH=$PATH:~/chromium/depot_tools, pour que la finale ifressemble à:

# 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 nécessaire, créez un $HOME/binrépertoire (il n'existait pas sur ma machine virtuelle), puis déconnectez-vous et reconnectez-vous.


  1. Depuis l'étude de votre message, tout en téléchargeant les concerts et les concerts de données du référentiel, je constate que vous avez exécuté le fetchscript et téléchargé le code source dans le depot_toolsrépertoire. C'est une erreur courante et est facilement corrigée en créant un répertoire séparé, comme je l'ai fait. Cela permet de garder les outils nécessaires pour gérer et manipuler les fichiers de construction séparés des éléments que vous créez. Cela garantit également que les éléments que vous construisez ne sont pas pollués par les outils utilisés pour les créer.
  2. La première passe de build-deps.shtélécharge tous les outils de construction indépendamment de la compilation croisée ou non. Les étapes 14 et 15 sont nécessaires au cas où le script se plaindrait des packages conservés. Le 2e passage (étape 16), configure la compilation croisée. Je mettrai à jour cette note au fur et à mesure de la construction.
  3. Pour une raison quelconque, l'OP et moi-même avons eu des problèmes avec le gyp_envfichier. Pour cette raison, j'ai mis à jour l'étape 18 pour inclure les exportations nécessaires. Si vous souhaitez utiliser le gyp_envfichier, consultez la documentation utilisateur Gyp , la configuration des versions et les paramètres de génération Gyp courants
eyoung100
la source
1
@joelmaranhao Je suis maintenant à l'étape 13 Le téléchargement a expiré pendant la nuit.
eyoung100
1
Utiliser apt-cache search -multilib-arm-linux-gnueabihf j'utilise 14,10 donc 4,8 peut être 4,6 etc.
eyoung100
1
Pas si /build/install-build-deps.shne signale pas d'erreur lors du premier passage. S'il se plaint, remplacez 4.8 à l'étape 15 par 4.6 et /build/install-build-deps.sh
relancez
1
Vrai est 1. C'est une variable binaire
eyoung100
1
Essayons le compilateur Linux par défaut. Voir la mise à jour de l'étape 18.
eyoung100