[GHC] #9237: GHC not recognizing "-llibrary" form in implicit linker scripts

GHC ghc-devs at haskell.org
Wed Jun 25 09:23:08 UTC 2014


#9237: GHC not recognizing "-llibrary" form in implicit linker scripts
----------------------------------+---------------------------------------
       Reporter:  mmikolajczyk    |             Owner:
           Type:  bug             |            Status:  new
       Priority:  normal          |         Milestone:
      Component:  Compiler        |           Version:  7.8.2
       Keywords:                  |  Operating System:  Unknown/Multiple
   Architecture:  x86_64 (amd64)  |   Type of failure:  Compile-time crash
     Difficulty:  Unknown         |         Test Case:
     Blocked By:                  |          Blocking:
Related Tickets:                  |
----------------------------------+---------------------------------------
 I have tried to build accelerate-llvm package and encountered an invalid
 behaviour of linker. I am using Arch Linux and GHC 7.8.2.

 I have installed llvm-general-3.4.2.2 and llvm-general-pure-3.4.2.2 from
 this branch: https://github.com/tvh/llvm-
 general/tree/curatedTargetMachine, and accelerate from HEAD to common
 sandbox. Then I tried to build accelerate-llvm using the sandbox and got
 this output during building:

 {{{
 Building accelerate-llvm-0.15.0.0...
 Preprocessing library accelerate-llvm-0.15.0.0...
 [ 1 of 30] Compiling Data.Range.Range ( Data/Range/Range.hs,
 dist/build/Data/Range/Range.o )
 Loading package ghc-prim ... linking ... done.
 Loading package integer-gmp ... linking ... done.
 Loading package base ... linking ... done.
 Loading package primitive-0.5.3.0 ... linking ... done.
 Loading package array-0.5.0.0 ... linking ... done.
 Loading package deepseq-1.3.0.2 ... linking ... done.
 Loading package old-locale-1.0.0.6 ... linking ... done.
 Loading package time-1.4.2 ... linking ... done.
 Loading package vector-0.10.11.0 ... linking ... done.
 Loading package mwc-random-0.13.1.2 ... linking ... done.
 Loading package bytestring-0.10.4.0 ... linking ... done.
 Loading package containers-0.5.5.1 ... linking ... done.
 Loading package transformers-0.4.1.0 ... linking ... done.
 Loading package mtl-2.2.1 ... linking ... done.
 Loading package text-1.1.1.3 ... linking ... done.
 Loading package parsec-3.1.5 ... linking ... done.
 Loading package unix-2.7.0.1 ... linking ... done.
 Loading package setenv-0.1.1.1 ... linking ... done.
 Loading package pretty-1.1.1.1 ... linking ... done.
 Loading package template-haskell ... linking ... done.
 Loading package llvm-general-pure-3.4.2.2 ... linking ... done.
 Loading package utf8-string-0.3.8 ... linking ... done.
 Loading package llvm-general-3.4.2.2 ... <command line>: can't load
 .so/.DLL for: /usr/lib/libcurses.so (-lncursesw: cannot open shared object
 file: No such file or directory)
 }}}

 After some searching I narrowed down the issue to `/usr/lib/libcurses.so`
 file. In Arch, this file contains `INPUT(-lncursesw)`. If I change it to
 `INPUT(libncursesw.so)` or `INPUT(/usr/lib/libncursesw.so)` it works fine.
 Symlinking `/usr/lib/libcurses.so` to `/usr/lib/libncursesw.so` also
 works.

 This bug seems to be connected to #2615. GHC still doesn't follow `INPUT`
 commands containing `-llibrary` form. Ld documentation allows this: {{{If
 you use `INPUT (-lfile)', ld will transform the name to libfile.a, as with
 the command line argument `-l'}}}.
 (https://sourceware.org/binutils/docs/ld/File-Commands.html)

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9237>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list