Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Spec should define the interpretation of the library and includes and search dirs #672

Open
bos opened this Issue · 1 comment

2 participants

@bos
Owner

(Imported from Trac #680, reported by @dcoutts on 2010-05-05)

See http://hackage.haskell.org/trac/ghc/ticket/3930

The Cabal spec should say how to interpret the extra-libraries and library-dirs fields in the installed package info. Specifically how this information is interpreted in relation to package dependencies which may also specify libraries and search paths.

The interpretation should be that all the extra-libraries required by a installed package should be found in library-dirs given in that installed package info, or in the "standard" system linker path (as used by the standard system linker). That is, the library-dirs of dependent packages should not be used.

For example:

-- installed package gtk:
extra-libraries: gtk-x11-2.0
library-dirs:
depends: glib
-- installed package glib:
extra-libraries: glib-2.0
library-dirs: /opt/local/lib
We presume here that /opt/local/lib is not on the standard linker path. Then we should only look for the gtk-x11-2.0 library on the paths specified in the gtk package, which in this case is empty, so that means only on the system linker path. If gtk-x11-2.0 is in fact only in /opt/local/lib then this will and should fail. We should not use the library dirs of the glib package to find the libraries of the gtk package.

The correct information for the above example would be to list library-dirs: /opt/local/lib for the gtk package also.

@bos
Owner

(Imported comment by @dcoutts on 2010-05-05)

See also http://hackage.haskell.org/trac/ghc/ticket/4048 about ghc-pkg enforcing this new interpretation.

@ttuegel ttuegel added this to the _|_ milestone
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.