Some quite old GCC (7.5 in U18.04) don't have c23 function attributes. While this is a bit old distro but the feature is quite new according to C standard so use GCC attribute for now (we will almost certainly compile with clang/GCC in Linux).