<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/100098>100098</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[sanitizer] __NR_newfstatat not defined in linux kernel headers in aarch64
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
trcrsired
</td>
</tr>
</table>
<pre>
```
/home/cqwrteur/toolchains_build/gcc/libsanitizer/sanitizer_common/sanitizer_syscall_linux_aarch64.inc:13:23: error: '__NR_newfstatat' was not declared in this scope
13 | #define SYSCALL(name) __NR_ ## name
| ^~~~~
/home/cqwrteur/toolchains_build/gcc/libsanitizer/sanitizer_common/sanitizer_syscall_linux_aarch64.inc:80:24: note: in definition of macro '__internal_syscall4'
80 | (__internal_syscall)(n, (u64)(a1), (long)(a2), (long)(a3), (long)(a4))
| ^
/home/cqwrteur/toolchains_build/gcc/libsanitizer/sanitizer_common/sanitizer_syscall_linux_aarch64.inc:127:31: note: in expansion of macro '__SYSCALL_DISP'
127 | #define internal_syscall(...) __SYSCALL_DISP(__internal_syscall, __VA_ARGS__)
| ^~~~~~~~~~~~~~
/home/cqwrteur/toolchains_build/gcc/libsanitizer/sanitizer_common/sanitizer_linux.cpp:420:10: note: in expansion of macro 'internal_syscall'
420 | return internal_syscall(SYSCALL(newfstatat), AT_FDCWD, (uptr)path, (uptr)buf,
| ^~~~~~~~~~~~~~~~
/home/cqwrteur/toolchains_build/gcc/libsanitizer/sanitizer_common/sanitizer_linux.cpp:420:27: note: in expansion of macro 'SYSCALL'
420 | return internal_syscall(SYSCALL(newfstatat), AT_FDCWD, (uptr)path, (uptr)buf,
| ^~~~~~~
```
https://github.com/llvm/llvm-project/blob/d89f3e8df3160b3afc07bc742c81aa4738ea9646/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp#L389
I propose to add checks for defined(__NR_newfstatat)
```
# elif (defined(_LP64) || SANITIZER_X32 || \
(defined(__mips__) && _MIPS_SIM == _ABIN32)) && \
!SANITIZER_SPARC && defined(__NR_newfstatat)
return internal_syscall(SYSCALL(newfstatat), AT_FDCWD, (uptr)path, (uptr)buf,
AT_SYMLINK_NOFOLLOW);
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMll2PozYUhn-Nc2NtBMeEjwsu2GRTRc18aDLqdntjGWMGd4lNbbOz24v57ZWBZJLJqLu9aKcowuhg3nAeXp9jZq18UELkaPEeLVYz1rtGm9wZbqw0opqVuvqWoziYfsEKBQWCdaP3AsGa__FonOgNgrXTuuUNk8rSspdthWD9wDmCdStLy5R08k_h5x2vKdf7vVZnIfvNcta2tJWq_0oZM7yJo7lUHJEiJIgU4E9YGKONv0CQUHp9R5V4rK1jjjkECX5kFivtcCV4y4yosFTYNdJiy3UnxhwwxiHBKFliBKQStVQC7z7tlsV2iyBVzKeX4UHcz0BA8BA8PIzx-PDiw9PT09NbckkDzyXyOJR2wo9S4SEl6aRWWNd4z7jRIy2pnDCKtQfNCEFyzCoNJiTp5UQEmSeDYLjfx9EYYOEwDsFWq4cpCq9GyavRUSmb3mLC-qZWgwSRgoQvmIqvHVP2EunkG7ra7G5PaIaQvDDYJdJ0Pp-PRjsXeZX_ElP6S0GLu592lF4Aezo9_m16A7U57zpEigi8A8Pgh2hdZnXkFcHoPoyNcL1Rr-E6WaInS37wVHFP16vlx9XBoJ0zCLKOueY8UvY1guXfsHsLeoPhvk_vmP7_B9rE6rxDNM51FhGP0AOSrunLOdd7z6n9chjedUb_LrhDsC5bXSJYV2lWE5FWNQnjoCSs5kFS8iQCnoaMRQlJBcviKPbfRO872QrzzriR_o9DB7Il6bR6xvMGd0Z32grsNGZVhXkj-GeLa23GSiqqYU2-aDVnGhdNkvgmIVpZe44nKtvboXZ6jJ7krrje3G9--3BHfyVwCJ4daHEkfyZE97KzQyXACGIEMaZXm9sd3W2uMCIrRFaYFu8312QsxsdZp3rh89_vbou75WHO97P-Lx1X3NPdp6vt5vpnen2zvtlubz56OfL-BfpZlZMqIxmbiTxMIExICGEwa_JFXWcLIAuREFIFJRCSxUEcQppWaV1FMJM5BBAFCZAwiIIwmPMyqyshYhC85CFboCgQeybbuXfuXJuHmbS2F3kYBEGWzlpWitYO2ygAJR7xcBcB-F2VyQe7l_2DRVHQSuvss4yTrh32X8_lY7HCL6hP-5nhm_jyMJgZfxZGiRY3glXCWB-f-tisN23-jxfh8MoWwXrK6UsOfwUAAP__KHYmHw">