conflicting Block.h on Snow Leopard
Using GHC to compile C programs that includes <!CoreServices/CoreServices.h> will result in the following error:
In file included from /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/FSEvents.h:28,
from /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h:218,
from /System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/Headers/AE.h:20,
from /System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:21,
from test.c:1:0:
/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.4/include/Block.h:51:0:
error: expected specifier-qualifier-list before ‘StgPtr’
...
This is because somewhere down !CoreServices.h it includes Block.h, and expects it to be /usr/include/Block.h, which is a new file introduced since Snow Leopard (OS X 10.6). This is in direct conflict to the Block.h under GHC's include directory, which is somehow searched prior to the system directory.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 6.10.4 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler (FFI) |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |