summaryrefslogtreecommitdiff
path: root/rts/Linker.c
diff options
context:
space:
mode:
authorPeter Trommler <ptrommler@acm.org>2016-12-26 10:04:54 -0500
committerBen Gamari <ben@smart-cactus.org>2016-12-27 12:44:25 -0500
commit4dec7d191fbc26276cc2c8306d9d03e71e277979 (patch)
treeb7dbe0c3ebd757acdac5f0459e6dfd1fa6704278 /rts/Linker.c
parent88f5add0280788d424c9df5f751a73e73a1a4284 (diff)
downloadhaskell-4dec7d191fbc26276cc2c8306d9d03e71e277979.tar.gz
Testsuite: Skip failing tests on PowerPC 64-bit
The Power ISA says the result of a division by zero is undefined. So ignore stdout on PowerPC 64-bit systems. Disable ext-interp tests on 64-bit PowerPC. We don't have support for PowerPC 64-bit ELF in the RTS linker, which is needed for the external interpreter. Test Plan: ./validate Reviewers: austin, simonmar, hvr, erikd, bgamari Reviewed By: bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2782
Diffstat (limited to 'rts/Linker.c')
-rw-r--r--rts/Linker.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/rts/Linker.c b/rts/Linker.c
index 07d9e6c346..9462bdbbcc 100644
--- a/rts/Linker.c
+++ b/rts/Linker.c
@@ -78,7 +78,13 @@
#if defined(dragonfly_HOST_OS)
#include <sys/tls.h>
#endif
-
+/*
+ Note [runtime-linker-support]
+ -----------------------------
+ When adding support for a new platform to the runtime linker please
+ update `$TOP/configure.ac` under heading `Does target have runtime
+ linker support?`.
+ */
/* `symhash` is a Hash table mapping symbol names to RtsSymbolInfo.
This hashtable will contain information on all symbols
that we know of, however the .o they are in may not be loaded.
@@ -99,7 +105,7 @@
This is to enable lazy loading of symbols. Eager loading is problematic
as it means that all symbols must be available, even those which we will
- never use. This is especially painful of Windows, where the number of
+ never use. This is especially painful on Windows, where the number of
libraries required to link things like mingwex grows to be quite high.
We proceed through these stages as follows,
@@ -108,12 +114,12 @@
perform a quick scan/indexing of the ObjectCode. All the work
required to actually load the ObjectCode is done.
- All symbols from the ObjectCode is also inserted into
+ All symbols from the ObjectCode are also inserted into
`symhash`, where possible duplicates are handled via the semantics
described in `ghciInsertSymbolTable`.
This phase will produce ObjectCode with status `OBJECT_LOADED` or `OBJECT_NEEDED`
- depending on whether they are an archive members or not.
+ depending on whether they are an archive member or not.
* During initialization we load ObjectCode, perform relocations, execute
static constructors etc. This phase may trigger other ObjectCodes to
@@ -131,10 +137,10 @@
This phase will produce ObjectCode with status `OBJECT_RESOLVED` if
the previous status was `OBJECT_NEEDED`.
- * Lookup symbols is used to lookup any symbols required, both during initial
+ * lookupSymbols is used to lookup any symbols required, both during initial
link and during statement and expression compilations in the REPL.
- Declaration of e.g. an foreign import, will eventually call lookupSymbol
- which will either fail (symbol unknown) or succeed (and possibly triggered a
+ Declaration of e.g. a foreign import, will eventually call lookupSymbol
+ which will either fail (symbol unknown) or succeed (and possibly trigger a
load).
This phase may transition an ObjectCode from `OBJECT_LOADED` to `OBJECT_RESOLVED`