Add -fuse-ld flag to CFLAGS during configure
authorBen Gamari <bgamari.foss@gmail.com>
Mon, 3 Jul 2017 23:09:39 +0000 (19:09 -0400)
committerBen Gamari <ben@smart-cactus.org>
Mon, 3 Jul 2017 23:42:21 +0000 (19:42 -0400)
commit960918bd1f7e3811845a525ba85bbd390ddf28c8
treec2bb07e510e35c883e0987249cade2e56dd7e20a
parenta6f3d1b00e9c37a56cd4db9e519309e94a65d181
Add -fuse-ld flag to CFLAGS during configure

The decisions made by configure later in the script may depend upon the
linker used. Consequently, it is important that configure uses the same
linker as GHC will eventually use.

For instance, on Nix I found that a program requiring `libpthread` would
link fine with only `-lrt` when linked with BFD ld. However, with gold
we needed to explicitly provide the `-lpthread` dependency. Presumably
the former would happily loaded any `NEEDED` libraries whereas the
latter wants them explicitly given. Regardless, since `configure`'s
`NEED_PTHREAD_LIB` check didn't use the `-fuse-ld` flag that GHC would
eventually use, we inferred the wrong value, resulting in link errors
later in the build.

Test Plan: Validate

Reviewers: austin, hvr

Subscribers: rwbarton, thomie, erikd

GHC Trac Issues: #13541

Differential Revision: https://phabricator.haskell.org/D3694
configure.ac
distrib/configure.ac.in