ldconfig revision 154114
1#!/bin/sh
2#
3# $NetBSD: ldconfig,v 1.5 2002/03/22 04:33:58 thorpej Exp $
4# $FreeBSD: head/etc/rc.d/ldconfig 154114 2006-01-08 10:15:31Z dougb $
5#
6
7# PROVIDE: ldconfig
8# REQUIRE: mountcritremote cleanvar
9# BEFORE:  DAEMON
10
11. /etc/rc.subr
12
13name="ldconfig"
14ldconfig_command="/sbin/ldconfig"
15start_cmd="ldconfig_start"
16stop_cmd=":"
17
18ldconfig_start()
19{
20	_ins=
21	ldconfig=${ldconfig_command}
22	checkyesno ldconfig_insecure && _ins="-i"
23	if [ -x "${ldconfig_command}" ]; then
24		_LDC="/lib /usr/lib"
25		for i in ${ldconfig_local_dirs}; do
26			if [ -d "${i}" ]; then
27				ldconfig_paths="${ldconfig_paths} `find ${i} -type f`"
28			fi
29		done
30		for i in ${ldconfig_paths} /etc/ld-elf.so.conf; do
31			if [ -r "${i}" ]; then
32				_LDC="${_LDC} ${i}"
33			fi
34		done
35		echo 'ELF ldconfig path:' ${_LDC}
36		${ldconfig} -elf ${_ins} ${_LDC}
37
38		case `sysctl -n hw.machine_arch` in
39		amd64)
40			for i in ${ldconfig_local32_dirs}; do
41				if [ -d "${i}" ]; then
42					ldconfig32_paths="${ldconfig32_paths} `find ${i} -type f`"
43				fi
44			done
45			echo '32-bit compatibility ldconfig path:' ${ldconfig32_paths}
46			${ldconfig} -32 -m ${_ins} ${ldconfig32_paths}
47			;;
48		esac
49
50		# Legacy aout support for i386 only
51		case `sysctl -n hw.machine_arch` in
52		i386)
53			# Default the a.out ldconfig path.
54			: ${ldconfig_paths_aout=${ldconfig_paths}}
55			_LDC=/usr/lib/aout
56			for i in ${ldconfig_paths_aout} /etc/ld.so.conf; do
57				if [ -r "${i}" ]; then
58					_LDC="${_LDC} ${i}"
59				fi
60			done
61			echo 'a.out ldconfig path:' ${_LDC}
62			${ldconfig} -aout ${_ins} ${_LDC}
63			;;
64		esac
65	fi
66}
67
68load_rc_config $name
69run_rc_command "$1"
70