<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/88488>88488</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[sanitizer] sanitizer_linux.cpp is broken on musl-1.2.4 with: error: member access into incomplete type 'struct stat64'
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
stefson
</td>
</tr>
</table>
<pre>
hello everyone,
musl-1.2.4 removed lfs64, anything depending on it is now broken:
```
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:287:19: error: member access into incomplete type 'struct stat64'
287 | out->st_dev = in->st_dev;
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:285:35: note: forward declaration of '__sanitizer::stat64'
285 | static void stat64_to_stat(struct stat64 *in, struct stat *out) {
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:288:19: error: member access into incomplete type 'struct stat64'
288 | out->st_ino = in->st_ino;
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:285:35: note: forward declaration of '__sanitizer::stat64'
285 | static void stat64_to_stat(struct stat64 *in, struct stat *out) {
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:289:20: error: member access into incomplete type 'struct stat64'
289 | out->st_mode = in->st_mode;
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:285:35: note: forward declaration of '__sanitizer::stat64'
285 | static void stat64_to_stat(struct stat64 *in, struct stat *out) {
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:290:21: error: member access into incomplete type 'struct stat64'
290 | out->st_nlink = in->st_nlink;
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:285:35: note: forward declaration of '__sanitizer::stat64'
285 | static void stat64_to_stat(struct stat64 *in, struct stat *out) {
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:291:19: error: member access into incomplete type 'struct stat64'
291 | out->st_uid = in->st_uid;
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:285:35: note: forward declaration of '__sanitizer::stat64'
285 | static void stat64_to_stat(struct stat64 *in, struct stat *out) {
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:292:19: error: member access into incomplete type 'struct stat64'
292 | out->st_gid = in->st_gid;
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:285:35: note: forward declaration of '__sanitizer::stat64'
285 | static void stat64_to_stat(struct stat64 *in, struct stat *out) {
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:293:20: error: member access into incomplete type 'struct stat64'
293 | out->st_rdev = in->st_rdev;
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:285:35: note: forward declaration of '__sanitizer::stat64'
285 | static void stat64_to_stat(struct stat64 *in, struct stat *out) {
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:294:20: error: member access into incomplete type 'struct stat64'
294 | out->st_size = in->st_size;
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:285:35: note: forward declaration of '__sanitizer::stat64'
285 | static void stat64_to_stat(struct stat64 *in, struct stat *out) {
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:295:23: error: member access into incomplete type 'struct stat64'
295 | out->st_blksize = in->st_blksize;
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:285:35: note: forward declaration of '__sanitizer::stat64'
285 | static void stat64_to_stat(struct stat64 *in, struct stat *out) {
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:296:22: error: member access into incomplete type 'struct stat64'
296 | out->st_blocks = in->st_blocks;
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:285:35: note: forward declaration of '__sanitizer::stat64'
285 | static void stat64_to_stat(struct stat64 *in, struct stat *out) {
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:297:21: error: member access into incomplete type 'struct stat64'
297 | out->st_atime = in->st_atime;
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:285:35: note: forward declaration of '__sanitizer::stat64'
285 | static void stat64_to_stat(struct stat64 *in, struct stat *out) {
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:298:21: error: member access into incomplete type 'struct stat64'
298 | out->st_mtime = in->st_mtime;
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:285:35: note: forward declaration of '__sanitizer::stat64'
285 | static void stat64_to_stat(struct stat64 *in, struct stat *out) {
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:299:21: error: member access into incomplete type 'struct stat64'
299 | out->st_ctime = in->st_ctime;
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:285:35: note: forward declaration of '__sanitizer::stat64'
285 | static void stat64_to_stat(struct stat64 *in, struct stat *out) {
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:391:17: error: variable has incomplete type 'struct stat64'
391 | struct stat64 buf64;
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:285:35: note: forward declaration of '__sanitizer::stat64'
285 | static void stat64_to_stat(struct stat64 *in, struct stat *out) {
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:423:17: error: variable has incomplete type 'struct stat64'
423 | struct stat64 buf64;
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:285:35: note: forward declaration of '__sanitizer::stat64'
285 | static void stat64_to_stat(struct stat64 *in, struct stat *out) {
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:455:17: error: variable has incomplete type 'struct stat64'
455 | struct stat64 buf64;
| ^
/var/tmp/portage/sys-libs/compiler-rt-sanitizers-17.0.6/work/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:285:35: note: forward declaration of '__sanitizer::stat64'
285 | static void stat64_to_stat(struct stat64 *in, struct stat *out) {
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzs2lGvojgUAOBfU14aTTktAg88OHPHv2EKHLVraU1bdJ1fv6nXO_eC87IJ2ewEjAFygGoPX7Q9qfReHQ1iRbJvJHtLZB9O1lU-4MFbk9S2vVcn1NpSvKK7W4MEvlPC3gjbvm-73utVuoa1oA47e8WW6oPfiHidNPdwUuZIW7ygaeORNVQFqjw19kZrZ89oCN8OWiQb9nx_DcLuKh2BXeguBHYX64I8IoGdv_uVVrUnsGtsd1Ea3cqFlZdGBfUTnV-l-ZqtNwR2N-vOw8sI7LSqYysfl-8b23XWDEJamf7vdXO5EL6FIid8m5bxS6Nz1sWDDrsaHZVNg95TZYKlysSP0RiQhvsFKYHcB9c3gfogQ0xP_t4xSqHIKcm_U9uHFeE_fNi3eKWEv1FlPgOEf_u4Ib7iDST78X9LTkb4lscNNTZg3B-su0nX0hYbLZ0MyhpqDzEf-_2vVgjfEr79TWayR0fjCdXQq1XtM337YPfxiEAxSCslsFUm2vsSjkHbBwIlJfmfkMViemLFiJgydkhMGbsQmw-xqAvYpMTKEbHOtjg0FiMLstkgK6MvSKdEVrIRMqOVOQ-VPUILs_kwSyf_uyzTEbNetUNkvWoXYvMhBtMTgxGx45jYcSE2J2J88hFZyUfE3MvE0i0zy1khE9MjEyNkXv0cDftjZEE2H2QxgcAnRZaNkNX6_OrsGVyozYfaJm5hUmqbF2q2OfuxtBhboM0HWj59KWNc9ZdBdaNftEdoYTYfZsX0zMaV_-6VWbcwmxezcnpm4-p_88qsWZjNiRl_L8zmA2ZX6ZSsNdKT9P8GGH-WZCkd5qnuDxuxmJqLKfGYV05kSgBfTC2mRJZNaCrLFlP_kalfC8WStuJtyUuZYJXmKZQpZ4Ilp2oDDU9b3jSHFkoEiWwjW1ZiLooSUhSJqoCBYCIFVqZMsHUKeSnSGpCJuuCME8Gwk0qvtb52a-uOifK-x6ooRFEkWtao_WPxHIDBG32cJAAke0tcFe9Z1f3RE8G08sF_thJU0I9Vd5_5y97obx4JVf65To5aQ7-strupcJpgBEeT3unqFMLFxycIOwK7owqnvl43tot-9PVjt7o4-xc2UdWjo9HkIxH_BAAA__8WI97N">