diff options
author | Teo Camarasu <teofilcamarasu@gmail.com> | 2022-05-18 20:08:40 +0100 |
---|---|---|
committer | Zubin Duggal <zubin.duggal@gmail.com> | 2022-07-14 14:39:38 +0530 |
commit | 2d31de9675bb54946135744022b3bbd1dacad147 (patch) | |
tree | 12035e6d3a3bda8e3cb29cb1ecebe80f525db9dc | |
parent | 45177166ea0a88b11dcdc4ec76849a7b9a00ec12 (diff) | |
download | haskell-2d31de9675bb54946135744022b3bbd1dacad147.tar.gz |
Allow passing -po outside profiling way
Resolves #21455
(cherry picked from commit 3e1e5ee3307fe7ea47e70a07a385b56536413f64)
(cherry picked from commit babfd40ded288d4758ca9ac505385b1ac6cb1187)
-rw-r--r-- | rts/RtsFlags.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/rts/RtsFlags.c b/rts/RtsFlags.c index 51a40010b1..4e62861bb8 100644 --- a/rts/RtsFlags.c +++ b/rts/RtsFlags.c @@ -397,6 +397,7 @@ usage_text[] = { #else /* PROFILING */ " -h Heap residency profile (output file <program>.hp)", " -hT Produce a heap profile grouped by closure type", +" -po<file> Override profiling output file name prefix (program name by default)", #endif /* PROFILING */ " -i<sec> Time between heap profile samples (seconds, default: 0.1)", @@ -1371,6 +1372,21 @@ error = true; case 'P': /* detailed cost centre profiling (time/alloc) */ case 'p': /* cost centre profiling (time/alloc) */ OPTION_SAFE; +#if !defined(PROFILING) + switch (rts_argv[arg][2]) { + case 'o': + if (rts_argv[arg][3] == '\0') { + errorBelch("flag -po expects an argument"); + error = true; + break; + } + RtsFlags.CcFlags.outputFileNameStem = rts_argv[arg]+3; + break; + default: + PROFILING_BUILD_ONLY(); + + } break; +#else PROFILING_BUILD_ONLY( switch (rts_argv[arg][2]) { case 'a': @@ -1405,6 +1421,7 @@ error = true; goto check_rest; } ) break; +#endif /* PROFILING */ case 'R': OPTION_SAFE; |