This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/AM5728: Android build error

Part Number: AM5728


Tool/software: Linux

Dear all:

I'am building android source code, but i meet soom error, who can help me? Thanks

1. $ cd $HOME/ti-processor-sdk-android-am57xx-evm-04.02.00.09/board-support/aosp-6AO.1.0

2. $ ./repo sync

3. $ export KERNELDIR=<KERNEL_DIR>

4. $ sudo apt-get update

5. $ sudo apt-get install openjdk-8-jdk

6. $ . build/envsetup.sh

7. $ lunch full_am57xevm-userdebug

8. $ make -j4 clean; make -j4

9. OUTPUT ERROR:

[ 94% 58253/61696] target Strip (mini debug info): toybox_vendor (out/target/product/generic/obj/EXECUTABLES/toybox_vendor_intermediates/toybox_vendor)
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/arm-linux-androideabi-nm: out/target/product/generic/symbols/system/vendor/bin/toybox_vendor: no symbols
[ 94% 58255/61696] target StaticExecutable: adbd (out/target/product/generic/obj/EXECUTABLES/adbd_intermediates/LINKED/adbd)
FAILED: out/target/product/generic/obj/EXECUTABLES/adbd_intermediates/LINKED/adbd
/bin/bash -c "prebuilts/clang/host/linux-x86/clang-3859424/bin/clang++ -nostdlib -Bstatic -static -Wl,--gc-sections -o out/target/product/generic/obj/EXECUTABLES/adbd_intermediates/LINKED/adbd out/target/product/generic/obj/lib/crtbegin_static.o -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--build-id=md5 -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--icf=safe -Wl,--hash-style=gnu -Wl,--no-undefined-version -Wl,--fix-cortex-a8 -target arm-linux-androideabi -Bprebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/arm-linux-androideabi/bin -Wl,--exclude-libs,libunwind_llvm.a -Wl,--no-undefined out/target/product/generic/obj/EXECUTABLES/adbd_intermediates/daemon/main.o out/target/product/generic/obj/EXECUTABLES/adbd_intermediates/daemon/mdns.o out/target/product/generic/obj/EXECUTABLES/adbd_intermediates/services.o out/target/product/generic/obj/EXECUTABLES/adbd_intermediates/file_sync_service.o out/target/product/generic/obj/EXECUTABLES/adbd_intermediates/framebuffer_service.o out/target/product/generic/obj/EXECUTABLES/adbd_intermediates/remount_service.o out/target/product/generic/obj/EXECUTABLES/adbd_intermediates/set_verity_enable_state_service.o out/target/product/generic/obj/EXECUTABLES/adbd_intermediates/shell_service.o out/target/product/generic/obj/EXECUTABLES/adbd_intermediates/shell_service_protocol.o -Wl,--whole-archive -Wl,--no-whole-archive out/target/product/generic/obj/STATIC_LIBRARIES/libadbd_intermediates/libadbd.a out/target/product/generic/obj/STATIC_LIBRARIES/libbase_intermediates/libbase.a out/target/product/generic/obj/STATIC_LIBRARIES/libbootloader_message_intermediates/libbootloader_message.a out/target/product/generic/obj/STATIC_LIBRARIES/libfs_mgr_intermediates/libfs_mgr.a out/target/product/generic/obj/STATIC_LIBRARIES/libfec_intermediates/libfec.a out/target/product/generic/obj/STATIC_LIBRARIES/libfec_rs_intermediates/libfec_rs.a out/target/product/generic/obj/STATIC_LIBRARIES/libselinux_intermediates/libselinux.a out/target/product/generic/obj/STATIC_LIBRARIES/liblog_intermediates/liblog.a out/target/product/generic/obj/STATIC_LIBRARIES/libext4_utils_intermediates/libext4_utils.a out/target/product/generic/obj/STATIC_LIBRARIES/libsquashfs_utils_intermediates/libsquashfs_utils.a out/target/product/generic/obj/STATIC_LIBRARIES/libcutils_intermediates/libcutils.a out/target/product/generic/obj/STATIC_LIBRARIES/libbase_intermediates/libbase.a out/target/product/generic/obj/STATIC_LIBRARIES/libcrypto_utils_intermediates/libcrypto_utils.a out/target/product/generic/obj/STATIC_LIBRARIES/libcrypto_intermediates/libcrypto.a out/target/product/generic/obj/STATIC_LIBRARIES/libminijail_intermediates/libminijail.a out/target/product/generic/obj/STATIC_LIBRARIES/libmdnssd_intermediates/libmdnssd.a out/target/product/generic/obj/STATIC_LIBRARIES/libdebuggerd_handler_intermediates/libdebuggerd_handler.a out/target/product/generic/obj/STATIC_LIBRARIES/libc++_static_intermediates/libc++_static.a out/target/product/generic/obj/STATIC_LIBRARIES/libunwind_llvm_intermediates/libunwind_llvm.a out/target/product/generic/obj/STATIC_LIBRARIES/libm_intermediates/libm.a out/target/product/generic/obj/STATIC_LIBRARIES/libdl_intermediates/libdl.a -Wl,--start-group out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/libc.a out/target/product/generic/obj/STATIC_LIBRARIES/libatomic_intermediates/libatomic.a out/target/product/generic/obj/STATIC_LIBRARIES/libgcc_intermediates/libgcc.a -Wl,--end-group out/target/product/generic/obj/lib/crtend_android.o'
external/libcxx/include/chrono:386: error: undefined reference to '__mulodi4'
external/libcxx/include/chrono:386: error: undefined reference to '__mulodi4'
clang.real: error: linker command failed with exit code 1 (use -v to see invocation)
[ 94% 58256/61696] target StaticExecutable: init (out/target/product/generic/obj/EXECUTABLES/init_intermediates/LINKED/init)
FAILED: out/target/product/generic/obj/EXECUTABLES/init_intermediates/LINKED/init
/bin/bash -c "prebuilts/clang/host/linux-x86/clang-3859424/bin/clang++ -nostdlib -Bstatic -static -Wl,--gc-sections -o out/target/product/generic/obj/EXECUTABLES/init_intermediates/LINKED/init out/target/product/generic/obj/lib/crtbegin_static.o -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--build-id=md5 -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--icf=safe -Wl,--hash-style=gnu -Wl,--no-undefined-version -Wl,--fix-cortex-a8 -target arm-linux-androideabi -Bprebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/arm-linux-androideabi/bin -Wl,--exclude-libs,libunwind_llvm.a -Wl,--no-undefined out/target/product/generic/obj/EXECUTABLES/init_intermediates/bootchart.o out/target/product/generic/obj/EXECUTABLES/init_intermediates/builtins.o out/target/product/generic/obj/EXECUTABLES/init_intermediates/devices.o out/target/product/generic/obj/EXECUTABLES/init_intermediates/init.o out/target/product/generic/obj/EXECUTABLES/init_intermediates/init_first_stage.o out/target/product/generic/obj/EXECUTABLES/init_intermediates/keychords.o out/target/product/generic/obj/EXECUTABLES/init_intermediates/property_service.o out/target/product/generic/obj/EXECUTABLES/init_intermediates/reboot.o out/target/product/generic/obj/EXECUTABLES/init_intermediates/signal_handler.o out/target/product/generic/obj/EXECUTABLES/init_intermediates/ueventd.o out/target/product/generic/obj/EXECUTABLES/init_intermediates/ueventd_parser.o out/target/product/generic/obj/EXECUTABLES/init_intermediates/watchdogd.o -Wl,--whole-archive -Wl,--no-whole-archive out/target/product/generic/obj/STATIC_LIBRARIES/libinit_intermediates/libinit.a out/target/product/generic/obj/STATIC_LIBRARIES/libbootloader_message_intermediates/libbootloader_message.a out/target/product/generic/obj/STATIC_LIBRARIES/libfs_mgr_intermediates/libfs_mgr.a out/target/product/generic/obj/STATIC_LIBRARIES/libfec_intermediates/libfec.a out/target/product/generic/obj/STATIC_LIBRARIES/libfec_rs_intermediates/libfec_rs.a out/target/product/generic/obj/STATIC_LIBRARIES/libsquashfs_utils_intermediates/libsquashfs_utils.a out/target/product/generic/obj/STATIC_LIBRARIES/liblogwrap_intermediates/liblogwrap.a out/target/product/generic/obj/STATIC_LIBRARIES/libext4_utils_intermediates/libext4_utils.a out/target/product/generic/obj/STATIC_LIBRARIES/libcutils_intermediates/libcutils.a out/target/product/generic/obj/STATIC_LIBRARIES/libbase_intermediates/libbase.a out/target/product/generic/obj/STATIC_LIBRARIES/libselinux_intermediates/libselinux.a out/target/product/generic/obj/STATIC_LIBRARIES/liblog_intermediates/liblog.a out/target/product/generic/obj/STATIC_LIBRARIES/libcrypto_utils_intermediates/libcrypto_utils.a out/target/product/generic/obj/STATIC_LIBRARIES/libcrypto_intermediates/libcrypto.a out/target/product/generic/obj/STATIC_LIBRARIES/libc++_static_intermediates/libc++_static.a out/target/product/generic/obj/STATIC_LIBRARIES/libdl_intermediates/libdl.a out/target/product/generic/obj/STATIC_LIBRARIES/libsparse_intermediates/libsparse.a out/target/product/generic/obj/STATIC_LIBRARIES/libz_intermediates/libz.a out/target/product/generic/obj/STATIC_LIBRARIES/libprocessgroup_intermediates/libprocessgroup.a out/target/product/generic/obj/STATIC_LIBRARIES/libavb_intermediates/libavb.a out/target/product/generic/obj/STATIC_LIBRARIES/libc++_static_intermediates/libc++_static.a out/target/product/generic/obj/STATIC_LIBRARIES/libunwind_llvm_intermediates/libunwind_llvm.a out/target/product/generic/obj/STATIC_LIBRARIES/libm_intermediates/libm.a out/target/product/generic/obj/STATIC_LIBRARIES/libdl_intermediates/libdl.a -Wl,--start-group out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/libc.a out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/libc.a out/target/product/generic/obj/STATIC_LIBRARIES/libatomic_intermediates/libatomic.a out/target/product/generic/obj/STATIC_LIBRARIES/libgcc_intermediates/libgcc.a -Wl,--end-group out/target/product/generic/obj/lib/crtend_android.o'
external/libcxx/include/chrono:386: error: undefined reference to '__mulodi4'
external/libcxx/include/chrono:386: error: undefined reference to '__mulodi4'
external/libcxx/include/chrono:386: error: undefined reference to '__mulodi4'
external/libcxx/include/chrono:386: error: undefined reference to '__mulodi4'
clang.real: error: linker command failed with exit code 1 (use -v to see invocation)
[ 94% 58258/61696] ld out/soong/.intermediates/external/llvm/libLLVM/android_arm_armv7-a_shared_core/libLLVM.so
ninja: build stopped: subcommand failed.
13:05:31 ninja failed with: exit status 1
build/core/main.mk:21: recipe for target 'run_soong_ui' failed
make: *** [run_soong_ui] Error 1

