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

    <tr>
        <th>Summary</th>
        <td>
            Unable to use llvm-bolt to instrument RISC-V program
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            BOLT
      </td>
    </tr>

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

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

<pre>
    The compilation command I used is: 
`riscv64-unknown-linux-gnu-gcc program.c -Wl,--emit-relocs -fno-reorder-blocks-and-partition -static -o program `
program.c is a simple program.
Next, when I use llvm-bolt for instrumentation, the command I used is: 
`llvm-bolt program -instrument -o instrumented_program -instrumentation-file=without_pgo.fdata -instrumentation-sleep-time=2`
the following error message appears:
Log:
```
BOLT-INFO: Target architecture: riscv64
BOLT-INFO: BOLT version: a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4
BOLT-INFO: first alloc address is 0x10000
BOLT-INFO: creating new program header table at address 0x210000, offset 0x200000
BOLT-WARNING: debug info will be stripped from the binary. Use -update-debug-sections to keep it.
BOLT-INFO: enabling relocation mode
BOLT-INFO: static input executable detected
BOLT-INFO: forcing -jump-tables=move for instrumentation
BOLT-WARNING: Failed to analyze 37 relocations
BOLT-INFO: 0 out of 887 functions in the binary (0.0%) have non-empty execution profile
not implemented
UNREACHABLE executed at /home/gaojun/diskWD/llvm-project/bolt/include/bolt/Core/MCPlusBuilder.h:2001!
 #0 0x00005556dc8e2edf llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/gaojun/diskWD/llvm-project/build/bin/llvm-bolt+0xbe4edf)
 #1 0x00005556dc8e0714 SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f4bec171420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
 #3 0x00007f4bebc3e00b raise /build/glibc-LcI20x/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #4 0x00007f4bebc1d859 abort /build/glibc-LcI20x/glibc-2.31/stdlib/abort.c:81:7
 #5 0x00005556dc87dace (/home/gaojun/diskWD/llvm-project/build/bin/llvm-bolt+0xb7face)
 #6 0x00005556dd0a9c62 (/home/gaojun/diskWD/llvm-project/build/bin/llvm-bolt+0x13abc62)
 #7 0x00005556dcfe3e4e llvm::bolt::Instrumentation::createAuxiliaryFunctions(llvm::bolt::BinaryContext&) (/home/gaojun/diskWD/llvm-project/build/bin/llvm-bolt+0x12e5e4e)
 #8 0x00005556dcfe4b62 llvm::bolt::Instrumentation::runOnFunctions(llvm::bolt::BinaryContext&) (/home/gaojun/diskWD/llvm-project/build/bin/llvm-bolt+0x12e6b62)
 #9 0x00005556dc9c7ec4 llvm::bolt::BinaryFunctionPassManager::runPasses() (/home/gaojun/diskWD/llvm-project/build/bin/llvm-bolt+0xcc9ec4)
#10 0x00005556dc9cb1fd llvm::bolt::BinaryFunctionPassManager::runAllPasses(llvm::bolt::BinaryContext&) (/home/gaojun/diskWD/llvm-project/build/bin/llvm-bolt+0xccd1fd)
#11 0x00005556dc96711d llvm::bolt::RewriteInstance::runOptimizationPasses() (/home/gaojun/diskWD/llvm-project/build/bin/llvm-bolt+0xc6911d)
#12 0x00005556dc9c4cb4 llvm::bolt::RewriteInstance::run() (/home/gaojun/diskWD/llvm-project/build/bin/llvm-bolt+0xcc6cb4)
#13 0x00005556dc01e69d main (/home/gaojun/diskWD/llvm-project/build/bin/llvm-bolt+0x32069d)
#14 0x00007f4bebc1f083 __libc_start_main /build/glibc-LcI20x/glibc-2.31/csu/../csu/libc-start.c:342:3
#15 0x00005556dc0b77de _start (/home/gaojun/diskWD/llvm-project/build/bin/llvm-bolt+0x3b97de)
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.  Program arguments: /home/gaojun/diskWD/llvm-project/build/bin/llvm-bolt program -instrument -o instrumented_program -instrumentation-file=without_pgo.fdata -instrumentation-sleep-time=2
Aborted (core dumped)
```

