diff options
author | dougb <dougb@FreeBSD.org> | 2006-01-08 10:15:31 +0000 |
---|---|---|
committer | dougb <dougb@FreeBSD.org> | 2006-01-08 10:15:31 +0000 |
commit | 2bdeba9d87921218cb6722c0da1b74fe0bd119ac (patch) | |
tree | 5b32eb52c896d966f1bb237b4835bd3f29e1dda2 /etc | |
parent | 6f27a53b6f2b9f17b4144b5da54af97bb6d66991 (diff) | |
download | FreeBSD-src-2bdeba9d87921218cb6722c0da1b74fe0bd119ac.zip FreeBSD-src-2bdeba9d87921218cb6722c0da1b74fe0bd119ac.tar.gz |
Add a mechanism to include files added by ports which contain
the names of directories to include in the base ldconfig script.
This will eliminate the need for each port to install its own
boot script which does nothing but ldocnfig a given directory.
This code was developed by flz (ports committer), discussed on
freebsd-rc@, and modified slightly by me.
Submitted by: flz
Reviewed by: brooks
Diffstat (limited to 'etc')
-rw-r--r-- | etc/defaults/rc.conf | 5 | ||||
-rw-r--r-- | etc/mtree/BSD.local.dist | 4 | ||||
-rw-r--r-- | etc/mtree/BSD.x11.dist | 4 | ||||
-rwxr-xr-x | etc/rc.d/ldconfig | 17 |
4 files changed, 30 insertions, 0 deletions
diff --git a/etc/defaults/rc.conf b/etc/defaults/rc.conf index df0143d..a6e5eba 100644 --- a/etc/defaults/rc.conf +++ b/etc/defaults/rc.conf @@ -498,6 +498,11 @@ ldconfig_paths="/usr/lib/compat /usr/X11R6/lib /usr/local/lib /usr/local/lib/com # shared library search paths ldconfig_paths_aout="/usr/lib/compat/aout /usr/X11R6/lib/aout /usr/local/lib/aout" # a.out shared library search paths +ldconfig_local_dirs="/usr/local/libdata/ldconfig /usr/X11R6/libdata/ldconfig" + # Local directories with ldconfig configuration files. +ldconfig_local32_dirs="/usr/local/libdata/ldconfig32 /usr/X11R6/libdata/ldconfig32" + # Local directories with 32-bit compatibility ldconfig + # configuration files. kern_securelevel_enable="NO" # kernel security level (see init(8)), kern_securelevel="-1" # range: -1..3 ; `-1' is the most insecure # Note that setting securelevel to 0 will result diff --git a/etc/mtree/BSD.local.dist b/etc/mtree/BSD.local.dist index 966fc02..491e0f5 100644 --- a/etc/mtree/BSD.local.dist +++ b/etc/mtree/BSD.local.dist @@ -20,6 +20,10 @@ lib .. libdata + ldconfig + .. + ldconfig32 + .. pkgconfig .. .. diff --git a/etc/mtree/BSD.x11.dist b/etc/mtree/BSD.x11.dist index ef33781..122cdd5 100644 --- a/etc/mtree/BSD.x11.dist +++ b/etc/mtree/BSD.x11.dist @@ -192,6 +192,10 @@ .. .. libdata + ldconfig + .. + ldconfig32 + .. .. libexec .. diff --git a/etc/rc.d/ldconfig b/etc/rc.d/ldconfig index 96de363..60a61e1 100755 --- a/etc/rc.d/ldconfig +++ b/etc/rc.d/ldconfig @@ -22,6 +22,11 @@ ldconfig_start() checkyesno ldconfig_insecure && _ins="-i" if [ -x "${ldconfig_command}" ]; then _LDC="/lib /usr/lib" + for i in ${ldconfig_local_dirs}; do + if [ -d "${i}" ]; then + ldconfig_paths="${ldconfig_paths} `find ${i} -type f`" + fi + done for i in ${ldconfig_paths} /etc/ld-elf.so.conf; do if [ -r "${i}" ]; then _LDC="${_LDC} ${i}" @@ -30,6 +35,18 @@ ldconfig_start() echo 'ELF ldconfig path:' ${_LDC} ${ldconfig} -elf ${_ins} ${_LDC} + case `sysctl -n hw.machine_arch` in + amd64) + for i in ${ldconfig_local32_dirs}; do + if [ -d "${i}" ]; then + ldconfig32_paths="${ldconfig32_paths} `find ${i} -type f`" + fi + done + echo '32-bit compatibility ldconfig path:' ${ldconfig32_paths} + ${ldconfig} -32 -m ${_ins} ${ldconfig32_paths} + ;; + esac + # Legacy aout support for i386 only case `sysctl -n hw.machine_arch` in i386) |