Extend Windows runtime loader libsearch
authorTamar Christina <tamar@zhox.com>
Thu, 2 Mar 2017 20:14:34 +0000 (15:14 -0500)
committerBen Gamari <ben@smart-cactus.org>
Thu, 2 Mar 2017 21:05:05 +0000 (16:05 -0500)
commitf56fc7f7fe72f96348d663a83f736c4c8b12b08b
tree2f433a5333d73106688e998d2978a5e748fbe445
parentbc332b3159613190a4dc33a067c1ab31039a8434
Extend Windows runtime loader libsearch

This adds `.obj` extension to the list of valid
object file (we really shouldn't be using extensions
but instead trying to read the file and see if the header
makes sense.). Microsoft compilers use .obj instead of .o
for object files.

This also adds support to finding static archives when the
"lib" prefix is already in the filename. e.g. `-llibfoo` to
find `libfoo.a`. This is inline with binutils.

Test Plan: ./validate

Reviewers: simonmar, erikd, bgamari, hvr, austin

Reviewed By: bgamari

Subscribers: RyanGlScott, thomie, #ghc_windows_task_force

Differential Revision: https://phabricator.haskell.org/D3082
compiler/ghci/Linker.hs
rts/linker/LoadArchive.c