diff options
author | Ben Gamari <bgamari.foss@gmail.com> | 2017-07-03 19:09:39 -0400 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2017-07-03 19:42:21 -0400 |
commit | 960918bd1f7e3811845a525ba85bbd390ddf28c8 (patch) | |
tree | c2bb07e510e35c883e0987249cade2e56dd7e20a /distrib | |
parent | a6f3d1b00e9c37a56cd4db9e519309e94a65d181 (diff) | |
download | haskell-960918bd1f7e3811845a525ba85bbd390ddf28c8.tar.gz |
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
Diffstat (limited to 'distrib')
-rw-r--r-- | distrib/configure.ac.in | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/distrib/configure.ac.in b/distrib/configure.ac.in index 53c79e1a2d..ac6af24b94 100644 --- a/distrib/configure.ac.in +++ b/distrib/configure.ac.in @@ -121,6 +121,7 @@ FIND_LD([$target],[GccUseLdOpt]) CONF_GCC_LINKER_OPTS_STAGE1="$CONF_GCC_LINKER_OPTS_STAGE1 $GccUseLdOpt" CONF_GCC_LINKER_OPTS_STAGE2="$CONF_GCC_LINKER_OPTS_STAGE2 $GccUseLdOpt" LdCmd="$LD" +CFLAGS="$CFLAGS $GccUseLdOpt" AC_SUBST([LdCmd]) FP_PROG_LD_IS_GNU |