[commit: ghc] master: Linker: ARM: Ensure that cache flush covers all symbol extras (0490fed)

git at git.haskell.org git at git.haskell.org
Sun Jan 3 15:55:56 UTC 2016


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

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/0490fede24b4fc5d5d1b23e9a47899e50b14988c/ghc

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

commit 0490fede24b4fc5d5d1b23e9a47899e50b14988c
Author: Ben Gamari <ben at smart-cactus.org>
Date:   Sun Jan 3 13:25:37 2016 +0100

    Linker: ARM: Ensure that cache flush covers all symbol extras
    
    Previously part of the last symbol extra wasn't covered.
    
    Differential Revision: https://phabricator.haskell.org/D1728


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

0490fede24b4fc5d5d1b23e9a47899e50b14988c
 rts/Linker.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/rts/Linker.c b/rts/Linker.c
index cb90c97..82e00e1 100644
--- a/rts/Linker.c
+++ b/rts/Linker.c
@@ -2758,7 +2758,9 @@ ocFlushInstructionCache( ObjectCode *oc )
     }
 
     // Jump islands
-    __clear_cache(oc->symbol_extras, &oc->symbol_extras[oc->n_symbol_extras]);
+    // Note the (+1) to ensure that the last symbol extra is covered by the
+    // flush.
+    __clear_cache(oc->symbol_extras, &oc->symbol_extras[oc->n_symbol_extras+1]);
 }
 
 #endif



More information about the ghc-commits mailing list