<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/64456>64456</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
llvm-exegesis doesn't build when using gcc >= 10, glibc >= 2.35 but kernel headers < 4.18
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Romain-Geissler-1A
</td>
</tr>
</table>
<pre>
Hi,
The usage of `SYS_rseq` in `llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp` might not be ok when compiling with gcc >= 10, glibc >= 2.35 but rather old kernel headers (< 4.18). It's not common, but it happened to me:
```
[2023-08-05T02:06:18.024Z] /workdir/src/llvm-17.0.0/llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp: In member function 'void llvm::exegesis::{anonymous}::SubProcessFunctionExecutorImpl::prepareAndRunBenchmark(int, const llvm::exegesis::BenchmarkKey&) const':
[2023-08-05T02:06:18.025Z] /workdir/src/llvm-17.0.0/llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp:361:17: error: 'SYS_rseq' was not declared in this scope
[2023-08-05T02:06:18.025Z] 361 | syscall(SYS_rseq, (intptr_t)__builtin_thread_pointer() + __rseq_offset,
[2023-08-05T02:06:18.025Z] | ^~~~~~~~
```
I guess the preprocessor directive guarding this shall be modified to read:
```
-#ifdef GLIBC_INITS_RSEQ
+#if defined(GLIBC_INITS_RSEQ) && defined(SYS_rseq)
```
Cheers,
Romain
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0VEtv6zYT_TXjzcACRVmvhRa2E9_P-IqiTbJpNwYljiU2EqmSVHKz6W8vKDn27SsICpQwBA8xz8NzRjinWk1UQbqD9G4lJt8ZWz2YQSi9_kLKuZ7sOt6uaiPfqv8p4Htgd8C2y_epI5ycaAnNGSFjjz89nqyjXyFjqHS46fuXAfjBG9M74IdgrukrteTUbKsa-GFHuukGYZ8fJq3JRs04hgyDajuP2nisCc0zvnaksTHDqHqlW3xVvsO2aRCSe0juMGbA99j2qr5e8ShJsZ48WuE7smh6ic9kNfXYkZBkHQIvINnjJooL4GWERw88d3PVxgyD0SFpSKE8dmIcSZNEb3AgSLbfYgEZu_wWM91xxpM1K9YsfWIcki3LINnGRcT45mdI7xD44dXYZ6ks8IOzzTs-cR6xiF2sfwVessWjxoGGmiyeJ914ZTQCz1-MkjinTbaQbK_JZgvyndBGvw1mcpDfLZePU_2DNQ05d7jkuf9KzeSNPQ5jv_iMlkZhaavlw6Sv_QAvlPYBvsZo5_-x7DXg__QGPANeLgHA8xvEH6GZ_udoJlkcioV-kKw1NvwBnl_5znN8FQtrJDW9sCSDAHynHLrGjPTpMRCTLEbI9_h-3JtrRN8DL27l9rigO3p78sDL06meVO-VPvnOkpCn0SjtyQZ28xKB7_A0h57M-ezI33T8mY7CCR1Bev_bcv6e8vP3iO1EzqHvCAMxFvIYi1JZarx6IWwnYWWQ8IJPJ_o-SHwwUp3VIq8wxMcCWwNP1FnSGb98d9ztT8fvj0-Pp4fH-x8v7nw3e6Cks9IkgRd_cZyhyYBn3zjdQC4_mHLfEVl3hXHZmCtZJbJMSrGiKs7KmLM0LfJVV5U5500hsrSsJadznuf1WQqRilRKGceblarCK7CCpSyJy00eZRnfsDxjLEk3RZ5x2DAahOqjQNvI2HalnJuoyjabNFv1oqbevW9xW83crqfWwYb1ynl3C_PK91T9gfwoDTkNPPcYWCSXRTu58EKf3K9_XqqXjbqabF913o-z1PkB-KFVvpvqqDHDTZJzN6M1v1DjgR_myYIk5-F-DwAA__-Pvf9_">