#### make failed to build some targets (01:11:56 (hh:mm:ss)) ####

BTW:

I added a "libcompiler_rt.a", the building is success.

/bin/bash -c "prebuilts/clang/host/linux-x86/clang-3859424/bin/clang++ -nostdlib -Bstatic -static -Wl,--gc-sections -o out/target/product/generic/obj/EXECUTABLES/adbd_intermediates/LINKED/adbd out/target/product/generic/obj/lib/crtbegin_static.o -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--build-id=md5 -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--icf=safe -Wl,--hash-style=gnu -Wl,--no-undefined-version -Wl,--fix-cortex-a8   -target arm-linux-androideabi -Bprebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/arm-linux-androideabi/bin -Wl,--exclude-libs,libunwind_llvm.a -Wl,--no-undefined out/target/product/generic/obj/EXECUTABLES/adbd_intermediates/daemon/main.o out/target/product/generic/obj/EXECUTABLES/adbd_intermediates/daemon/mdns.o out/target/product/generic/obj/EXECUTABLES/adbd_intermediates/services.o out/target/product/generic/obj/EXECUTABLES/adbd_intermediates/file_sync_service.o out/target/product/generic/obj/EXECUTABLES/adbd_intermediates/framebuffer_service.o out/target/product/generic/obj/EXECUTABLES/adbd_intermediates/remount_service.o out/target/product/generic/obj/EXECUTABLES/adbd_intermediates/set_verity_enable_state_service.o out/target/product/generic/obj/EXECUTABLES/adbd_intermediates/shell_service.o out/target/product/generic/obj/EXECUTABLES/adbd_intermediates/shell_service_protocol.o -Wl,--whole-archive  -Wl,--no-whole-archive out/target/product/generic/obj/STATIC_LIBRARIES/libadbd_intermediates/libadbd.a out/target/product/generic/obj/STATIC_LIBRARIES/libbase_intermediates/libbase.a out/target/product/generic/obj/STATIC_LIBRARIES/libbootloader_message_intermediates/libbootloader_message.a out/target/product/generic/obj/STATIC_LIBRARIES/libfs_mgr_intermediates/libfs_mgr.a out/target/product/generic/obj/STATIC_LIBRARIES/libfec_intermediates/libfec.a out/target/product/generic/obj/STATIC_LIBRARIES/libfec_rs_intermediates/libfec_rs.a out/target/product/generic/obj/STATIC_LIBRARIES/libselinux_intermediates/libselinux.a out/target/product/generic/obj/STATIC_LIBRARIES/liblog_intermediates/liblog.a out/target/product/generic/obj/STATIC_LIBRARIES/libext4_utils_intermediates/libext4_utils.a out/target/product/generic/obj/STATIC_LIBRARIES/libsquashfs_utils_intermediates/libsquashfs_utils.a out/target/product/generic/obj/STATIC_LIBRARIES/libcutils_intermediates/libcutils.a out/target/product/generic/obj/STATIC_LIBRARIES/libbase_intermediates/libbase.a out/target/product/generic/obj/STATIC_LIBRARIES/libcrypto_utils_intermediates/libcrypto_utils.a out/target/product/generic/obj/STATIC_LIBRARIES/libcrypto_intermediates/libcrypto.a out/target/product/generic/obj/STATIC_LIBRARIES/libminijail_intermediates/libminijail.a out/target/product/generic/obj/STATIC_LIBRARIES/libmdnssd_intermediates/libmdnssd.a out/target/product/generic/obj/STATIC_LIBRARIES/libdebuggerd_handler_intermediates/libdebuggerd_handler.a out/target/product/generic/obj/STATIC_LIBRARIES/libc++_static_intermediates/libc++_static.a out/target/product/generic/obj/STATIC_LIBRARIES/libunwind_llvm_intermediates/libunwind_llvm.a out/target/product/generic/obj/STATIC_LIBRARIES/libm_intermediates/libm.a out/target/product/generic/obj/STATIC_LIBRARIES/libdl_intermediates/libdl.a -Wl,--start-group out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/libc.a   out/target/product/generic/obj/STATIC_LIBRARIES/libatomic_intermediates/libatomic.a  out/target/product/generic/obj/STATIC_LIBRARIES/libgcc_intermediates/libgcc.a -Wl,--end-group out/target/product/generic/obj/lib/crtend_android.o out/target/product/generic/obj/STATIC_LIBRARIES/libcompiler_rt_intermediates/libcompiler_rt.a"

  • Hello there,

    What OS are you building on? Did you follow the instructions in "Build PC Setup"?

    Regards,

    NIck

  • Thank you for reply.

    OS: Ubuntu 16.04 LTS

    Yes, I have follow the instructions.

    ==================================================

    Again: 

    external/compiler-rt/Android.bp

    cc_library_static {
        name: "libcompiler_rt-extras",
        host_supported: true,
        vendor_available: true,
        clang: true,
        sdk_version: "9",
        // The following list contains functions that are not available in libgcc.a, so
        // we potentially need them when using a Clang-built component (e.g., -ftrapv
        // with 64-bit integer multiplies. See llvm.org/.../show_bug.cgi
        srcs: ["lib/builtins/mulodi4.c"],
        sanitize: {
        never: true,
    },
    stl: "none",

            cflags: [
            "-Wno-unused-parameter",
            "-Werror",
           ],

          arch: {
    mips: {
    srcs: ["lib/builtins/clear_cache.c"],
    },
    mips64: {
    srcs: ["lib/builtins/clear_cache.c"],
    },
    // Clang generates call to __unorddf2 builtin when compiling s_fmal.c
    // in bionic. Generate this builtin from compiler-rt for arm64 and
    // x86_64 (where the corresponding libgcc does not have this builtin.
    arm64: {
    srcs: ["lib/builtins/comparedf2.c"],
    },
    x86_64: {
    srcs: ["lib/builtins/comparedf2.c"],
    },
    },

    target: {
    linux_bionic: {
    enabled: true,
    },
    windows: {
    enabled: true,
    },
    },
    }

    ================

    My compiler-rt is:

    <project groups="pdk" name="platform/external/compiler-rt" path="external/compiler-rt" revision="36753a078164af788a3ca1ab4679b805f8dafb93" upstream="d-oreo-r6-release"/>

    1. Is the error a bug?

    2. I have edit a lots of Android.bp  or Android.mk, ,the build is success.  This job cost me a lot of time.

    + static_libs: ["libcompiler_rt-extras"],

    or

    + LOCAL_STATIC_LIBRARIES += libcompiler_rt-extras

    Is the right way? Is there any better way?

  • I will do an Android build on my side and see if I can replicate your results.

    Did you make any modifications before getting the
    external/libcxx/include/chrono:386: error: undefined reference to '__mulodi4'
    error?

    Or were your modifications only to add libcompiler_rt?

    Regards,
    Nick
  • Thank you for replay.

    Yes, I just added "libcompiler_rt-extras", These files are as follows:

    ti-processor-sdk-android-am57xx-evm-04.02.00.09/board-support/aosp-6AO.1.0/system/core/adb/Android.mk
    ti-processor-sdk-android-am57xx-evm-04.02.00.09/board-support/aosp-6AO.1.0/system/core/init/Android.mk
    ti-processor-sdk-android-am57xx-evm-04.02.00.09/board-support/aosp-6AO.1.0/system/core/base/Android.bp
    ti-processor-sdk-android-am57xx-evm-04.02.00.09/board-support/aosp-6AO.1.0/external/dng_sdk/Android.bp
    ti-processor-sdk-android-am57xx-evm-04.02.00.09/board-support/aosp-6AO.1.0/frameworks/av/media/libaudioclient/Android.bp
    ti-processor-sdk-android-am57xx-evm-04.02.00.09/board-support/aosp-6AO.1.0/frameworks/av/media/libstagefright/Android.bp

    At last, the building is success.

    It can run correctly on my am57xevm.

    It's done.

    Thank you for your help.

    Best Regards

    Tomson

  • Tomson,

    though you are unblocked. your steps are in the wrong order. do not do a make clean after lunch command, that will erase the build environment and you will end up building generic config (not for am57xevm)

    correct order is as follows.

    1. $ cd $HOME/ti-processor-sdk-android-am57xx-evm-04.02.00.09/board-support/aosp-6AO.1.0

    2. $ ./repo sync

    3. $ export KERNELDIR=<KERNEL_DIR>

    4. $ sudo apt-get update

    5. $ sudo apt-get install openjdk-8-jdk

    6. $ make -j4 clean

    7. $ . build/envsetup.sh

    7. $ lunch full_am57xevm-userdebug

    8. $ make -j4

  • Praneeth,

    Thank you for your help.

    Right, Different order will produce different outputs. As follow:

    out/target/product/am572xevm

    and

    out/target/product/generic

    Thank you.

    Best Regards.

    Tomson.