<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [libcxxabi][arm] undefined reference to `__aeabi_uidiv'"
   href="https://bugs.llvm.org/show_bug.cgi?id=41465">41465</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>[libcxxabi][arm] undefined reference to `__aeabi_uidiv'
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>libc++abi
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>enhancement
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>All Bugs
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>david.green@arm.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>eric@efcs.ca, llvm-bugs@lists.llvm.org, mclow.lists@gmail.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>When running this on a native arm ubuntu 18.04 machine:

cmake -GNinja /work/llvm/llvm-project/llvm -DCMAKE_BUILD_TYPE=Release
-DLLVM_ENABLE_ASSERTIONS=ON -DLIBCXXABI_USE_LLVM_UNWINDER=ON
-DLLVM_ENABLE_PROJECTS="libcxx;libcxxabi;libunwind" -DCMAKE_C_COMPILER=clang
-DCMAKE_CXX_COMPILER=clang++ '-DCMAKE_C_FLAGS= -target armv7a-linux-gnueabihf
-march=armv7a' '-DCMAKE_CXX_FLAGS= -target armv7a-linux-gnueabihf
-march=armv7a'

ninja cxx


It gives:

: && /usr/bin/clang++ -fPIC -target armv7a-linux-gnueabihf -march=armv7a -fPIC
-fvisibility-inlines-hidden -Werror=date-time
-Werror=unguarded-availability-new -std=c++11 -Wall -Wextra
-Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers
-pedantic -Wno-long-long -Wimplicit-fallthrough -Wcovered-switch-default
-Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor
-Wstring-conversion -fdiagnostics-color -ffunction-sections -fdata-sections 
-O3  -Wl,-z,defs -Wl,-z,nodelete  -nodefaultlibs -shared
-Wl,-soname,libc++abi.so.1 -o lib/libc++abi.so.1.0
projects/libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_aux_runtime.cpp.o
projects/libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_default_handlers.cpp.o
projects/libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_demangle.cpp.o
projects/libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_exception_storage.cpp.o
projects/libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_guard.cpp.o
projects/libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_handlers.cpp.o
projects/libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_unexpected.cpp.o
projects/libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_vector.cpp.o
projects/libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_virtual.cpp.o
projects/libcxxabi/src/CMakeFiles/cxxabi_shared.dir/stdlib_exception.cpp.o
projects/libcxxabi/src/CMakeFiles/cxxabi_shared.dir/stdlib_stdexcept.cpp.o
projects/libcxxabi/src/CMakeFiles/cxxabi_shared.dir/stdlib_typeinfo.cpp.o
projects/libcxxabi/src/CMakeFiles/cxxabi_shared.dir/abort_message.cpp.o
projects/libcxxabi/src/CMakeFiles/cxxabi_shared.dir/fallback_malloc.cpp.o
projects/libcxxabi/src/CMakeFiles/cxxabi_shared.dir/private_typeinfo.cpp.o
projects/libcxxabi/src/CMakeFiles/cxxabi_shared.dir/stdlib_new_delete.cpp.o
projects/libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_exception.cpp.o
projects/libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_personality.cpp.o
projects/libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_thread_atexit.cpp.o 
-Wl,-rpath,"\$ORIGIN/../lib" lib/libunwind.so.1.0 -lpthread -lc && :
projects/libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_vector.cpp.o: In
function `__cxa_vec_new':
cxa_vector.cpp:(.text.__cxa_vec_new+0x28): undefined reference to
`__aeabi_uidiv'
projects/libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_vector.cpp.o: In
function `__cxa_vec_new2':
cxa_vector.cpp:(.text.__cxa_vec_new2+0x28): undefined reference to
`__aeabi_uidiv'
projects/libcxxabi/src/CMakeFiles/cxxabi_shared.dir/cxa_vector.cpp.o: In
function `__cxa_vec_new3':
cxa_vector.cpp:(.text.__cxa_vec_new3+0x28): undefined reference to
`__aeabi_uidiv'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
[282/286] Building CXX object
projects/libcxx/lib/CMakeFiles/cxx_static.dir/__/src/locale.cpp.o
ninja: build stopped: subcommand failed.


The divide added in rL357814 means that in armv7a (where divide is optional so
we generate a libcall), the __aeabi_uidiv is not defined. We don't seem to add
-lgcc.

That clang is 6.0, but it replicates with trunk. Most of our other builds are
not failing. -DLIBCXXABI_USE_LLVM_UNWINDER seems important.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>