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

    <tr>
        <th>Summary</th>
        <td>
            Cannot compile libc for rv32imc_zaamo_zalrsc
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            libc
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          christian-herber-nxp
      </td>
    </tr>
</table>

<pre>
    When compiling libc with this configuration:

TARGET_TRIPLE=riscv32-unknown-elf
C_FLAGS="--target=${TARGET_TRIPLE} -march=rv32im_zaamo_zalrsc --sysroot=${RISCV_GNU_TOOLCHAIN}/${TARGET_TRIPLE} --gcc-toolchain=${RISCV_GNU_TOOLCHAIN}"
cmake ../runtimes \
   -G Ninja \
   -DCMAKE_INSTALL_PREFIX=$(pwd)/install \
 -DCMAKE_C_COMPILER=$C_COMPILER \
   "-DCMAKE_C_FLAGS=${C_FLAGS}" \
 "-DCMAKE_CXX_FLAGS=${C_FLAGS}" \
   -DCMAKE_CXX_COMPILER=$CXX_COMPILER \
   -DLLVM_ENABLE_RUNTIMES=libc \
   -DLLVM_LIBC_FULL_BUILD=ON \
 -DLIBC_TARGET_TRIPLE=$TARGET_TRIPLE \
   -DCMAKE_BUILD_TYPE=Release
ninja libc libm
```
The compilation fails with this message:

```
/home/nxa23603/llvm-project/libc/src/__support/CPP/atomic.h:119:5: error: large atomic operation may incur significant performance penalty; the access size (4 bytes) exceeds the max lock-free size (0  bytes) [-Werror,-Watomic-alignment]
  119 | __scoped_atomic_store(addressof(val), addressof(rhs), order(mem_ord),
 |     ^

```

This should really work, as the zaamo and zalrsc extensions provide the necessary atomics support. I suspect that only one of these is in fact needed.

</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyMVV1v4jgU_TXm5SoocQgfDzykAbpoU1oxdGb2KXKcC_HUsSPbacv8-pUTOjAzu9pFEYpvzv2w7znXzFpxUohLktyRZDVinau1WfLaCOsEU0GNpkQTqPd2VOrqvPxSowKum1ZIoU4gRcnhTbgaXC0scK2O4tQZ5oRWJE5J6J9Dur9fH4rDfvuUr0m8MsLy15gGnXpR-k0FKI8kTLNik6f3n0i8IpQGgWPmhK5fTcjs7ucYsxUEDTO89tFeYyqa4jtjjS6-M2kshyCwZ2u0vvrvt5-yz8X97rk4PD7m2R_pdkdmK0I3_xY-OHEeOK0lr5lQ_xmHkjDlDXtBGI8J3ZhOOdGgBZJkJEwBILiHnVDf2I1llT2kf66L7e7TIc3z4mm_3my_XjLReftWEbogdCOUdUzKD8cPt6zIHh-etvl6P7hc19cU_iR_wK_H6zfyse6L__C4xX_9-n88rtvwDr9UdGO5xef554divUvv8nWxf94dtg9rn6Xn0q-wfOvzPud5cfe8zVckXj3urifRf_2VXoROfjL9Xmofqjj89eThe5TILJIwVX1_-jKkKBtP3ml4ecL0UOOF-D274ciEtDfcb9BadsIfrL_1JXRT6wYJ3ah3RuNpGBO6kfK1CVqjvyF3filKTujGGv9fFLZrW238h-zpidANc7oRfFyTOI2iBYnThMQpoDHa-Bfp5QIDCHSLgwShYWcQincGvM7FUXCmHLRojto0THGEFhWT7kziO3A1AuMcrQUrviMQOp9AeXZoCV0AvnPEyvaohr2D1PwlOBrEH-AQrmiS3AVfhupoFnwZCguYFCfVoHIkWfUtiaIFkFkGRWG5brEqBmBhnTZI6JxVlUFr9ZHQ-SuTvSAyuLWa2l6s2lRoCJ032BTaDOIZWD3LwP9Isv6H1vjOCgu21p2swCCT8gxv2rz0mYb99sMFmKrgMmDw3aGyQisLrdGvosIep9CfHjPnSycsXNo4hi3YzrbIHbiaOdBKnkErBH30nhZBWBCeVdyBQqywGpMwHVXLuFrECzbCZTSLF3Q6jyfTUb2MKs5mSVLNeZgkNEzKqOTzGaXlLOaTOQ1HYklDmoQ0iqIwTCbT8XFxnCcLFnIWLaIwmpNJiA0Tcux5ONbmNBLWdriM6HQWTkeSlShtfy9QOnCT-hvCLHvelt3JkkkohXX2GsEJJ3GZMaW0u4gFB0EdtYFhUvOfRvWoM3JZO9daLxw_jjcn4equHHPdXETyu1b6Si2hm0uxr0v6dwAAAP__7rUSag">