Are there issues with my compilation options?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzEWFtz4ygW_jX4hZILIVmXBz8oSXsmW5lMqi_bjy4ERzYdBCpAiTO_fgtkx5dkqnpnMztV3QkgOOf7zg1OmHNyowGWaHGFFjczNvqtsct_jfoXZtysNeJl-XULmJt-kIp5aXQY90wLfItHBwJLh7IGI9Kggljp-FORJ6N-1OZZJ0rqcZds9JhsOMeDNRvL-jnHyXeF6HWSQC99YkEZ7nDSaZNYMFaATVpl-KNLmBbJwKyXUXHiPPOS48QcRGFUEESao2DpMMNO9oOCV3WINPew84he4-ct6Ak3VuqpT1qjPO6MxVI7b8cetI8cw14_0f4zqsfzByzJUUiAeJyBWL-zJypKOqkAZTfP0m_N6NfDxsw7wTx7u9MpgCHxsg_76UQ8YOyMUuZZ6g0Ga43FPTjHNoDZMACzATEizZ3ZTINwbvpHmqvf774mt_er3wOrr8xuwGNm-VZ64H60EJb3Hr3cHSb4CawLxsoazPK2K7goedemLM1p2rKatpzVgqRlm9d1VvDFAt7I6aR1HjOlDMdMCAvOBR-SXUoIeYORW2A-MNXw_Gr2LTABFnvWKsDMv4ohOzoJodfYdJ0DH5bIqdzvzef72_tfgmgB7bjBUncGP0ulcAvYeSuHAQTurOljOLRSM_syx98c4GQcBPOQxIOJAx6c5LA3-BFgwNLPL9GDZq0K6GPAT7nUGwGX-_ZRLvUwegw74OPETUDwC4g3NjSWB7HJj7EfkrjXoeymN0_wbmy_Jb9iUoEI2Jlm6uUPwFl5gtJdaiTYjB6bDldVibtR77lLfWIljGhF5gTRBaI13rInwNroBPrBv-xZBQMM1sQUII02HsfEnVIGkebb_edPzfWvzdXdp_0JEMHDiK62pgdEVxtmfowa0ZWQ7vH7DaKrmJaDNT-Ae0RXIUERXUnN1SjguHBtbJj9dv2gRnc1SiXAzrcoayghKaIpIg1GNCOY7ELALBaLQvAKKIguVo6QTFnjXtw0eLBS-y-e8cevlnFAtDpusux5bZy3wHpEixCNUvtgE0Sr_4ZJABl-S334OHG5IrsWchAdovUednoBm5Rpjr_IjWbqV6aFAototUcxLbs5HwaUNST-n6TQvZSyy1vgaZnmlOD12oLzxsLa-j0DJVtEV7uqWBf5seJPHwa_tcDE3JkQCldkl-Y5JUek2amOlmdASIstkw7wCeeNki1P7vgtJbvXKZ1nKaIrF_EjuprPw-zFCRgcoqtRy9208BSh6DFMo-g5R1mzSFHWHPycn8NIRbWoMWtN5PhzMLyY7BBPRQ1V0FDuNSzOXVIKxuEjI6DsYtwd7FqcqhOE1bygH6guzVjLC3rUV57R6yCDHE4SJR6Mo9uLYhQXY12HZtxJJZl9WR0qylkeHWVcxQJzbbSP13rxscmUUlhAfmLL6oJb3hb057nZUf-u_3FGRXvqrfqMUc1L4Pm7jCZcB_QPzLnfmGYbsK_cwhq4iPUjIXNeA88nxKGgkQvEbdqJv4i4UeoV9P_fF5yLtBNHYuelui7KNH2f2Gd4ttJDiDGmORyDa_Cyl3-wA92_wxlFnaYnmOmFM3Levh8-f4b5bwiXgrcn4ZKdISQpFLXAPZP6A3VmlBT1iVUu75COVBler8MlsXaeWb_eA_ip-4S78XCnTcP4McqJl0uW0_Bzr_v8diFtWQrAk9aPZNzWpdgXxoe7T82XT9iNbS89Zji8ni0M4cb0Bm-9H-LTiK6CUum3Yzvnpt-LfKtWOjeGyF3h0G7tn2tTC2aZ2-KW8UcfnlbhVR0fWliM_TD1NGSO8cO-G2B2Eyvw1Kn9z7z_oeaONE14RoAI3uPGQmQLh2g76eHCVhstZQFPVsRBH-5fzpp2M0z3T7aaiWUm6qxmM1imZZZV6YKQfLZdQtm1VQXAizQry4p1vOuqrG3TlmRlS-lMLimheRraqjIt8nyeFsCrjlBWlQtKshLlBHom1TzYb27sZhYRLdO0zrJyplgLysU_NVAaGgpEKVrczOxysve4cSgnSjrvjhK89AqW33Rsgby56N39qSvw59sv18m_Dz6bjVYt_3ok7kE_Lel_AgAA__-tb3ek">