Skip to content

RTS: GCC warning with "clear_cache" builtin

Summary

GCC issues many warnings when it compiles/links rts/stm/Storage.c. E.g.


rts/sm/Storage.c:1377:13: error:
     warning: mismatch in argument 1 type of built-in function ‘__clear_cache’; expected ‘void *’ [-Wbuiltin-declaration-mismatch]
     1377 | extern void __clear_cache(char * begin, char * end);
          |             ^~~~~~~~~~~~~
     |
1377 | extern void __clear_cache(char * begin, char * end);
     |             ^

libgcc has changed the prototype of __clear_cache from char * to void * (see this commit). But we don't even use this function since GCC 4.4.

Steps to reproduce

LANG=C ./hadrian/build.stack.sh -c -j binary-dist --docs=none --flavour=quick

Environment

  • GHC: master
  • GCC: 9.1
  • OS: Linux x86_64
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information