
#8676: RTS headers don't compile as C++ ----------------------------------+---------------------------------------- Reporter: blitzcode | Owner: simonmar Type: bug | Status: new Priority: normal | Milestone: 7.8.1 Component: Runtime System | Version: 7.6.3 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: Building GHC failed Unknown/Multiple | Test Case: Difficulty: Unknown | Blocking: Blocked By: | Related Tickets: | ----------------------------------+---------------------------------------- GHC's RTS headers can't be included from C++, as they contain constructs like this {{{ dbl_link_replace(bdescr *new, bdescr *old, bdescr **list) }}} (notice the 'new'). This is the case for the headers shipped with 7.6.3 and still seems to be in the HEAD version. Since the code has the usual {{{ #ifdef __cplusplus extern "C" { #endif }}} all over the place, I assume the C++ incompatibility is simply an oversight? In any case, it would seem highly unusual to have a C interface that can't be consumed from C++. It seems all the incompatibilities could be removed with at worst a small amount of inconvenience, and automatic checking for C++ compatibility on each build could be added. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8676 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler