diff options
author | Alp Mestanogullari <alp@well-typed.com> | 2018-11-22 11:47:48 -0500 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2018-11-22 13:14:01 -0500 |
commit | 561748cb507505bd5b7bd76bdc57796d896b62a2 (patch) | |
tree | 8e68f471e46a95cf0860faf177107ea2a017433e /rts | |
parent | 19ffddc1f479fcd5a0f265330cc1041366e8c43d (diff) | |
download | haskell-561748cb507505bd5b7bd76bdc57796d896b62a2.tar.gz |
rts.cabal.in: force inclusion of findPtr/_findPtr symbol only with debug flag
The previous strategy caused problems on Windows, as pointed out
at [1]
[1]: https://phabricator.haskell.org/rGHC900c47f88784#133905
Reviewers: Phyx, bgamari, erikd, simonmar
Reviewed By: Phyx
Subscribers: rwbarton, carter
GHC Trac Issues: #15671
Differential Revision: https://phabricator.haskell.org/D5356
Diffstat (limited to 'rts')
-rw-r--r-- | rts/Printer.c | 11 | ||||
-rw-r--r-- | rts/package.conf.in | 4 | ||||
-rw-r--r-- | rts/rts.cabal.in | 16 |
3 files changed, 18 insertions, 13 deletions
diff --git a/rts/Printer.c b/rts/Printer.c index 7f7e83cb8b..291f529e8f 100644 --- a/rts/Printer.c +++ b/rts/Printer.c @@ -24,8 +24,6 @@ #include <string.h> -void findPtr(P_ p, int follow); - #if defined(DEBUG) #include "Disassembler.h" @@ -777,6 +775,8 @@ extern void DEBUG_LoadSymbols( const char *name STG_UNUSED ) #endif /* USING_LIBBFD */ +void findPtr(P_ p, int); /* keep gcc -Wall happy */ + int searched = 0; static int @@ -876,12 +876,7 @@ void printObj( StgClosure *obj ) debugBelch("obj 0x%p (enable -DDEBUG for more info) " , obj ); } -void findPtr(P_ p, int follow) -{ - // we're printing the arguments just to silence the unused parameter warning - debugBelch("recompile your program with -debug in order to run "); - debugBelch("findPtr(0x%p, %d)\n", p, follow); -} + #endif /* DEBUG */ /* ----------------------------------------------------------------------------- diff --git a/rts/package.conf.in b/rts/package.conf.in index b6dac767fb..b5ed26d39e 100644 --- a/rts/package.conf.in +++ b/rts/package.conf.in @@ -174,9 +174,11 @@ ld-options: #if WORD_SIZE_IN_BITS == 64 , "-Wl,-u,_hs_atomicwrite64" #endif +#if defined(DEBUG) /* This symbol is useful in gdb, but not referred to anywhere, * so we need to force it to be included in the binary. */ , "-Wl,-u,_findPtr" +#endif #else "-Wl,-u,base_GHCziTopHandler_runIO_closure" , "-Wl,-u,base_GHCziTopHandler_runNonIO_closure" @@ -275,10 +277,12 @@ ld-options: #if WORD_SIZE_IN_BITS == 64 , "-Wl,-u,hs_atomicwrite64" #endif +#if defined(DEBUG) /* This symbol is useful in gdb, but not referred to anywhere, * so we need to force it to be included in the binary. */ , "-Wl,-u,findPtr" #endif +#endif /* Pick up static libraries in preference over dynamic if in earlier search * path. This is important to use the static gmp in preference on Mac OS. diff --git a/rts/rts.cabal.in b/rts/rts.cabal.in index 76fd353134..a20aa57186 100644 --- a/rts/rts.cabal.in +++ b/rts/rts.cabal.in @@ -260,9 +260,13 @@ library "-Wl,-u,_hs_atomicwrite8" "-Wl,-u,_hs_atomicwrite16" "-Wl,-u,_hs_atomicwrite32" - -- This symbol is useful in gdb, but not referred to anywhere, - -- so we need to force it to be included in the binary. "-Wl,-u,_findPtr" + + if flag(debug) + -- This symbol is useful in gdb, but not referred to anywhere, + -- so we need to force it to be included in the binary. + ld-options: "-Wl,-u,_findPtr" + else ld-options: "-Wl,-u,base_GHCziTopHandler_runIO_closure" @@ -333,9 +337,11 @@ library "-Wl,-u,hs_atomicwrite8" "-Wl,-u,hs_atomicwrite16" "-Wl,-u,hs_atomicwrite32" - -- This symbol is useful in gdb, but not referred to anywhere, - -- so we need to force it to be included in the binary. - "-Wl,-u,findPtr" + + if flag(debug) + -- This symbol is useful in gdb, but not referred to anywhere, + -- so we need to force it to be included in the binary. + ld-options: "-Wl,-u,_findPtr" if os(osx) ld-options: "-Wl,-search_paths_first" |