[GHC] #6063: GHC's build-time ld-flag checks are problematic
GHC
ghc-devs at haskell.org
Mon Jun 17 03:07:05 CEST 2013
#6063: GHC's build-time ld-flag checks are problematic
--------------------------------------+-------------------------------------
Reporter: parcs | Owner: thoughtpolice
Type: bug | Status: new
Priority: high | Milestone: 7.8.1
Component: Compiler | Version: 7.4.1
Resolution: | Keywords:
Os: Linux | Architecture: Unknown/Multiple
Failure: GHC doesn't work at all | Difficulty: Unknown
Testcase: | Blockedby:
Blocking: | Related: #4862
--------------------------------------+-------------------------------------
Comment(by aseipp@…):
commit 71a194d8ca2efd075a5c000be0b378c8706ca0b3
{{{
Author: Austin Seipp <aseipp at pobox.com>
Date: Sat May 4 16:07:22 2013 -0500
Detect linker information at runtime. Fixes Trac #6063
Previously, we did ./configure time checks to see if 'GNU ld'
supported
certain options. If it does, we bake those options into the link step.
See Trac #5240.
Unfortunately, the linker we use at runtime can change for several
reasons. One is that the user specifies -pgml 'foo'. The other is if
/usr/bin/ld or whatnot changes from when GHC was built. Those options
mentioned earlier are specific to GNU ld, but many systems support GNU
gold too. This is Trac #6063.
So we need to check at runtime what linker we're using. This is
actually
a little bit complicated because we normally use the C compiler as our
linker. Windows and OS X are also special here.
Finally, this patch also unconditionally gives '--hash-size=31' and
'--reduce-memory-overheads' to the system linker if it's GNU ld. These
options have been supported for 8+ years from what I can see, and
there
are probably a lot of other reasons why GHC would not work with such
an
ancient binutils, all things considered.
See Note [Run-time linker info] in SysTools for details. There are
plenty of comments as well in the surrounding code.
Signed-off-by: Austin Seipp <aseipp at pobox.com>
aclocal.m4 | 33 ------------
compiler/main/DynFlags.hs | 26 +++++++++-
compiler/main/SysTools.lhs | 117
++++++++++++++++++++++++++++++++++++++++++-
configure.ac | 2 -
distrib/configure.ac.in | 2 -
5 files changed, 137 insertions(+), 43 deletions(-)
}}}
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/6063#comment:19>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list