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

    <tr>
        <th>Summary</th>
        <td>
            Commit "MCAssembler: Simplify fixup handling" (922dde3c64) regresses RISC-V XRay tests
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:RISC-V,
            mc
      </td>
    </tr>

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

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

<pre>
    922dde3c6403c7ef61f3c21af485a7feeb931a09 broke XRay-riscv64-linux::coverage-sample.cpp (and I assume XRay-riscv64-linux::func-id-utils.cpp as well, which broke in the same batch of commits).


This is the bisect script which shows how to reproduce from an x86 host. Apologies for the hacky addition of QEMU_LD_PREFIX:

```
cat - <<'EOF' > build_and_test.sh
#!/bin/sh

export QEMU_LD_PREFIX=$HOME/rvsysroot # Needed as there's a python3 issue with the runtimes otherwise?
rm -rf build/rvregression
cmake -G Ninja \
 -DLLVM_TARGETS_TO_BUILD="X86;RISCV" \
 -DLLVM_ENABLE_PROJECTS='clang;lld' \
  -DLLVM_ENABLE_RUNTIMES=compiler-rt \
  -DLLVM_CCACHE_BUILD=ON \
  -DLLVM_USE_RELATIVE_PATHS_IN_FILES=ON \
 -DCMAKE_C_COMPILER=clang \
  -DCMAKE_CXX_COMPILER=clang++ \
 -DLLVM_ENABLE_LLD=ON \
  -DCMAKE_BUILD_TYPE=Release \
 -DLLVM_ENABLE_ASSERTIONS=ON \
  -DLLVM_RUNTIME_TARGETS=riscv64-linux-gnu \
  -DRUNTIMES_riscv64-linux-gnu_CMAKE_SYSTEM_NAME=Linux \
 -DRUNTIMES_riscv64-linux-gnu_CMAKE_SYSROOT=$HOME/rvsysroot \
  -S llvm \
 -B build/rvregression
cmake --build build/rvregression --target runtimes || exit 125
./build/rvregression/bin/clang --target=riscv64-linux-gnu --sysroot=$HOME/rvsysroot --driver-mode=g++ -fxray-instrument -std=c++11 compiler-rt/test/xray/TestCases/Posix/coverage-sample.cpp || exit 1
./a.out || exit 1
EOF
chmod +x build_and_test.sh

BAD=dd2891535d4b6d80f92d9a69e9db3b787203b9d0
GOOD=a9ee1797b716fa61f495a2400f95da4594a8ae80
git bisect start $BAD $GOOD
git bisect run ./build_and_test.sh
```

Prior to the patch, the output is:
```
first pass.
patched: 1
patched: 2
patched: 3
second pass.
patched: 1
patched: 2
patched: 3
missing 1.
patched: 2
patched: 3
```

