rts: Fix build when linked with gold
authorBen Gamari <bgamari.foss@gmail.com>
Sat, 12 Nov 2016 03:04:32 +0000 (22:04 -0500)
committerBen Gamari <ben@smart-cactus.org>
Sat, 12 Nov 2016 03:04:33 +0000 (22:04 -0500)
As reported in #12812, the runtime system fails to build when linked
with gold due to a missing dependency on libpthread.

Additionally, rts/package.conf.in uses the WORD_SIZE_IN_BITS macro
defined by MachDeps.h, which it does not #include. Fix this.

Test Plan: Validate with gold linker

Reviewers: hsyl20, austin, erikd, simonmar

Subscribers: thomie

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

GHC Trac Issues: #12816

rts/package.conf.in

index 5d8ab8b..49c572b 100644 (file)
@@ -2,6 +2,7 @@
 
 #include "ghcconfig.h"
 #include "rts/Config.h"
+#include "MachDeps.h"
 
 name:           rts
 version:        1.0
@@ -45,17 +46,7 @@ extra-libraries:
                               ,"gdi32"      /* for the linker */
                               ,"winmm"      /* for the linker */
 #endif
-#ifdef freebsd_HOST_OS
-                              , "pthread" /* for pthread_getthreadid_np() */
-#endif
-#ifdef openbsd_HOST_OS
-/* OpenBSD's libffi is not directly linked to the libpthread but still requires
-pthread functionality. This means that any client binary which links with libffi
-also need to link with libpthread. If it does not, then linking fails with
-unresolved symbols. */
-                              , "pthread"
-
-#endif
+                              , "pthread"   /* for pthread_getthreadid_np, pthread_create, etc. */
 #if defined(DEBUG) && defined(HAVE_LIBBFD)
                               ,"bfd", "iberty"  /* for debugging */
 #endif