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