-
Notifications
You must be signed in to change notification settings - Fork 15.4k
Open
Labels
LTOLink time optimization (regular/full LTO or ThinLTO)Link time optimization (regular/full LTO or ThinLTO)slow-compile
Description
In Android, we have been noticing a regression for a library (libfcp_cpp_dep_jni.so) only with x86_64 target. The linking stage with LTO now takes more than 30 mins when it used to take 2-3 mins. You can get the reproducer (repro.tar) from this link and just untar it and run ld.lld @response.txt but the command is below:
clang++ out/soong/.intermediates/bionic/libc/crtbegin_so/android_x86_64_apex33/crtbegin_so.o @out/soong/.intermediates/packages/modules/OnDevicePersonalization/federatedcompute/libfcp_cpp_dep_jni/android_x86_64_shared_apex33/unstripped/libfcp_cpp_dep_jni.so.rsp out/soong/.intermediates/bionic/libc/crtend_so/android_x86_64_apex33/crtend_so.o out/soong/.intermediates/bionic/libc/crt_pad_segment/android_x86_64_apex33/crt_pad_segment.o -o out/soong/.intermediates/packages/modules/OnDevicePersonalization/federatedcompute/libfcp_cpp_dep_jni/android_x86_64_shared_apex33/unstripped/libfcp_cpp_dep_jni.so -target x86_64-linux-android33 -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--build-id=md5 -Wl,--fatal-warnings -Wl,--no-undefined-version -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libgcc_stripped.a -Wl,--exclude-libs,libunwind_llvm.a -Wl,--exclude-libs,libunwind.a -Wl,--compress-debug-sections=zstd -fuse-ld=lld -Wl,--icf=safe -Wl,--no-demangle -Wl,--no-undefined -Wl,-z,separate-loadable-segments -Wl,-z,max-page-size=16384 -m64 -Wl,--pack-dyn-relocs=android+relr -nostdlib -Wl,--gc-sections -shared -Wl,-soname,libfcp_cpp_dep_jni.so -Wl,--version-script,packages/modules/OnDevicePersonalization/federatedcompute/jni/jni.lds -flto=thin -fsplit-lto-unit -Wl,-plugin-opt,-import-instr-limit=5 -Wl,--exclude-libs=libclang_rt.builtins-x86_64-android.a -Wl,--exclude-libs=libclang_rt.ubsan_minimal-x86_64-android.a
ld.lld -z now -z relro -z max-page-size=16384 --use-android-relr-tags --pack-dyn-relocs=relr --hash-style=gnu --eh-frame-hdr -m elf_x86_64 -shared -o out/soong/.intermediates/packages/modules/OnDevicePersonalization/federatedcompute/libfcp_cpp_dep_jni/android_x86_64_shared_apex33/unstripped/libfcp_cpp_dep_jni.so -L/usr/local/google/home/sharjeelkhan/Development/llvm-toolchain-c/out/install/linux-x86/clang-dev/lib/clang/22/lib/linux/x86_64 -L/lib/../lib64 -L/usr/lib64 -L/lib -L/usr/lib -plugin-opt=mcpu=x86-64 -plugin-opt=thinlto --no-demangle out/soong/.intermediates/bionic/libc/crtbegin_so/android_x86_64_apex33/crtbegin_so.o out/soong/.intermediates/packages/modules/OnDevicePersonalization/federatedcompute/libfcp_cpp_dep_jni/android_x86_64_shared_apex33/obj/packages/modules/OnDevicePersonalization/federatedcompute/jni/cpp/example_iterator_wrapper_impl.o out/soong/.intermediates/packages/modules/OnDevicePersonalization/federatedcompute/libfcp_cpp_dep_jni/android_x86_64_shared_apex33/obj/packages/modules/OnDevicePersonalization/federatedcompute/jni/cpp/fl_runner_jni.o out/soong/.intermediates/packages/modules/OnDevicePersonalization/federatedcompute/libfcp_cpp_dep_jni/android_x86_64_shared_apex33/obj/packages/modules/OnDevicePersonalization/federatedcompute/jni/cpp/log_manager_wrapper_impl.o out/soong/.intermediates/packages/modules/OnDevicePersonalization/federatedcompute/libfcp_cpp_dep_jni/android_x86_64_shared_apex33/obj/packages/modules/OnDevicePersonalization/federatedcompute/jni/cpp/simple_task_environment_wrapper_impl.o out/soong/.intermediates/packages/modules/OnDevicePersonalization/federatedcompute/libfcp_cpp_dep_jni/android_x86_64_shared_apex33/obj/external/tensorflow/tensorflow/lite/java/src/main/native/interpreter_factory_impl_jni.o out/soong/.intermediates/packages/modules/OnDevicePersonalization/federatedcompute/libfcp_cpp_dep_jni/android_x86_64_shared_apex33/obj/external/tensorflow/tensorflow/lite/java/src/main/native/jni_utils.o out/soong/.intermediates/packages/modules/OnDevicePersonalization/federatedcompute/libfcp_cpp_dep_jni/android_x86_64_shared_apex33/obj/external/tensorflow/tensorflow/lite/java/src/main/native/nativeinterpreterwrapper_jni.o out/soong/.intermediates/packages/modules/OnDevicePersonalization/federatedcompute/libfcp_cpp_dep_jni/android_x86_64_shared_apex33/obj/external/tensorflow/tensorflow/lite/java/src/main/native/nativeinterpreterwrapperexperimental_jni.o out/soong/.intermediates/packages/modules/OnDevicePersonalization/federatedcompute/libfcp_cpp_dep_jni/android_x86_64_shared_apex33/obj/external/tensorflow/tensorflow/lite/java/src/main/native/nativesignaturerunner_jni.o out/soong/.intermediates/packages/modules/OnDevicePersonalization/federatedcompute/libfcp_cpp_dep_jni/android_x86_64_shared_apex33/obj/external/tensorflow/tensorflow/lite/java/src/main/native/op_resolver_lazy_delegate_proxy.o out/soong/.intermediates/packages/modules/OnDevicePersonalization/federatedcompute/libfcp_cpp_dep_jni/android_x86_64_shared_apex33/obj/external/tensorflow/tensorflow/lite/java/src/main/native/tensor_jni.o out/soong/.intermediates/packages/modules/OnDevicePersonalization/federatedcompute/libfcp_cpp_dep_jni/android_x86_64_shared_apex33/obj/external/tensorflow/tensorflow/lite/java/src/main/native/tensorflow_lite_jni.o --whole-archive out/soong/.intermediates/external/federated-compute/libfederatedcompute/android_x86_64_static_apex33/libfederatedcompute.a --no-whole-archive out/soong/.intermediates/external/federated-compute/federated-compute-cc-proto-lite/android_x86_64_static_apex33/federated-compute-cc-proto-lite.a out/soong/.intermediates/external/protobuf/libprotobuf-cpp-lite-ndk/android_x86_64_static_apex33/libprotobuf-cpp-lite-ndk.a prebuilts/clang/host/linux-x86/clang-dev/lib/clang/22/lib/linux/libclang_rt.ubsan_minimal-x86_64-android.a prebuilts/clang/host/linux-x86/clang-dev/android_libc++/platform/x86_64/lib/libc++_static.a prebuilts/clang/host/linux-x86/clang-dev/android_libc++/platform/x86_64/lib/libc++demangle.a prebuilts/clang/host/linux-x86/clang-dev/lib/clang/22/lib/linux/libclang_rt.builtins-x86_64-android.a out/soong/.intermediates/system/logging/liblog/liblog/android_x86_64_shared_current/liblog.so out/soong/.intermediates/external/boringssl/libcrypto/android_x86_64_shared_apex33/libcrypto.so out/soong/.intermediates/bionic/libc/libc/android_x86_64_shared_current/libc.so out/soong/.intermediates/bionic/libm/libm/android_x86_64_shared_current/libm.so out/soong/.intermediates/bionic/libdl/libdl/android_x86_64_shared_current/libdl.so out/soong/.intermediates/bionic/libc/crtend_so/android_x86_64_apex33/crtend_so.o out/soong/.intermediates/bionic/libc/crt_pad_segment/android_x86_64_apex33/crt_pad_segment.o -z noexecstack -z relro -z now --build-id=md5 --fatal-warnings --no-undefined-version --exclude-libs libgcc.a --exclude-libs libgcc_stripped.a --exclude-libs libunwind_llvm.a --exclude-libs libunwind.a --compress-debug-sections=zstd --icf=safe --no-undefined -z separate-loadable-segments -z max-page-size=16384 --pack-dyn-relocs=android+relr --gc-sections -soname libfcp_cpp_dep_jni.so --version-script packages/modules/OnDevicePersonalization/federatedcompute/jni/jni.lds -plugin-opt -import-instr-limit=5 --exclude-libs=libclang_rt.builtins-x86_64-android.a --exclude-libs=libclang_rt.ubsan_minimal-x86_64-android.a
It seems this regression happened after August 1. I will do a bisection to figure out the specific commit.
Metadata
Metadata
Assignees
Labels
LTOLink time optimization (regular/full LTO or ThinLTO)Link time optimization (regular/full LTO or ThinLTO)slow-compile