hschooks.c: Ensure correct header file is included
authorBen Gamari <bgamari.foss@gmail.com>
Tue, 29 Nov 2016 21:50:04 +0000 (16:50 -0500)
committerBen Gamari <ben@smart-cactus.org>
Tue, 29 Nov 2016 21:50:05 +0000 (16:50 -0500)
Consider the case of building a stage1 compiler. `hschooks.c` will be
built by stage0 `ghc` and linked against the `stage0` RTS. Despite this
it was #including the stage1 `Rts.h`. There is, of course, no guarantee
that this is ABI-compatible with the stage0 RTS and when they diverge
Bad Things happen (e.g. bells ringing at inappropriate times in D2699).

Test Plan: Validate

Reviewers: simonmar, austin

Subscribers: thomie

Differential Revision: https://phabricator.haskell.org/D2763

ghc/hschooks.c

index 3a42801..9b1be56 100644 (file)
@@ -5,11 +5,18 @@ in instead of the defaults.
 */
 
 #include "../rts/PosixSource.h"
-#include "../includes/Rts.h"
+
+/*
+ * This should be linked against Rts.h from the compiler which is compiling us.
+ * For instance, if we are compiling this file to produce the stage1 compiler,
+ * we should use Rts.h from stage0.
+ */
+#include "Rts.h"
 
 #include "HsFFI.h"
 
 #include <string.h>
+#include <stdbool.h>
 
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>