RTS header files can't be used with a C++ compiler
If you compile m1.cpp:
#include "Rts.h"
int main(int argc, char** argv) {
}
with:
g++ -g m1.cpp -std=c++11 -I includes/ -c
you get:
In file included from includes/Rts.h:29:0,
from m1.cpp:1:
includes/Stg.h:29:3: error: #error __STDC_VERSION__ does not advertise C99 or later
# error __STDC_VERSION__ does not advertise C99 or later
^
It's not advertised anywhere that it should work, but it used to work. https://phabricator.haskell.org/D2045 is what introduced this check.
Judging by https://stackoverflow.com/questions/48045243/ghc-gcc-compiler-issue-stdc-version-w-c99-from-stg-h-fails-for-every-packa, it affects GHC 8.2 and later.
Trac metadata
| Trac field | Value |
|---|---|
| Version | |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Runtime System |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | hvr, simonmar |
| Operating system | |
| Architecture |