Package Details: dynarmic 6.7.0-2

Git Clone URL: https://aur.archlinux.org/dynarmic.git (read-only, click to copy)
Package Base: dynarmic
Description: An ARM dynamic recompiler
Upstream URL: https://github.com/lioncash/dynarmic
Keywords: emulation jit
Licenses: 0BSD
Provides: libdynarmic.so
Submitter: abouvier
Maintainer: abouvier
Last Packager: abouvier
Votes: 2
Popularity: 0.022180
First Submitted: 2022-07-26 15:45 (UTC)
Last Updated: 2024-03-08 14:36 (UTC)

Dependencies (15)

Required by (1)

Sources (1)

Latest Comments

« First ‹ Previous 1 2 3

abouvier commented on 2023-06-12 12:48 (UTC)

The error occurs when -O3 is present in your CXXFLAGS (makepkg.conf sets -O2 by default).

gustafla commented on 2023-06-12 11:45 (UTC)

It's very late into the build, some safety warning turns into an error.

[ 87%] Building CXX object src/dynarmic/CMakeFiles/dynarmic.dir/backend/exception_handler_posix.cpp.o
In file included from /usr/include/c++/13.1.1/array:43,
                 from /home/gustafla/dynarmic/src/dynarmic-6.4.8/src/dynarmic/../dynarmic/backend/x64/a64_emit_x64.h:8,
                 from /home/gustafla/dynarmic/src/dynarmic-6.4.8/src/dynarmic/backend/x64/a64_emit_x64.cpp:6:
In static member function ‘static constexpr _Up* std::__copy_move<_IsMove, true, std::random_access_iterator_tag>::__copy_m(_Tp*, _Tp*, _Up*) [with _Tp = Dynarmic::Backend::X64::HostLoc; _Up = Dynarmic::Backend::X64::HostLoc; bool _IsMove = true]’,
    inlined from ‘constexpr _OI std::__copy_move_a2(_II, _II, _OI) [with bool _IsMove = true; _II = Dynarmic::Backend::X64::HostLoc*; _OI = Dynarmic::Backend::X64::HostLoc*]’ at /usr/include/c++/13.1.1/bits/stl_algobase.h:506:30,
    inlined from ‘constexpr _OI std::__copy_move_a1(_II, _II, _OI) [with bool _IsMove = true; _II = Dynarmic::Backend::X64::HostLoc*; _OI = Dynarmic::Backend::X64::HostLoc*]’ at /usr/include/c++/13.1.1/bits/stl_algobase.h:533:42,
    inlined from ‘constexpr _OI std::__copy_move_a(_II, _II, _OI) [with bool _IsMove = true; _II = __gnu_cxx::__normal_iterator<Dynarmic::Backend::X64::HostLoc*, vector<Dynarmic::Backend::X64::HostLoc> >; _OI = __gnu_cxx::__normal_iterator<Dynarmic::Backend::X64::HostLoc*, vector<Dynarmic::Backend::X64::HostLoc> >’ at /usr/include/c++/13.1.1/bits/stl_algobase.h:540:31,
    inlined from ‘constexpr _OI std::move(_II, _II, _OI) [with _II = __gnu_cxx::__normal_iterator<Dynarmic::Backend::X64::HostLoc*, vector<Dynarmic::Backend::X64::HostLoc> >; _OI = __gnu_cxx::__normal_iterator<Dynarmic::Backend::X64::HostLoc*, vector<Dynarmic::Backend::X64::HostLoc> >]’ at /usr/include/c++/13.1.1/bits/stl_algobase.h:665:38,
    inlined from ‘constexpr std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::_M_erase(iterator) [with _Tp = Dynarmic::Backend::X64::HostLoc; _Alloc = std::allocator<Dynarmic::Backend::X64::HostLoc>]’ at /usr/include/c++/13.1.1/bits/vector.tcc:185:2,
    inlined from ‘constexpr std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::erase(const_iterator) [with _Tp = Dynarmic::Backend::X64::HostLoc; _Alloc = std::allocator<Dynarmic::Backend::X64::HostLoc>]’ at /usr/include/c++/13.1.1/bits/stl_vector.h:1532:24,
    inlined from ‘Dynarmic::Backend::X64::A64EmitX64::Emit(Dynarmic::IR::Block&)::<lambda()>’ at /home/gustafla/dynarmic/src/dynarmic-6.4.8/src/dynarmic/backend/x64/a64_emit_x64.cpp:80:23,
    inlined from ‘Dynarmic::Backend::X64::EmitX64::BlockDescriptor Dynarmic::Backend::X64::A64EmitX64::Emit(Dynarmic::IR::Block&)’ at /home/gustafla/dynarmic/src/dynarmic-6.4.8/src/dynarmic/backend/x64/a64_emit_x64.cpp:86:7:
/usr/include/c++/13.1.1/bits/stl_algobase.h:437:30: error: ‘void* __builtin_memmove(void*, const void*, long unsigned int)’ reading between 5 and 9223372036854775807 bytes from a region of size 4 [-Werror=stringop-overread]
  437 |             __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
      |             ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

And similar thing repeated twice. I wonder how this machine differs from my other machine. They both run the same x86_64 Arch Linux.

gcc version 13.1.1 20230429 (GCC) clang version 15.0.7

abouvier commented on 2023-06-09 15:44 (UTC)

And what is the error message? I don't have any.

gustafla commented on 2023-06-09 12:28 (UTC)

I had to edit the PKGBUILD and add -DDYNARMIC_WARNINGS_AS_ERRORS = OFF \. I think there used to be a different 'fix' for this issue but it's been removed from the package. I don't know why it fails to build on my laptop but not my desktop, but turning -Werror off worked.

Ekim0789 commented on 2023-05-06 14:21 (UTC)

Thanks! I had to look into the code to figure out why it wasn't building for me so I figured I'd leave a comment to save the next person with the same issue some time.

abouvier commented on 2023-05-06 13:53 (UTC)

You will probably have this problem with every AUR packages depending on extra/llvm.

Since you manually modified your PATH to prioritize another llvm package, you should also manually ignore that same package by using something like -DCMAKE_IGNORE_PREFIX_PATH=/opt/rocm.

Ekim0789 commented on 2023-05-06 03:36 (UTC)

Heads up, if you have /opt/rocm/bin in PATH this will fail to build. I think it has something to do with /opt/rocm/llvm/include/llvm-c/ also supplying Disassembler.h and Target.h