Commit 026fa45f authored by panne's avatar panne
Browse files

[project @ 2002-07-21 11:46:34 by panne]

Long explanation for small commit:

With the recent reorganization of #includes, things get a little bit
fragile: When gcc with -O is used, glibc's <stdio.h> defines a few
inline functions (see <bits/stdio.h>), and "Stg.h" defines some global
variables which reside in registers. But the latter must happen
*before* any function definition has been seen, otherwise the
generated code could be invalid. Consequently gcc complains like:

   In file included from Stg.h:182,
                    from mkNativeHdr.c:12:
   Regs.h:293: global register variable follows a function definition
   Regs.h:302: global register variable follows a function definition

The solution is quite simple: Always #include "Stg.h" *before* any
system headers.
parent 536497ad
/* -------------------------------------------------------------------------- /* --------------------------------------------------------------------------
* $Id: mkNativeHdr.c,v 1.9 2002/07/17 09:21:49 simonmar Exp $ * $Id: mkNativeHdr.c,v 1.10 2002/07/21 11:46:34 panne Exp $
* *
* (c) The GHC Team, 1992-1998 * (c) The GHC Team, 1992-1998
* *
...@@ -7,10 +7,10 @@ ...@@ -7,10 +7,10 @@
* *
* ------------------------------------------------------------------------*/ * ------------------------------------------------------------------------*/
#include <stdio.h>
#include "Stg.h" #include "Stg.h"
#include <stdio.h>
#define OFFSET(table, x) ((StgUnion *) &(x) - (StgUnion *) (&table)) #define OFFSET(table, x) ((StgUnion *) &(x) - (StgUnion *) (&table))
#define OFFSET_R1 OFFSET(RegTable, RegTable.rR1) #define OFFSET_R1 OFFSET(RegTable, RegTable.rR1)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment