Ian Lynagh [Sat, 23 Apr 2011 16:21:59 +0000 (17:21 +0100)]
Make and use AR_STAGE[0123] makefile vars
Ian Lynagh [Sat, 23 Apr 2011 16:09:51 +0000 (17:09 +0100)]
Remove now-unused compiler/Makefile.local
Ian Lynagh [Sat, 23 Apr 2011 15:19:40 +0000 (16:19 +0100)]
Remove unused makefile variable PREPROCESSCMD
Ian Lynagh [Sat, 23 Apr 2011 12:44:04 +0000 (13:44 +0100)]
Remove unused Makefile.local
Ian Lynagh [Sat, 23 Apr 2011 12:43:12 +0000 (13:43 +0100)]
Remove unused Makefile.inc
Ian Lynagh [Sat, 23 Apr 2011 12:42:04 +0000 (13:42 +0100)]
Remove an nhc-specific makefile
Ian Lynagh [Sat, 23 Apr 2011 12:40:52 +0000 (13:40 +0100)]
Make stage-specific CC variables
This allows different gcc's to be used when building different stages,
which we need to do when cross-compiling.
Ian Lynagh [Sat, 23 Apr 2011 10:59:56 +0000 (11:59 +0100)]
Update .gitignore for the extra-gcc-opts -> settings change
Ian Lynagh [Fri, 22 Apr 2011 21:57:24 +0000 (22:57 +0100)]
Remove UseGcc makefile var
It couldn't be overridden, and was defined as YES.
Ian Lynagh [Fri, 22 Apr 2011 21:49:28 +0000 (22:49 +0100)]
Rename FP_HAVE_GCC to FP_GCC_VERSION
Ian Lynagh [Fri, 22 Apr 2011 21:45:04 +0000 (22:45 +0100)]
Remove HaveGcc (it was always YES)
Ian Lynagh [Fri, 22 Apr 2011 21:27:50 +0000 (22:27 +0100)]
Remove redundant tests for whether we're in a GHC tree
We always are, nowadays.
Ian Lynagh [Fri, 22 Apr 2011 18:11:56 +0000 (19:11 +0100)]
Revert "Output ELF .size directives for functions"
This reverts commit
b1f453e16f0ce11a2ab18cc4c350bdcbd36299a6.
It caused dynHelloWorld(dyn) to fail.
Ian Lynagh [Fri, 22 Apr 2011 17:42:38 +0000 (18:42 +0100)]
Move gcc's and perl's location to the settings file
They were hardcoded in Config.hs
Johan Tibell [Tue, 19 Apr 2011 16:04:03 +0000 (18:04 +0200)]
Output ELF .size directives for functions
This allows tools like Linux's perf events to display symbol names for
CMM primops.
Ian Lynagh [Fri, 22 Apr 2011 12:34:26 +0000 (13:34 +0100)]
Move the opt* fields from DynFlags into the Settings type
The pgm* fields are already in Settings
Ian Lynagh [Fri, 22 Apr 2011 11:56:02 +0000 (12:56 +0100)]
Tweak build rules for libffi
We were doing
echo $(HOSTPLATFORM) | sed 's/i[567]86/i486/g'
but the only x86 value HOSTPLATFORM can have is i386.
We now tell libffi its build platform again, but we now tell it it's
$(BUILDPLATFORM) rather than $(HOSTPLATFORM).
Mark Lentczner [Thu, 14 Apr 2011 21:38:48 +0000 (14:38 -0700)]
no need to set --build when configuring libffi
The value --build was set to broke cross-compilier builds, and isn't
needed for regular builds.
Mark Lentczner [Thu, 14 Apr 2011 21:36:42 +0000 (14:36 -0700)]
fix documentation of FP_ARG_WITH_PATH_GNU_PROG
Ian Lynagh [Thu, 21 Apr 2011 23:21:23 +0000 (00:21 +0100)]
Initialise Settings before DynFlags
Stops us having to temporarily have a panic in the DynFlags.
We still need a panic in the DynFlags used for the top-level
error handler, though.
Lennart Kolmodin [Thu, 21 Apr 2011 16:17:02 +0000 (18:17 +0200)]
Fix typo in shared libraries documentation.
Ian Lynagh [Thu, 21 Apr 2011 23:10:06 +0000 (00:10 +0100)]
Split off a Settings type from DynFlags
Ian Lynagh [Thu, 21 Apr 2011 18:36:52 +0000 (19:36 +0100)]
Rename "extra-gcc-opts" to "settings", and start generalising it
Ian Lynagh [Thu, 21 Apr 2011 14:53:02 +0000 (15:53 +0100)]
Fix typo in comment
Simon Peyton Jones [Thu, 21 Apr 2011 08:00:43 +0000 (09:00 +0100)]
Merge branch 'master' of darcs.haskell.org/ghc
Matthias Kilian [Mon, 18 Apr 2011 21:59:51 +0000 (23:59 +0200)]
do not use sed for version date processing but rather cut and tr
Based on an idea from Karel Gardas, who had troubles with the original
sed version (which didn't work with /usr/bin/sed on Solaris).
CJ van den Berg [Wed, 20 Apr 2011 21:25:22 +0000 (22:25 +0100)]
For very short linker scripts dlopen may return 'file too short' instead
of 'invalid ELF header'.
CJ van den Berg [Wed, 20 Apr 2011 21:25:16 +0000 (22:25 +0100)]
This is required to successfully load terminfo into GHCi in current
versions of Fedora. The INPUT command is use by libncursesw.so in
Fedora.
Matthias Kilian [Sat, 16 Apr 2011 12:58:15 +0000 (14:58 +0200)]
Add "./sync-all clean" command
Simon Peyton Jones [Wed, 20 Apr 2011 16:29:19 +0000 (17:29 +0100)]
Tidy up SigTv
This just a refactoring, removing dead code
Simon Peyton Jones [Wed, 20 Apr 2011 16:28:00 +0000 (17:28 +0100)]
Fix Trac #5130: missed error report
Some out of date code in TcErrors was suppressing an error
report -- so some type-incorrect code leaked out and confused
a later bit of the compiler.
Simon Peyton Jones [Wed, 20 Apr 2011 16:18:45 +0000 (17:18 +0100)]
Dont print "Constraint solver steps = n" if -dno-debug-output is on
Simon Peyton Jones [Wed, 20 Apr 2011 16:16:46 +0000 (17:16 +0100)]
Add pprDefiniteTrace and use it
The point here is that a very few uses of pprTrace are
controlled by a flag like -ddump-inlinings or -ddump-rule-firings,
and we want to see that output even with -dno-debug-output
Simon Peyton Jones [Wed, 20 Apr 2011 16:15:38 +0000 (17:15 +0100)]
Fix Trac #5126: generate correct usage info in TH declaration quotes
In RnBinds.rnValBindsRHS I had
(sig_dus `plusDU` bind_dus)
when it should be
(bind_dus `plusDU` sig_dus)
So the fix is easy.
Simon Peyton Jones [Wed, 20 Apr 2011 11:27:31 +0000 (12:27 +0100)]
Merge branch 'master' of darcs.haskell.org/ghc
Simon Peyton Jones [Wed, 20 Apr 2011 11:24:48 +0000 (12:24 +0100)]
Ignore .rej files
Simon Peyton Jones [Wed, 20 Apr 2011 11:24:38 +0000 (12:24 +0100)]
Pretty-print type variables that are operators correctly
Fixes Trac #5141. Thanks to Adam Megacz.
Ian Lynagh [Tue, 19 Apr 2011 22:51:19 +0000 (23:51 +0100)]
Don't generate a prototype for cas
I'm not sure if this is the best way to fix this, but it fixes the
unreg build.
Ian Lynagh [Tue, 19 Apr 2011 11:55:45 +0000 (12:55 +0100)]
Make the compiler depend on unlit existing
Fixes an unreg build failure. I've also now made these sorts of
dependencies order-only.
Ian Lynagh [Tue, 19 Apr 2011 11:54:18 +0000 (12:54 +0100)]
Remove use of -fno-asm-mangling flag; fixes #5134
The flag no longer exists, but we always behave as if it had been used.
David Terei [Tue, 19 Apr 2011 21:51:16 +0000 (14:51 -0700)]
LLVM: Fix #5131. Add support for missing stg regs
simonpj [Tue, 19 Apr 2011 12:36:53 +0000 (13:36 +0100)]
Slightly better tracing in the constraint solver
simonpj [Tue, 19 Apr 2011 12:36:11 +0000 (13:36 +0100)]
Fix Trac #5038 (missing free variable in ifThenElse rebindable syntax)
simonpj [Tue, 19 Apr 2011 12:35:27 +0000 (13:35 +0100)]
Simplify treatement of pragmas slightly
simonpj [Tue, 19 Apr 2011 12:34:32 +0000 (13:34 +0100)]
Fix typo in comment
simonpj [Tue, 19 Apr 2011 12:34:04 +0000 (13:34 +0100)]
Remove unused function sigForThisGroup
simonpj [Tue, 19 Apr 2011 12:33:09 +0000 (13:33 +0100)]
Fix Trac #5045: add ticks to HsArrForms
I don't know why these were left out. I did the obvious
thing... I hope it's right!
simonpj [Tue, 19 Apr 2011 12:31:53 +0000 (13:31 +0100)]
Fix Trac #5041: parse the trailing '#'
This matters for constructors and field labels that
have a trailing hash (MagicHash language extension).
Simon Peyton Jones [Tue, 19 Apr 2011 10:42:38 +0000 (11:42 +0100)]
Merge branch 'master' of darcs.haskell.org/ghc
Simon Peyton Jones [Tue, 19 Apr 2011 10:41:42 +0000 (11:41 +0100)]
Add more ignorance
Ian Lynagh [Sun, 17 Apr 2011 20:32:02 +0000 (21:32 +0100)]
Make ghc less keen to pass -v to gcc and friends
Also a small refactoring in how the verbosity flag is handled.
Ian Lynagh [Sun, 17 Apr 2011 17:48:39 +0000 (18:48 +0100)]
Set stdout to use line buffering in ghc-cabal
Ian Lynagh [Sat, 16 Apr 2011 20:53:48 +0000 (21:53 +0100)]
Document -fwarn-missing-local-sigs; part of #4817
Ian Lynagh [Fri, 15 Apr 2011 13:23:02 +0000 (14:23 +0100)]
Make sure the main git repo is case-insensitive too
Ian Lynagh [Fri, 15 Apr 2011 13:21:47 +0000 (14:21 +0100)]
Tidy sync-all up a bit, and turn on ignorecase for git repos
Ian Lynagh [Fri, 15 Apr 2011 13:09:46 +0000 (14:09 +0100)]
More sync-all refactoring
Ian Lynagh [Fri, 15 Apr 2011 12:18:38 +0000 (13:18 +0100)]
Refactor sync-all a bit
Simon Marlow [Fri, 15 Apr 2011 08:35:24 +0000 (09:35 +0100)]
add --no-<tag>, so e.g. we can omit DPH with --no-dph
Simon Marlow [Thu, 14 Apr 2011 15:40:35 +0000 (16:40 +0100)]
The hash table implementation had some static free lists that were
not protected by locks in the threaded RTS. This moves the free lists
to the individual hash tables and removes the static variables.
Spotted by Marcin Orczyk <orczykm@dcs.gla.ac.uk>, thanks! This could
definitely cause actual crashes.
Simon Marlow [Thu, 14 Apr 2011 15:38:00 +0000 (16:38 +0100)]
fix a shutdown memory leak
Edward Z. Yang [Fri, 15 Apr 2011 09:32:33 +0000 (10:32 +0100)]
Revert "Generalized assignment rewriting pass."
This reverts commit
2ec796239b782505cfb305af2789abcfa820baaf.
Edward Z. Yang [Wed, 13 Apr 2011 10:16:36 +0000 (11:16 +0100)]
Generalized assignment rewriting pass.
This assignment rewriting pass subsumes the previous reload
sinking pass, and also performs basic inlining.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Edward Z. Yang [Wed, 13 Apr 2011 10:14:34 +0000 (11:14 +0100)]
Disable check word address lint check, due to inlined pointer tags.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Edward Z. Yang [Wed, 13 Apr 2011 10:08:44 +0000 (11:08 +0100)]
Add GenCmmGraph, which is a generic version of CmmGraph.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Ian Lynagh [Thu, 14 Apr 2011 21:45:02 +0000 (22:45 +0100)]
Check for ^M in packages file when booting
If we find one then we print an error message and fail.
Ian Lynagh [Thu, 14 Apr 2011 19:45:55 +0000 (20:45 +0100)]
Fix typo in docs; spotted by Rustom Mody in beginners@
Ian Lynagh [Thu, 14 Apr 2011 18:56:51 +0000 (19:56 +0100)]
Make the boot script complain if mk/build.mk doesn't exist
If we aren't validating and mk/build.mk doesn't exist then boot
prints a warning, pointing at instructions for setting up mk/build.mk.
Ian Lynagh [Thu, 14 Apr 2011 18:42:51 +0000 (19:42 +0100)]
Refactor how dependencies are included; fixes #5109
This avoids duplicating some logic around the build system.
Simon Marlow [Thu, 14 Apr 2011 09:40:17 +0000 (10:40 +0100)]
Add a final newline to the link-time C file that we generate,
otherwise some versions of gcc complain about a missing final newline.
Simon Marlow [Thu, 14 Apr 2011 07:59:39 +0000 (08:59 +0100)]
Avoid accumulating slop in the pinned_object_block.
The pinned_object_block is where we allocate small pinned ByteArray#
objects. At a GC the pinned_object_block was being treated like other
large objects and promoted to the next step/generation, even if it was
only partly full. Under some ByteString-heavy workloads this would
accumulate on average 2k of slop per GC, and this memory is never
released until the ByteArray# objects in the block are freed.
So now, we keep allocating into the pinned_object_block until it is
completely full, at which point it is handed over to the GC as before.
The pinned_object_block might therefore contain objects which a large
range of ages, but I don't think this is any worse than the situation
before. We still have the fragmentation issue in general, but the new
scheme can improve the memory overhead for some workloads
dramatically.
Edward Z. Yang [Wed, 13 Apr 2011 14:58:02 +0000 (15:58 +0100)]
Admonish the user to read the wiki page!
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Edward Z. Yang [Wed, 13 Apr 2011 14:29:48 +0000 (15:29 +0100)]
For BC labels, emit empty data section instead of empty proc.
This fixes two bugs:
- The new code generator doesn't like procedures with
empty graphs, and panicked in labelAGraph.
- LLVM optimizes away empty procedures but not empty
data sections, so now the backwards-compatibility
labels actually work with -fllvm.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Ian Lynagh [Wed, 13 Apr 2011 22:47:45 +0000 (23:47 +0100)]
Merge branch 'master' of darcs.haskell.org/ghc
Ian Lynagh [Wed, 13 Apr 2011 22:36:29 +0000 (23:36 +0100)]
Now that -fvia-C is gone, we don't need -march=i686 on i386 Darwin
This fixes #5106 (objc compilation was failing on i386 Darwin).
Edward Z. Yang [Wed, 13 Apr 2011 10:09:37 +0000 (11:09 +0100)]
Add adjustUFM, adjustUFM_Directly and joinUFM to UniqFM.
Renamed adjustUFM in GraphOps to adjustUFM_C, to account
for alternate argument order.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Edward Z. Yang [Wed, 13 Apr 2011 11:54:53 +0000 (12:54 +0100)]
Always support optimization fuel.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Edward Z. Yang [Wed, 13 Apr 2011 10:09:09 +0000 (11:09 +0100)]
Update CmmRegOff shorthand for CmmMachOp.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Simon Marlow [Wed, 13 Apr 2011 10:27:20 +0000 (11:27 +0100)]
fix a bug introduced in
1fb38442d3a55ac92795aa6c5ed4df82011df724,
symptom was 2047(threaded2) was crashing.
Erik de Castro Lopo [Mon, 4 Apr 2011 12:40:15 +0000 (22:40 +1000)]
Fix compiling on linux-powerpc.
Simon Marlow [Tue, 12 Apr 2011 12:49:09 +0000 (13:49 +0100)]
Change the way module initialisation is done (#3252, #4417)
Previously the code generator generated small code fragments labelled
with __stginit_M for each module M, and these performed whatever
initialisation was necessary for that module and recursively invoked
the initialisation functions for imported modules. This appraoch had
drawbacks:
- FFI users had to call hs_add_root() to ensure the correct
initialisation routines were called. This is a non-standard,
and ugly, API.
- unless we were using -split-objs, the __stginit dependencies would
entail linking the whole transitive closure of modules imported,
whether they were actually used or not. In an extreme case (#4387,
#4417), a module from GHC might be imported for use in Template
Haskell or an annotation, and that would force the whole of GHC to
be needlessly linked into the final executable.
So now instead we do our initialisation with C functions marked with
__attribute__((constructor)), which are automatically invoked at
program startup time (or DSO load-time). The C initialisers are
emitted into the stub.c file. This means that every time we compile
with -prof or -hpc, we now get a stub file, but thanks to #3687 that
is now invisible to the user.
There are some refactorings in the RTS (particularly for HPC) to
handle the fact that initialisers now get run earlier than they did
before.
The __stginit symbols are still generated, and the hs_add_root()
function still exists (but does nothing), for backwards compatibility.
Simon Marlow [Tue, 12 Apr 2011 12:21:41 +0000 (13:21 +0100)]
Cleanup sweep and fix a bug in RTS flag processing.
This code has accumulated a great deal of cruft over the years, this
pass cleans up a lot of the surrounding cruft but leaves the actual
argument processing alone - so there's still more that could be done.
Bug fixed:
- ghc_rts_opts should not be subject to the --rtsopts setting. If
the programmer explicitly declares options with ghc_rts_opts, they
shouldn't also have to accept command-line RTS options to make them
work.
Simon Marlow [Tue, 12 Apr 2011 08:41:01 +0000 (09:41 +0100)]
isAlive: re-apply the tag if we find a forwarding pointer. This is a
real bug, spotted by Marcin Orczyk (thanks!). I'm not sure if it lead
to any actual crashes.
Edward Z. Yang [Mon, 11 Apr 2011 14:33:15 +0000 (15:33 +0100)]
Remove debugging CmmComment from old code generator.
Warning: This change seems to tickle a bug in ghc-stage1 compiler
built with GHC 6.12.1 during validates.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Edward Z. Yang [Mon, 4 Apr 2011 11:56:00 +0000 (12:56 +0100)]
Flag for defaulting the codegen GhcStageXDefaultNewCodegen.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Edward Z. Yang [Mon, 11 Apr 2011 15:04:14 +0000 (16:04 +0100)]
Implement mapUFM_Directly.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Edward Z. Yang [Mon, 11 Apr 2011 10:54:34 +0000 (11:54 +0100)]
Unsafe foreign calls (fat machine instructions) do not kill all registers.
The new code generator was doing some interesting spilling across
unsafe foreign calls:
_c1ao::I32 = Hp - 4;
I32[Sp - 20] = _c1ao::I32;
foreign "ccall"
newCAF((BaseReg, PtrHint), (R1, PtrHint))[_unsafe_call_];
_c1ao::I32 = I32[Sp - 20];
This is fairly unnecessary, and resulted from over-conservative
liveness analysis from CmmLive. We can see that the old code
generator only saved volatile registers across unsafe foreign calls:
spilling variables was done by saveVolatileVarsAndRegs, which was
only performed for ordinary calls.
This commit removes the excess kill from the liveness analysis, as well
as the *redundant* excess kill from spilling-and-reloading, and adds a
note to CmmNode to this effect. The only registers we need to kill
are the ones that the foreign call assigns to, just like any other
machine instruction.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Simon Marlow [Mon, 11 Apr 2011 13:48:49 +0000 (14:48 +0100)]
Refactoring and tidy up
This is a port of some of the changes from my private local-GC branch
(which is still in darcs, I haven't converted it to git yet). There
are a couple of small functional differences in the GC stats: first,
per-thread GC timings should now be more accurate, and secondly we now
report average and maximum pause times. e.g. from minimax +RTS -N8 -s:
Tot time (elapsed) Avg pause Max pause
Gen 0 2755 colls, 2754 par 13.16s 0.93s 0.0003s 0.0150s
Gen 1 769 colls, 769 par 3.71s 0.26s 0.0003s 0.0059s
Simon Marlow [Tue, 5 Apr 2011 19:17:37 +0000 (20:17 +0100)]
ghc-pkg dependency on ghc-cabal should be an order-only dependency,
otherwise we repeatedly try to rebuild ghc-pkg if ghc-cabal is newer.
Simon Marlow [Mon, 7 Mar 2011 12:27:05 +0000 (12:27 +0000)]
tweak to cleanTempFilesExcept
Simon Marlow [Tue, 15 Feb 2011 20:43:34 +0000 (20:43 +0000)]
add casMutVar#
Ian Lynagh [Sat, 9 Apr 2011 14:52:40 +0000 (15:52 +0100)]
Whitespace only in main/Finder.lhs
Ian Lynagh [Sat, 9 Apr 2011 14:16:01 +0000 (15:16 +0100)]
Add "./sync-all reset" command
Ian Lynagh [Sat, 9 Apr 2011 13:29:28 +0000 (14:29 +0100)]
Support fat archives on OS X
Based on the darcs patch from Greg Wright in #4828.
Ian Lynagh [Sat, 9 Apr 2011 13:42:08 +0000 (14:42 +0100)]
Add "./sync-all config" command
Ian Lynagh [Fri, 8 Apr 2011 20:05:17 +0000 (21:05 +0100)]
rts/Linker.c tidyups and debug belches
Part of the patch from #5062, from Greg Wright.
Ian Lynagh [Fri, 8 Apr 2011 18:48:26 +0000 (19:48 +0100)]
gen_contents_index: Improve parsing of packages file
We are now more lenient in parsing the packages file, and
we don't use any GNUisms. Based on a patch from Matthias Kilian.
Karel Gardas [Fri, 8 Apr 2011 16:53:42 +0000 (18:53 +0200)]
- disable shared lib support on Solaris 10 and older (fixes #4973)
Simon Marlow [Fri, 8 Apr 2011 14:54:50 +0000 (15:54 +0100)]
Force re-linking if the options have changed (#4451)
A common sequence of commands (at least for me) is this:
$ ghc hello
1 of 1] Compiling Main ( hello.hs, hello.o )
Linking hello ...
$ ./hello +RTS -s
hello: Most RTS options are disabled. Link with -rtsopts to enable them.
$ ghc hello -rtsopts
$
grr, nothing happened. I could use -fforce-recomp, but if this was a
large program I probably don't want to recompile it all again, so:
$ rm hello
removed `hello'
$ ghc hello -rtsopts
Linking hello ...
$ ./hello +RTS -s
./hello +RTS -s
Hello World!
51,264 bytes allocated in the heap
2,904 bytes copied during GC
43,808 bytes maximum residency (1 sample(s))
17,632 bytes maximum slop
etc.
With this patch, GHC notices when the options have changed and forces
a relink, so you don't need to rm the binary or use -fforce-recomp.
This is done by adding the pertinent stuff to the binary in a special
section called ".debug-ghc-link-info":
$ readelf -p .debug-ghc-link-info ./hello
String dump of section 'ghc-linker-opts':
[ 0] (["-lHSbase-4.3.1.0","-lHSinteger-gmp-0.2.0.2","-lgmp","-lHSghc-prim-0.2.0.0","-lHSrts","-lm","-lrt","-ldl","-u","ghczmprim_GHCziTypes_Izh_static_info","-u","ghczmprim_GHCziTypes_Czh_static_info","-u","ghczmprim_GHCziTypes_Fzh_static_info","-u","ghczmprim_GHCziTypes_Dzh_static_info","-u","base_GHCziPtr_Ptr_static_info","-u","base_GHCziWord_Wzh_static_info","-u","base_GHCziInt_I8zh_static_info","-u","base_GHCziInt_I16zh_static_info","-u","base_GHCziInt_I32zh_static_info","-u","base_GHCziInt_I64zh_static_info","-u","base_GHCziWord_W8zh_static_info","-u","base_GHCziWord_W16zh_static_info","-u","base_GHCziWord_W32zh_static_info","-u","base_GHCziWord_W64zh_static_info","-u","base_GHCziStable_StablePtr_static_info","-u","ghczmprim_GHCziTypes_Izh_con_info","-u","ghczmprim_GHCziTypes_Czh_con_info","-u","ghczmprim_GHCziTypes_Fzh_con_info","-u","ghczmprim_GHCziTypes_Dzh_con_info","-u","base_GHCziPtr_Ptr_con_info","-u","base_GHCziPtr_FunPtr_con_info","-u","base_GHCziStable_StablePtr_con_info","-u","ghczmprim_GHCziTypes_False_closure","-u","ghczmprim_GHCziTypes_True_closure","-u","base_GHCziPack_unpackCString_closure","-u","base_GHCziIOziException_stackOverflow_closure","-u","base_GHCziIOziException_heapOverflow_closure","-u","base_ControlziExceptionziBase_nonTermination_closure","-u","base_GHCziIOziException_blockedIndefinitelyOnMVar_closure","-u","base_GHCziIOziException_blockedIndefinitelyOnSTM_closure","-u","base_ControlziExceptionziBase_nestedAtomically_closure","-u","base_GHCziWeak_runFinalizzerBatch_closure","-u","base_GHCziTopHandler_runIO_closure","-u","base_GHCziTopHandler_runNonIO_closure","-u","base_GHCziConcziIO_ensureIOManagerIsRunning_closure","-u","base_GHCziConcziSync_runSparks_closure","-u","base_GHCziConcziSignal_runHandlers_closure","-lHSffi"],Nothing,RtsOptsAll,False,[],[])
And GHC itself uses the readelf command to extract it when deciding
whether to relink. The reason for the name ".debug-ghc-link-info" is
that sections beginning with ".debug" are removed automatically by
strip.
This currently only works on Linux; Windows and OS X still have the
old behaviour.
Ian Lynagh [Fri, 8 Apr 2011 11:47:23 +0000 (12:47 +0100)]
Handle '\r's in boot-pkgs files
By default, git will clone in autocrlf mode, which on Windows means
we get '\r's added to the ghc-packages files.
Simon Marlow [Thu, 7 Apr 2011 08:41:09 +0000 (09:41 +0100)]
bugfix for stub generation: create the directory for the _stub.h file,
not the _stub.c file, because the latter is now created as a temporary
file.