[commit: ghc] master: Windows: load eh_frame as rodata, fixes #8237 (7e32b2a)

git at git.haskell.org git at git.haskell.org
Fri Sep 6 08:41:38 CEST 2013


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/7e32b2a931714d886db4d4aa07f8fb5c606930b9/ghc

>---------------------------------------------------------------

commit 7e32b2a931714d886db4d4aa07f8fb5c606930b9
Author: Edward Z. Yang <ezyang at mit.edu>
Date:   Thu Sep 5 23:34:58 2013 -0700

    Windows: load eh_frame as rodata, fixes #8237
    
    Signed-off-by: Edward Z. Yang <ezyang at mit.edu>


>---------------------------------------------------------------

7e32b2a931714d886db4d4aa07f8fb5c606930b9
 rts/Linker.c |    6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/rts/Linker.c b/rts/Linker.c
index ab5a557..9dc0598 100644
--- a/rts/Linker.c
+++ b/rts/Linker.c
@@ -3798,6 +3798,11 @@ ocGetNames_PEi386 ( ObjectCode* oc )
       /* I'm sure this is the Right Way to do it.  However, the
          alternative of testing the sectab_i->Name field seems to
          work ok with Cygwin.
+
+         EZY: We should strongly consider using this style, because
+         it lets us pick up sections that should be added (e.g.
+         for a while the linker did not work due to missing .eh_frame
+         in this section.)
       */
       if (sectab_i->Characteristics & MYIMAGE_SCN_CNT_CODE ||
           sectab_i->Characteristics & MYIMAGE_SCN_CNT_INITIALIZED_DATA)
@@ -3807,6 +3812,7 @@ ocGetNames_PEi386 ( ObjectCode* oc )
       if (0==strcmp(".text",(char*)secname) ||
           0==strcmp(".text.startup",(char*)secname) ||
           0==strcmp(".rdata",(char*)secname)||
+          0==strcmp(".eh_frame", (char*)secname)||
           0==strcmp(".rodata",(char*)secname))
          kind = SECTIONKIND_CODE_OR_RODATA;
       if (0==strcmp(".data",(char*)secname) ||





More information about the ghc-commits mailing list