[commit: ghc] ghc-8.0: Fix +RTS -h when compiling without -prof (d699446)

git at git.haskell.org git at git.haskell.org
Sat Jan 9 16:50:45 UTC 2016


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

On branch  : ghc-8.0
Link       : http://ghc.haskell.org/trac/ghc/changeset/d699446a50f92005a8b6515633a3c8937962e225/ghc

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

commit d699446a50f92005a8b6515633a3c8937962e225
Author: Simon Marlow <smarlow at fb.com>
Date:   Thu Jan 7 06:23:14 2016 -0800

    Fix +RTS -h when compiling without -prof
    
    Summary:
    Was broken by ce1f1607ed7f8fedd2f63c8610cafefd59baaf32.  I've added a
    test so that hopefully it won't break again.
    
    Test Plan: validate & new test case
    
    Reviewers: bgamari, austin, erikd
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D1746
    
    GHC Trac Issues: #11304
    
    (cherry picked from commit c33e7c2b1a62f340432c752fb37ca1374e3e982a)


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

d699446a50f92005a8b6515633a3c8937962e225
 rts/ProfHeap.c                                                |  6 +-----
 testsuite/config/ghc                                          |  5 +++--
 testsuite/tests/profiling/should_run/all.T                    | 11 +++++++++--
 .../should_run/{heapprof001.stdout => heapprof002.stdout}     |  0
 4 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/rts/ProfHeap.c b/rts/ProfHeap.c
index 43bd7b4..e7f6417 100644
--- a/rts/ProfHeap.c
+++ b/rts/ProfHeap.c
@@ -311,15 +311,11 @@ nextEra( void )
 FILE *hp_file;
 static char *hp_filename;
 
-void initProfiling (void)
-{
-}
-
 void freeProfiling (void)
 {
 }
 
-void initProfiling2 (void)
+void initProfiling (void)
 {
     char *prog;
 
diff --git a/testsuite/config/ghc b/testsuite/config/ghc
index dc00adb..77dfa98 100644
--- a/testsuite/config/ghc
+++ b/testsuite/config/ghc
@@ -23,7 +23,7 @@ config.compile_ways       = ['normal', 'hpc']
 config.run_ways           = ['normal', 'hpc']
 
 # ways that are not enabled by default, but can always be invoked explicitly
-config.other_ways         = ['prof',
+config.other_ways         = ['prof', 'prof_h',
                              'prof_hc_hb','prof_hb',
                              'prof_hd','prof_hy','prof_hr',
                              'threaded1_ls', 'threaded2_hT',
@@ -99,6 +99,7 @@ config.way_flags = lambda name : {
     'threaded2'    : ['-O', '-threaded', '-eventlog'],
     'threaded2_hT' : ['-O', '-threaded'],
     'hpc'          : ['-O', '-fhpc', '-hpcdir', '.hpc.' + name ],
+    'prof_h'       : [],
     'prof_hc_hb'   : ['-O', '-prof', '-static', '-auto-all'],
     'prof_hb'      : ['-O', '-prof', '-static', '-auto-all'],
     'prof_hd'      : ['-O', '-prof', '-static', '-auto-all'],
@@ -130,6 +131,7 @@ config.way_rts_flags = {
     'threaded2'    : ['-N2 -ls'],
     'threaded2_hT' : ['-N2', '-hT'],
     'hpc'          : [],
+    'prof_h'       : ['-h'], # works without -prof
     'prof_hc_hb'   : ['-hc -hbvoid'],
     'prof_hb'      : ['-hb'],
     'prof_hd'      : ['-hd'],
@@ -216,4 +218,3 @@ def get_compiler_info():
         config.ghci_way_flags   = "-static"
         config.ghc_th_way       = "normal"
         config.ghc_plugin_way   = "normal"
-
diff --git a/testsuite/tests/profiling/should_run/all.T b/testsuite/tests/profiling/should_run/all.T
index 4e4bd09..840b251 100644
--- a/testsuite/tests/profiling/should_run/all.T
+++ b/testsuite/tests/profiling/should_run/all.T
@@ -4,11 +4,18 @@ extra_prof_ways = ['prof', 'prof_hc_hb', 'prof_hb', 'prof_hd', 'prof_hy', 'prof_
 
 test('heapprof001',
      [only_ways(prof_ways),
-      extra_ways(extra_prof_ways),
-      req_profiling,
+      when(have_profiling(), extra_ways(extra_prof_ways)),
       extra_run_opts('7')],
      compile_and_run, [''])
 
+test('heapprof002',
+     [ pre_cmd('cp heapprof001.hs heapprof002.hs')
+     , extra_clean(['heapprof002.hs'])
+     , extra_ways(['prof_h'])
+     , extra_run_opts('7')
+     ],
+     compile_and_run, [''])
+
 test('T2592',
      [only_ways(['profasm']), req_profiling,
       extra_run_opts('+RTS -M1m -RTS'), exit_code(251)],
diff --git a/testsuite/tests/profiling/should_run/heapprof001.stdout b/testsuite/tests/profiling/should_run/heapprof002.stdout
similarity index 100%
copy from testsuite/tests/profiling/should_run/heapprof001.stdout
copy to testsuite/tests/profiling/should_run/heapprof002.stdout



More information about the ghc-commits mailing list