<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/73935>73935</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            ExecutionEngine/JITLink/RISCV/ELF_ehframe.s fails on AArch64 Linux with libstdc++'s expensive checks
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          DavidSpickett
      </td>
    </tr>
</table>

<pre>
    ```
/usr/lib/gcc/aarch64-linux-gnu/10/../../../../include/c++/10/bits/stl_algo.h:2243:
In function:
    pair<_ForwardIterator, _ForwardIterator>
 std::equal_range(_ForwardIterator, _ForwardIterator, const _Tp &,
 _Compare) [_ForwardIterator =
 __gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<const
 llvm::jitlink::Edge *, std::__cxx1998::vector<llvm::jitlink::Edge>>,
 std::vector<llvm::jitlink::Edge>, std::random_access_iterator_tag>, _Tp
 = unsigned long, _Compare = Comp]

Error: elements in iterator range [__first, __last) are not partitioned by
the predicate __comp and value __val.

Objects involved in the operation:
    iterator "__first" @ 0x0xffffe6cb7850 {
      state = dereferenceable (start-of-sequence);
      references sequence @ 0x0xaaaac3da8f88
 }
    iterator "__last" @ 0x0xffffe6cb77d8 {
      state = past-the-end;
      references sequence @ 0x0xaaaac3da8f88
 }
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /home/david.spickett/build-llvm-aarch64/bin/llvm-jitlink -noexec -phony-externals -debug-only=jitlink /home/david.spickett/build-llvm-aarch64/test/ExecutionEngine/JITLink/RISCV/Output/ELF_ehframe.s.tmp.32.o
 #0 0x0000aaaac05b2860 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/david.spickett/build-llvm-aarch64/bin/llvm-jitlink+0xd1c860)
 #1 0x0000aaaac05b0554 llvm::sys::RunSignalHandlers() (/home/david.spickett/build-llvm-aarch64/bin/llvm-jitlink+0xd1a554)
 #2 0x0000aaaac05b2f98 SignalHandler(int) Signals.cpp:0:0
 #3 0x0000ffffacfad5c0 (linux-vdso.so.1+0x5c0)
 #4 0x0000ffffacac2d78 raise /build/glibc-RIFKjK/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #5 0x0000ffffacaafaac abort /build/glibc-RIFKjK/glibc-2.31/stdlib/abort.c:81:7
 #6 0x0000ffffaccf07f8 (/lib/aarch64-linux-gnu/libstdc++.so.6+0xca7f8)
 #7 0x0000aaaac01adda4 llvm::jitlink::getRISCVPCRelHi20(llvm::jitlink::Edge const&) ELF_riscv.cpp:0:0
```

Printing out the relocations, I see that the list is not in fact sorted:
```
Edge, offset = 0xc
Edge, offset = 0x1c
Edge, offset = 0x20
Edge, offset = 0x28
Edge, offset = 0x3c
Edge, offset = 0x4c
Edge, offset = 0x50
Edge, offset = 0x58
Edge, offset = 0x0
Edge, offset = 0x0
```

Perhaps someone has done a push back instead of insert front?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysV91u2zgWfhr65sCCRFqWfOELx4kw2SkwRVPsrUCRRzIbmdSQlOu8_YKU4tRpa2R3B3AciTw_H8_Px2PunOo04pbkdyS_X_DRH4zd3vOTkk-DEs_o_aIx8mVL1un8Se9JuiO0Gp0ltOpVQ2jVCUFoxbkVh_Vq2Ss9npedHgmtspTQKkl-_lJa9KNEQitB6F38TMKN8o7Qyvm-5n1nkgNhO0pXjLDd5PtRQztq4ZXRlzUAgIErS9i-roz9zq189Gi5N5bQPfy0xh5mPedlMMJ2-PfI-9py3SGh5YeM0D0Io52H-usAhK4J3c9W6705DtwioRsg-d17TSDs_lWy7vRYS2zGbsJRP_EWa3UBup8kxPk879fa2CPvfxSJKGaDfX86TpLflO-Vfp5eHmSHQOgugL6cuQ5ms82mnF5PKCZ7N2yEyLGHt5NebH1U-Uf_lmtpjjUXAp27HKj2vJsl66_D7Iewexh1rFYJvdFd3J7DHHfDM8nnuE7fD9YGSDvAHo-ovQOl4dUNxFzH9NStss5Hi3XPw9MGglltPAzcehVqDSU0L5Ndf0AYLEoluEeoa2GOA3At4cT7MSyceJ_8COSv5huK6P5k-hPKgCMYMUPA8r6QLwgJpRdsFMgqhfScntu2bXEtmqLMUyDF3ZsigPMBUQiHRIstWtQCedOH3JfOc-uXpl06_HsMG4RuCLvSv-g4eBW6-OWcc8EkL9uyfM1Kcf872FMcf4G6kOXvUQ_c-aU_4BK1_Iegff70sHt6ADc2R-WBQzN2YHEw1oM3cPB-cCH6tAo8pvxhbBJhjoHaQiFP_5aDNSGDgbecGzEQVEz4zGIxmcJyd4CGi2dvucC5AJ48F88gx-NwyXGaTCf6bE1n-RG47cZYnqFUCa0O5hh4UQYWTtxMw4EZR9XLZcQzU22kS_0Kcu43WGqDZxSwHA5Gvyzx7NFq3jtYRp5ZGt2_EHb_Kv7fevQYMls9nFGMoXYfdKd0UP_X49dPod9p9eXxaf9vQqu_Rj-MUfhTVeOhtfyIiUv8cUgYTcxrqiiLaUzTNCYyzRtartMfqMy9uOnhs1Xax5B-DTEmtHwTsvx7bZy3yI8TGYPSsZUJLf__qBJ6l55lJsp1Gtrmgjx7hzzN89WvkH8Z9ZPqNO__4Fr2aF1E9c-C43m-ugJH34e13ZRwBYPQco7StOwSMYRKTePfxRCbDYUu5qLlMhdpgD5d9SfpTOJMkkUcubiO0OpKlwsqixIsVy6Q0nTC0Hq9asTyy2P157c_L680YVmYBSK018nBvTiJQ2jBUavztHCKo4gew2s0nQjCdnlG2C57Q5JfI-Et5wJ4E6jgo0i8nCaeqBWdlMFJ8eZkfeVEtGnRlnOWZ9VfjEm9apyX8yQUQrmOoRS8aMurYBZXGc24lHz1uzu_Qx8b8fP-C_Z_KJpetcvP48E0RoTW2UBoWKucOP1cD-9HwYllQ2Mq3YEZfWRDi70R8W5zoRUfwWGgST7t9sp5UC7esEpDy4UHZ6xHeWHJd27i_ED3YNrWoY-XRXoWN_ayW5v0llVa3thkt8yubm3mt3zmt3zeUryZFLQHPjhw5ohGIxy4AxkeOAzjfFeB0s4jl2Da8IjWQ2uN9oRVC7llcsM2fIHbrEgzlqe0YIvDljbr1boom6Ys-bpZbVK5phJLlFlWMpqzhdrSlLIsY2nGsiJnScNalGnB1qJd4QoLskrxyFWfhHpMjO0W8V7dFmzD8kXPG-xd_FFCqcbvEDcJpeE3it1G5mvGzpFVGgrJvVnxyve4_cjVdHUjQctV78Bo2O1ic8Kn0JzwXfkDXPUmoYUDPA-onTohiAOKZ7cYbb_93yeJeOj_BAAA__8NIybN">