<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">