Shorten long lines in DynFlags, add details to ghci usage guide.

Summary:
Shorten long lines in DynFlags.
Describe --show-options in ghci usage guide.

Reviewers: jstolarek, austin

Reviewed By: jstolarek, austin

Subscribers: thomie, carter

Differential Revision: https://phabricator.haskell.org/D532

GHC Trac Issues: #9259
More Tweaks for API Anotations

Summary: Attaching semis to preceding AST element, not following

Test Plan: sh ./validate

Reviewers: hvr, austin

Reviewed By: austin

Subscribers: cactus, thomie, carter

Differential Revision: https://phabricator.haskell.org/D529
Add bash completion and README

Summary:
The bash completion is simple but works both for ghc and ghci.
The README explains to the user what they have to do to get
it working (hopefully nothing).

Test Plan: Follow the README, then enjoy the cli completion in your terminal!

Reviewers: austin

Subscribers: thomie, carter, jstolarek

Differential Revision: https://phabricator.haskell.org/D536

GHC Trac Issues: #9005
Fix obscure problem with using the system linker (#8935)

Summary:
In a statically linked GHCi symbol `environ` resolves to NULL when
called from a Haskell script.

When resolving symbols in a Haskell script we need to search the
executable program and its dependent (DT_NEEDED) shared libraries
first and then search the loaded libraries.

We want to be able to override functions in loaded libraries later.
Libraries must be opened with local scope (RTLD_LOCAL) and not global.
The latter adds all symbols to the executable program's symbols where
they are then searched in loading order. We want reverse loading order.

When libraries are loaded with local scope the dynamic linker
cannot use symbols in that library when resolving the dependencies
in another shared library. This changes the way files compiled to
object code must be linked into temporary shared libraries. We link
with the last temporary shared library created so far if it exists.
Since each temporary shared library is linked to the previous temporary
shared library the dynamic linker finds the latest definition of a
symbol by following the dependency chain.

See also Note [RTLD_LOCAL] for a summary of the problem and solution.

Cherry-picked commit 2f8b4c

Changed linker argument ordering

On some ELF systems GNU ld (and others?) default to
--as-needed and the order of libraries in the link
matters.

The last temporary shared library, must appear
before all other libraries. Switching the position
of extra_ld_inputs and lib_path_objs does that.

Fixes #8935 and #9186

Reviewers: austin, hvr, rwbarton, simonmar

Reviewed By: simonmar

Subscribers: thomie, carter, simonmar

Differential Revision: https://phabricator.haskell.org/D349

GHC Trac Issues: #8935, #9186, #9480