*** UNIX MANUAL PAGE BROWSER ***

A Nergahak database for man pages research.

Navigation

Directory Browser

1Browse 4.4BSD4.4BSD
1Browse Digital UNIXDigital UNIX 4.0e
1Browse FreeBSDFreeBSD 14.3
1Browse MINIXMINIX 3.4.0rc6-d5e4fc0
1Browse NetBSDNetBSD 10.1
1Browse OpenBSDOpenBSD 7.7
1Browse UNIX v7Version 7 UNIX
1Browse UNIX v10Version 10 UNIX

Manual Page Search

Manual Page Result

0 Command: library-specs | Section: 7 | Source: OpenBSD | File: library-specs.7
LIBRARY-SPECS(7) FreeBSD Miscellaneous Information Manual LIBRARY-SPECS(7) NAME library-specs - shared library name specifications DESCRIPTION Each WANTLIB item in the ports tree conforms to [path/]libname[=major[.minor]] or [path/]libname[>=major[.minor]] All libraries that a package needs must be mentioned in that list. Except for system and X11 libraries, they all must be reachable through LIB_DEPENDS and RUN_DEPENDS, directly, or indirectly through recursive dependencies. Conversely, the ports tree uses WANTLIB to check whether a given LIB_DEPENDS will be required at runtime for shared libraries, and thus turn it into a @depend line (see pkg_create(1)). The package system will embed correct dependency checks in the built package in the form of @wantlib lines, according to the normal shared library semantics: any library with the same major number, and a greater or equal minor number will do. Note that static libraries can only satisfy a library specification if no shared library has been found. Thus, if WANTLIB = foo>=5, and both libfoo.so.4.0 and libfoo.a are present, the check will fail. Therefore, porters must strive to respect correct shared library semantics in their own ports: by bumping the minor number each time the interface is augmented, and by bumping the major number each time the interface changes. Note that adding functions to a library is an interface augmentation. Removing functions is an interface change. The major.minor components of the library specification are used only as a build-time check, the run-time checks are computed by port-resolve-lib-helper(1). For `libname>=major[.minor]', any library which is more recent than the given major.minor version will do. If a specific major number is needed, use the form `libname=major[.minor]'. If the minor component is left empty, any minor will do. If both components are left empty, any version will do. Most specifications won't mention a path: port-resolve-lib-helper(1) will look in the default ldconfig(8) path automatically, namely /usr/local/lib, /usr/X11R6/lib, /usr/lib. It is generally a bad idea to put libraries elsewhere as they won't be reached directly. However, distinct ports may install different major versions of the same library in /usr/local/lib, and disambiguate the build by creating a link in a separate directory, and specifying the right options to the linker. These libraries will require a path component in the corresponding WANTLIB to make sure the right library is resolved. This path is rooted under /usr/local. For instance, to refer to /usr/local/lib/qt3/libqt-mt.so.33.0, one would use `lib/qt3/qt-mt>=33'. SEE ALSO check-lib-depends(1), ld(1), ld.so(1), pkg_add(1), port-resolve-lib-helper(1), bsd.port.mk(5), packages(7), packages-specs(7), ports(7), ldconfig(8) HISTORY Full support for library specifications first appeared in OpenBSD 3.1. The format of specifications changed slightly to include `>=' before OpenBSD 4.0. The interactions between LIB_DEPENDS and WANTLIB were modified and clarified for OpenBSD 4.8. The format of specifications changed again before OpenBSD 4.9 to remove extra noise. FreeBSD 14.1-RELEASE-p8 July 9, 2018 FreeBSD 14.1-RELEASE-p8

Navigation Options