After the patch, the output is:
```
==3238438==Failed patching any sled for function '3'.==3238438==Failed patching any sled for function '2'.==3238438==Failed patching any sled for function '1'.==3238438==Failed patching any sled for function '1'.==3238438==Failed patching any sled for function '2'.==3238438==Failed patching any sled for function '3'.first pass.
patched: 1
patched: 2
patched: 3
==3238438==Failed patching any sled for function '1'.a.out.bad: compiler-rt/test/xray/TestCases/Posix/coverage-sample.cpp:64: int main(int, char **): Assertion `__xray_patch_function(id) == XRayPatchingStatus::SUCCESS' failed.
Aborted (core dumped)
```

The patch doesn't revert cleanly currently. I'm wondering @MaskRay if the likely issue is obvious to you.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzEV1FvozoW_jXuyxERGAjwkAdCyEx206abpKPeJ2TwIfgWcGSbtvn3K5N02mk7urvbla6EFBHO9_n7fI6Pbaa1OPSIMxLOCaXXTD9s2YlQSsLFFRtMI9WM6fKqlPw0SyjlHP1qGrh-FWE99Wq_oh6rgzhkUY1YJr7H3ARKJR8Q7rfs5Cihq8dp4LSiH56JnxI_reQjKnZAR7Pu2OKkOh6B0Jj1HFbAtB6632Proa8cwZ3BiFaPSKbhCduW0AyeGlE1l8FFD6ZB0KxDKJmpGpA1VLLrhNGEJhPipudn3wgNQo_RpdBYGdCVEkdzodONfNLQyCcwEhQeleRDhVAr2QHr4TmeQiO1mUB6lK08CNRQSzXSNax6OAHjXBgheyvgX_n1XbFeFLfbfLm6t5bOMqbu5XHTihlwgPiZfWiUb5aERkD8HMpBtLxgPS8MajPRjUVSn1CP0GUpekKX5__cFJ-PUpkPwy0IDb5vrnNCl-pRn7SS0gChPtwgcuR2Lk2DCgmNNDA4nkwjex-E1gPCkzDNaEsNvREdapA2-EloJP6SuKnqwFH1WeY4gsKDQq2F7K2vjj0gON_gRvR_MiBhRtwUnMV6_eO62Kfbb_l-V-w3xfxutV6MUul9PCX-fLvaZT8Ipe8g-U06X-fF7Xbzjzzb70ZEVLWsPxB_3loF0QviHWR7d7NfXecWUsnuKFpUjjLvg7Mszb7nP-Vsbt4H3O3yYpuv0_3qR17cpvvvu2J1UyxX65H5Nd5ZZNfpP_MiK7LN9e1qnW_twFboG8ZLyP39hyBC54TOPze__ijtTDSqLvZ_3ObEX2yxRabxc4p0t8u3-9XmZvepyctcvSSI-ItfFqVz6Ic3kJeZLT4EFWdduz92-_y6uEmvrbC1_foq6z9Bbzeb_e_q-EXGDtr2sfvJO_-LinTGz58GgeMYpg5oXmueRBmJMsBnYcCjIXHTiV19n43wsijPuX6h-nQKHefi4jfeHIcr8YjK6SRH4i9eqsKpnxU7OaLXRg0d9gYcbbgtnXOA58GbEid0aTsHoUuLInS5R20yplETuryVWjxbtZ9157emL5bZRA7mwxfbrty0ajrJgdD58-dNy03nqa1czmmceKEf8qCc8titE8oTNk0w4aVfRnFEXb9MuG2L3zYbi2AJohclURl505pNvTpIQkYD162TkLMgTAIWM4wt4iDMz4ZumF3gNJinC_szkv0SoYYefibyvdw33Zm46a0Str_LsRce7dZi9x77IgdzHAwIfWnsb3C1UNrAkWltd54RhZz46Thpb17pr68-cVONlez5_4bthNaiP4A3-cvQdy7T2qD6ryza0vUXPvXjwI_PL0smWuRnBiuD9SfQ9h-7Q9qtfNwXCY18QqPJVwjoVwm8v53gyxbGSfxCoX3Z_dgSJiUbGf8PfYf46TSwXKI30DHbTGPRG1uLVcMUEJqOT2JjUq1RneVM3aKwIxWj7uJFp0VzQhM4exvPmLcXZzvDzKDPZ8zdXZblu509QNSjfzuTaSmVQdvU4koqBD50R7RsH5fO_mXRAJeoe0IjAwofURmoWmR9e4JqUAp7054msCI06uBJ9hyVnWISuJdTOIh6XHOteMD2dDmFCQ2yfBRy0LYFneQwueIznyd-wq5w5kWhl7heTOlVMwuCgEc05D6NWILTMmBBRYMwSqbetIrD8ErMqEtDN3IjL6R-QCdlSGPu1VUcBgnHOCSBix0T7cRuqBOpDlejiJkXRD6lVy0rsdWXq0PJqgfsbertgc2xJzZCM0JpV12uE2pmaZxyOGgSuK3QRr8SG2FanGXjAR3sTSSzCe3KFpXN7k50x1bUJ6jF83CEhvW8FfZwRG1GXi8mNr2XLRg1nJWMiQZbgfpqUO2sMeY4ppouCV0ehGmGclLJjtCllXP5cY5K_omVrdrRtK3Vi-_HGf13AAAA__8-ew9W">