diff options
author | eldritch horrors <pennae@lix.systems> | 2024-09-01 01:37:10 +0200 |
---|---|---|
committer | eldritch horrors <pennae@lix.systems> | 2024-09-09 01:48:20 +0000 |
commit | c14486ae8d3bbc862c625d948a6b2f4dc0927d5b (patch) | |
tree | c2b2d1256d6e8cdb292537f3f339fec5907fb86f /meson.build | |
parent | e9505dcc5a0ff259b9e284e9e617486e81a1ff6f (diff) |
forbid gcc for compilation, only allow clang
while gcc 12 and older miscompile our generators, gcc 13 and older
outright crash on kj coroutines. (newer gcc versions may fix this)
Change-Id: I19f12c8c147239680eb0fa5a84ef5c7de38c9263
Diffstat (limited to 'meson.build')
-rw-r--r-- | meson.build | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/meson.build b/meson.build index b015cc606..f89f5a016 100644 --- a/meson.build +++ b/meson.build @@ -167,10 +167,18 @@ endif # frees one would expect when the objects are unique_ptrs. these problems # often show up as memory corruption when nesting generators (since we do # treat generators like owned memory) and will cause inexplicable crashs. +# +# gcc 13 does not compile capnp coroutine code correctly. a newer version +# may fix this. (cf. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102051) +# we allow gcc 13 here anyway because CI uses it for clang-tidy, and when +# the compiler crashes outright if won't produce any bad binaries either. assert( cxx.get_id() != 'gcc' or cxx.version().version_compare('>=13'), - 'GCC 12 and earlier are known to miscompile lix coroutines, use GCC 13 or clang.' + 'GCC is known to miscompile coroutines, use clang.' ) +if cxx.get_id() == 'gcc' + warning('GCC is known to crash while building coroutines, use clang.') +endif # Translate some historical and Mesony CPU names to Lixy CPU names. |