[GHC] #8935: Obscure linker bug leads to crash in GHCi

GHC ghc-devs at haskell.org
Thu May 8 06:49:25 UTC 2014


#8935: Obscure linker bug leads to crash in GHCi
-------------------------------------+------------------------------------
        Reporter:  simonmar          |            Owner:  trommler
            Type:  bug               |           Status:  patch
        Priority:  high              |        Milestone:  7.8.3
       Component:  Runtime System    |          Version:  7.8.1-rc2
      Resolution:                    |         Keywords:
Operating System:  Unknown/Multiple  |     Architecture:  Unknown/Multiple
 Type of failure:  GHCi crash        |       Difficulty:  Rocket Science
       Test Case:                    |       Blocked By:
        Blocking:                    |  Related Tickets:
-------------------------------------+------------------------------------

Comment (by trommler):

 No, the library would not be loaded again.

 POSIX says:

   Only a single copy of an object file is brought into the address space,
 even if dlopen()
   is invoked multiple times in reference to the file, and even if
 different pathnames are
   used to reference the file.


 The Linux man page:
    If the same library is loaded again with dlopen(), the same file handle
    is returned.  The dl library maintains  reference  counts  for  library
    handles,  so  a  dynamic library is not deallocated until dlclose() has
    been called on it as many times as dlopen() has succeeded on  it.   The
    _init()  routine,  if  present,  is called only once.  But a subsequent
    call with RTLD_NOW may force symbol resolution for  a  library  earlier
    loaded with RTLD_LAZY.

 So I think we will be good.

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


More information about the ghc-tickets mailing list