[GHC] #7779: building GHC overwrites the installed package database if GHC_PACKAGE_PATH is set

GHC cvs-ghc at haskell.org
Wed Mar 20 05:31:28 CET 2013


#7779: building GHC overwrites the installed package database if GHC_PACKAGE_PATH
is set
-----------------------------+----------------------------------------------
Reporter:  heatsink          |          Owner:                  
    Type:  bug               |         Status:  new             
Priority:  normal            |      Component:  Build System    
 Version:  7.4.2             |       Keywords:                  
      Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple
 Failure:  None/Unknown      |      Blockedby:                  
Blocking:                    |        Related:                  
-----------------------------+----------------------------------------------
 When building GHC, if `GHC_PACKAGE_PATH` is set to a single path, then the
 build process will register packages in that path instead of in the build
 tree.  Since `GHC_PACKAGE_PATH` points to the host compiler's package
 database, the build system overwrites the host compiler's package
 database, rendering the host compiler unusable.

 To reproduce:

 1. Get a binary distribution of GHC 7.4.1 and a source distribution of GHC
 7.4.2

 2. Configure the binary distribution to install in a temporary directory:
 `./configure --prefix=$HOME/workspace1`

 3. Install the binary distribution

 4. Set up the environment to use only the installed compiler: `export
 PATH=$HOME/workspace1/bin:$PATH; export
 GHC_PACKAGE_PATH=$HOME/workspace1/lib/ghc-7.4.1/package.conf.d`

 5. Configure the source distribution to install in a different directory:
 `./configure --prefix=$HOME/workspace2`

 6. Build the source distribution: `make`

 Building will eventually run commands that modify the package database in
 `GHC_PACKAGE_PATH`.  One of these commands is  `"inplace/bin/ghc-pkg"
 update --force rts/package.conf.inplace`.  I confirmed that the database
 is being modified by making `ghc-pkg` print the name of the file it's
 about to update.

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



More information about the ghc-tickets mailing list