[llvm-bugs] [Bug 28629] New: Clang generates calls to __mulodi4() for ARM even when not using compiler-rt

via llvm-bugs llvm-bugs at lists.llvm.org
Wed Jul 20 09:22:11 PDT 2016


https://llvm.org/bugs/show_bug.cgi?id=28629

            Bug ID: 28629
           Summary: Clang generates calls to __mulodi4() for ARM even when
                    not using compiler-rt
           Product: clang
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: -New Bugs
          Assignee: unassignedclangbugs at nondot.org
          Reporter: srhines at google.com
                CC: arnaud.degrandmaison at arm.com,
                    llvm-bugs at lists.llvm.org, pirama at google.com,
                    renato.golin at linaro.org, silviu.baranga at arm.com
            Blocks: 21420
    Classification: Unclassified

The instructions use NDK version r11c, but the latest version r12/r13beta also
reproduce this issue.

STEPS TO REPRODUCE:
1. make standalone toolchain using the following command

    ./build/tools/make-standalone-toolchain.sh \
        --use-llvm              \
        --arch=arm64    \
        --platform=android-24 \
        --install_dir=$TOOLCHAIN_DIR

2.  compile the Skia test executables using the instructions found at
https://skia.org/user/quick/android
3.  push the executable to the device and run.

EXPECTED RESULTS:
executable runs to completion

OBSERVED RESULTS:
crashes on launch with the following error message

dlopen failed: cannot locate symbol "__mulodi4" referenced by
“libskia_android.so"

ADDITIONAL INFORMATION:
In step 2, if we use the gcc binaries included with the toolchain then the
executable runs with no issues.  We have a quick hack at
https://codereview.chromium.org/2011073002/ that attempts to work around the
issue but is not desireable.

https://llvm.org/bugs/show_bug.cgi?id=17693 seems similar, but this is not for
sanitizer code, so we should be able to use a different rtlib than compiler-rt.
Is it expected for clang to lower sequences of __builtin_smull_overflow
(https://android.googlesource.com/platform/external/dng_sdk.git/+/master/source/dng_safe_arithmetic.h#112)
to __mulodi4 in all cases? It is known that libgcc won't provide this symbol,
so at the very least, clang should warn/error that the rtlib selected won't be
able to resolve this symbol at runtime.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20160720/389edd67/attachment.html>


More information about the llvm-bugs mailing list