Getting error while compiling chromium 106

642 views
Skip to first unread message

Vipul Jha

unread,
Aug 19, 2022, 1:55:42 PM8/19/22
to Chromium-dev
I tried compiling Chromium 106 and I am getting the following error:

ninja: Entering directory `out/Default'
[1/6] python3 "../../build/toolchain/gcc_solink_wrapper.py" --readelf="../../third_party/llvm-build/Release+Asserts/bin/llvm-readelf" --nm="../../third_party/llvm-build/Release+Asserts/bin/llvm-nm" --strip=../../third_party/llvm-build/Release+Asserts/bin/llvm-strip  --sofile="./lib.unstripped/libchrome__combined.so" --tocfile="./libchrome__combined.so.TOC" --map-file "./lib.unstripped/libchrome__combined.so.map.gz" --output="./libchrome__combined.so" -- ../../third_party/llvm-build/Release+Asserts/bin/clang++ -shared -Wl,-soname="libchrome__combined.so" -Wl,--version-script=gen/chrome/android/libchrome_linker_script.txt -Wl,--hash-style=gnu -Wl,-soname,libchrome.so --partitioned-library -fuse-ld=lld -Wl,--fatal-warnings -Wl,--build-id=sha1 -fPIC -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--icf=all -Wl,--color-diagnostics -Wl,-mllvm,-instcombine-lower-dbg-declare=0 -flto=thin -Wl,--thinlto-jobs=all -Wl,--thinlto-cache-dir=thinlto-cache -Wl,--thinlto-cache-policy=cache_size=10\%:cache_size_bytes=40g:cache_size_files=100000 -Wl,-mllvm,-import-instr-limit=5 -fwhole-program-vtables -Wl,--no-rosegment -Wl,--no-call-graph-profile-sort -Wl,--exclude-libs=libvpx_assembly_arm.a -Wl,-z,max-page-size=4096 --unwindlib=none --target=aarch64-linux-android23 -Wl,-mllvm,-enable-machine-outliner=never -no-canonical-prefixes -Wl,--warn-shared-textrel -Wl,-O2 -Wl,--gc-sections -Wl,-z,defs -Wl,--as-needed -nostdlib++ --sysroot=../../third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Wl,--warn-shared-textrel -Wl,-z,force-bti -Wl,--lto-O2 -Wl,--pack-dyn-relocs=android -Wl,-wrap,calloc -Wl,-wrap,free -Wl,-wrap,malloc -Wl,-wrap,memalign -Wl,-wrap,posix_memalign -Wl,-wrap,pvalloc -Wl,-wrap,realloc -Wl,-wrap,valloc -Wl,-wrap,realpath -Wl,-wrap,strdup -Wl,-wrap,strndup -Wl,-wrap,getcwd -Wl,-wrap,asprintf -Wl,-wrap,vasprintf -Wl,--dynamic-linker,/system/bin/linker64 -o "./lib.unstripped/libchrome__combined.so" @"./libchrome__combined.so.rsp"
FAILED: libchrome__combined.so libchrome__combined.so.TOC lib.unstripped/libchrome__combined.so lib.unstripped/libchrome__combined.so.map.gz
python3 "../../build/toolchain/gcc_solink_wrapper.py" --readelf="../../third_party/llvm-build/Release+Asserts/bin/llvm-readelf" --nm="../../third_party/llvm-build/Release+Asserts/bin/llvm-nm" --strip=../../third_party/llvm-build/Release+Asserts/bin/llvm-strip  --sofile="./lib.unstripped/libchrome__combined.so" --tocfile="./libchrome__combined.so.TOC" --map-file "./lib.unstripped/libchrome__combined.so.map.gz" --output="./libchrome__combined.so" -- ../../third_party/llvm-build/Release+Asserts/bin/clang++ -shared -Wl,-soname="libchrome__combined.so" -Wl,--version-script=gen/chrome/android/libchrome_linker_script.txt -Wl,--hash-style=gnu -Wl,-soname,libchrome.so --partitioned-library -fuse-ld=lld -Wl,--fatal-warnings -Wl,--build-id=sha1 -fPIC -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--icf=all -Wl,--color-diagnostics -Wl,-mllvm,-instcombine-lower-dbg-declare=0 -flto=thin -Wl,--thinlto-jobs=all -Wl,--thinlto-cache-dir=thinlto-cache -Wl,--thinlto-cache-policy=cache_size=10\%:cache_size_bytes=40g:cache_size_files=100000 -Wl,-mllvm,-import-instr-limit=5 -fwhole-program-vtables -Wl,--no-rosegment -Wl,--no-call-graph-profile-sort -Wl,--exclude-libs=libvpx_assembly_arm.a -Wl,-z,max-page-size=4096 --unwindlib=none --target=aarch64-linux-android23 -Wl,-mllvm,-enable-machine-outliner=never -no-canonical-prefixes -Wl,--warn-shared-textrel -Wl,-O2 -Wl,--gc-sections -Wl,-z,defs -Wl,--as-needed -nostdlib++ --sysroot=../../third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Wl,--warn-shared-textrel -Wl,-z,force-bti -Wl,--lto-O2 -Wl,--pack-dyn-relocs=android -Wl,-wrap,calloc -Wl,-wrap,free -Wl,-wrap,malloc -Wl,-wrap,memalign -Wl,-wrap,posix_memalign -Wl,-wrap,pvalloc -Wl,-wrap,realloc -Wl,-wrap,valloc -Wl,-wrap,realpath -Wl,-wrap,strdup -Wl,-wrap,strndup -Wl,-wrap,getcwd -Wl,-wrap,asprintf -Wl,-wrap,vasprintf -Wl,--dynamic-linker,/system/bin/linker64 -o "./lib.unstripped/libchrome__combined.so" @"./libchrome__combined.so.rsp"
ld.lld: error: obj/third_party/icu/icudata/icudtl_dat.o: -z force-bti: file does not have GNU_PROPERTY_AARCH64_FEATURE_1_BTI property
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

Lei Zhang

unread,
Aug 19, 2022, 2:01:18 PM8/19/22
to vi...@primeos.in, Chromium-dev
When discussing build issues, it'll be helpful to know what the host
OS is and what the GN args are.
> --
> --
> Chromium Developers mailing list: chromi...@chromium.org
> View archives, change email options, or unsubscribe:
> http://groups.google.com/a/chromium.org/group/chromium-dev
> ---
> You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
> To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/deb4eb2e-cb25-452e-bfd4-5338715cb8d8n%40chromium.org.

RR999

unread,
Aug 22, 2022, 2:26:18 PM8/22/22
to Chromium-dev, Lei Zhang, Chromium-dev, vi...@primeos.in
It would appear OP is building on Linux with a target of Android. The issue appears to be ARM branch target identification support.

https://source.chromium.org/chromium/chromium/src/+/main:build/config/android/BUILD.gn?q=force-bti&ss=chromium
https://chromium.googlesource.com/chromium/src/build/config/+/refs/heads/main/arm.gni
https://source.chromium.org/chromium/chromium/src/+/main:build/config/android/BUILD.gn?q=arm_control_flow_integrity&ss=chromium

I have no experience with building Chromium for ARM, but perhaps cflags += [ "-mbranch-protection=standard" ] and/or asmflags += [ "-mbranch-protection=standard" ]  might need propagated or added to the ICU build.gn config.

Otherwise ii would appear setting arm_control_flow_integrity to PAC or none would allow building in the meantime.

Vipul Jha

unread,
Aug 22, 2022, 2:26:18 PM8/22/22
to Chromium-dev, Lei Zhang, Chromium-dev, Vipul Jha
Hey, I am using Ubuntu 20.04 LTS and this is my args file:

target_os = "android"
target_cpu = "arm64"
is_debug = false
is_java_debug = false

android_channel = "stable"
is_official_build = true
is_chrome_branded = false
is_component_build = false
is_clang = true
symbol_level = 1
exclude_unwind_tables = true

use_unofficial_version_number = false
android_default_version_code = "1"
android_keystore_name = "key"
android_keystore_password = "password"
android_keystore_path = "path_to_key"

icu_use_data_file = false
enable_iterator_debugging = false

google_api_key = "api_key"
google_default_client_id = "client_id"
google_default_client_secret = "secret"
use_official_google_api_keys = false


ffmpeg_branding = "Chrome"
proprietary_codecs = true
enable_nacl = false
enable_widevine = true
enable_mse_mpeg2ts_stream_parser = true
enable_remoting = false
rtc_use_h264 = false

v8_use_external_startup_data = true
update_android_aar_prebuilts = true

disable_android_lint = true
treat_warnings_as_errors = false

use_thin_lto = true

Vipul Jha

unread,
Aug 29, 2022, 11:02:19 AM8/29/22
to Chromium-dev, RR999, Lei Zhang, Chromium-dev, Vipul Jha
Hey RR999, can you please elaborate a bit?

Andre Kempe

unread,
Aug 29, 2022, 11:06:23 AM8/29/22
to Chromium-dev, vi...@primeos.in
Hej everyone.

I just created a bug ticket for this issue at https://bugs.chromium.org/p/chromium/issues/detail?id=1356083 Fix should follow in the course of the day. 

The workarounds proposed by RR999, that is changing arm_control_flow_integrity to none , or disable the force-BTI-switch at https://source.chromium.org/chromium/chromium/src/+/main:build/config/android/BUILD.gn?q=force-bti&ss=chromium, should both do the job.

Some background: Files that do not have BTI enabled for compilation (like ICU in this case) will make the whole binary non-BTI-compliant. To ensure this doesn't pass unnoticed, we added this flag. Obviously ICU didn't have id.

Thanks for reporting this bug.

Best Regards,
André

Vipul Jha

unread,
Aug 29, 2022, 11:10:17 AM8/29/22
to Andre Kempe, Chromium-dev
Awesome, thanks! 
Thanks & Regards
Vipul Jha
Android Engineer

RR999

unread,
Aug 29, 2022, 11:10:43 AM8/29/22
to Chromium-dev, vi...@primeos.in, Lei Zhang, Chromium-dev
Try adding this to your args.gn:

arm_control_flow_integrity = "PAC"

Vipul Jha

unread,
Nov 30, 2023, 3:38:29 PM11/30/23
to Chromium-dev, RR999, vi...@primeos.in, Lei Zhang, Chromium-dev
Now I am getting this error in Chromium 119. Please help

autoninja -C out/Default chrome_public_apk
ninja: Entering directory `out/Default'
[591/33337] ACTION //components/webxr/android:xr_java__compile_java(//build/toolchain/android:android_clang_arm64)
FAILED: obj/components/webxr/android/xr_java.javac.jar obj/components/webxr/android/xr_java.javac.jar.info
python3 ../../build/android/gyp/compile_java.py --depfile=gen/components/webxr/android/xr_java__compile_java.d --generated-dir=gen/components/webxr/android/xr_java/generated_java --jar-path=obj/components/webxr/android/xr_java.javac.jar --java-srcjars=\[\"gen/components/webxr/android/xr_java__assetres.srcjar\",\ \"gen/components/webxr/android/xr_java.generated.srcjar\"\] --target-name //components/webxr/android:xr_java__compile_java --classpath=@FileArg\(gen/components/webxr/android/xr_java.build_config.json:android:sdk_interface_jars\) --header-jar obj/components/webxr/android/xr_java.turbine.jar --classpath=\[\"obj/components/webxr/android/xr_java.turbine.jar\"\] --classpath=@FileArg\(gen/components/webxr/android/xr_java.build_config.json:deps_info:javac_full_interface_classpath\) --chromium-code=1 --warnings-as-errors --jar-info-exclude-globs=\[\"\*/R.class\",\ \"\*/R\\\$\*.class\",\ \"\*/Manifest.class\",\ \"\*/Manifest\\\$\*.class\",\ \"\*/\*GEN_JNI.class\"\] @gen/components/webxr/android/xr_java.sources
../../components/webxr/android/java/src/org/chromium/components/webxr/XrActivityListener.java:78: error: cannot find symbol
        XrActivityListenerJni.get().onActivityResumed(mNativeXrActivityListener, this);
        ^
  symbol:   variable XrActivityListenerJni
  location: class XrActivityListener
../../components/webxr/android/java/src/org/chromium/components/webxr/XrSessionCoordinator.java:227: error: cannot find symbol
        XrSessionCoordinatorJni.get().onDrawingSurfaceReady(mNativeXrSessionCoordinator,
        ^
  symbol:   variable XrSessionCoordinatorJni
  location: class XrSessionCoordinator
../../components/webxr/android/java/src/org/chromium/components/webxr/XrSessionCoordinator.java:239: error: cannot find symbol
        XrSessionCoordinatorJni.get().onDrawingSurfaceTouch(mNativeXrSessionCoordinator,
        ^
  symbol:   variable XrSessionCoordinatorJni
  location: class XrSessionCoordinator
../../components/webxr/android/java/src/org/chromium/components/webxr/XrSessionCoordinator.java:246: error: cannot find symbol
        XrSessionCoordinatorJni.get().onDrawingSurfaceDestroyed(
        ^
  symbol:   variable XrSessionCoordinatorJni
  location: class XrSessionCoordinator
../../components/webxr/android/java/src/org/chromium/components/webxr/XrSessionCoordinator.java:253: error: cannot find symbol
        XrSessionCoordinatorJni.get().onXrSessionButtonTouched(
        ^
  symbol:   variable XrSessionCoordinatorJni
  location: class XrSessionCoordinator
../../components/webxr/android/java/src/org/chromium/components/webxr/XrSessionCoordinator.java:274: error: cannot find symbol
        XrSessionCoordinatorJni.get().onXrHostActivityReady(
        ^
  symbol:   variable XrSessionCoordinatorJni
  location: class XrSessionCoordinator
../../components/webxr/android/java/src/org/chromium/components/webxr/CardboardUtils.java:21: error: cannot find symbol
        CardboardUtilsJni.get().nativeUseCardboardV1DeviceParamsForTesting();
        ^
  symbol:   variable CardboardUtilsJni
  location: class CardboardUtils
7 errors
[608/33335] ACTION //chrome/browser/feed/android:java__compile_java(//build/toolchain/android:android_clang_arm64)

ninja: build stopped: subcommand failed.

Bruce Dawson

unread,
Nov 30, 2023, 8:07:19 PM11/30/23
to Chromium-dev, Vipul Jha, RR999, Lei Zhang, Chromium-dev
You should create a new email thread. Discussing problems with building M119 on a thread that mentions M106 is going to cause confusion.

Useful information to supply would be your OS, gn args, commit position, and whether you were previously able to build Chromium.

Reply all
Reply to author
Forward
0 new messages