rts/Printer.c: always define the findPtr symbol
authorAlp Mestanogullari <alp@well-typed.com>
Wed, 12 Sep 2018 22:06:02 +0000 (18:06 -0400)
committerBen Gamari <ben@smart-cactus.org>
Wed, 12 Sep 2018 22:06:44 +0000 (18:06 -0400)
It was previously only defined (and therefore shipped) when DEBUG is
defined.  This patch defines it regardless of DEBUG. This will help fix
hadrian on OS X [1].

[1]: https://github.com/snowleopard/hadrian/issues/614

Test Plan: The error from hadrian#614 is gone

Reviewers: bgamari, erikd, simonmar

Reviewed By: simonmar

Subscribers: rwbarton, carter

Differential Revision: https://phabricator.haskell.org/D5138

rts/Printer.c
rts/package.conf.in

index 291f529..7f7e83c 100644 (file)
@@ -24,6 +24,8 @@
 
 #include <string.h>
 
+void findPtr(P_ p, int follow);
+
 #if defined(DEBUG)
 
 #include "Disassembler.h"
@@ -775,8 +777,6 @@ 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,7 +876,12 @@ 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 */
 
 /* -----------------------------------------------------------------------------
index b5ed26d..b6dac76 100644 (file)
@@ -174,11 +174,9 @@ 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"
@@ -277,12 +275,10 @@ 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.