ldconfig revision 154114
178344Sobrien#!/bin/sh
278344Sobrien#
398184Sgordon# $NetBSD: ldconfig,v 1.5 2002/03/22 04:33:58 thorpej Exp $
498184Sgordon# $FreeBSD: head/etc/rc.d/ldconfig 154114 2006-01-08 10:15:31Z dougb $
578344Sobrien#
678344Sobrien
778344Sobrien# PROVIDE: ldconfig
8140339Sobrien# REQUIRE: mountcritremote cleanvar
998184Sgordon# BEFORE:  DAEMON
1078344Sobrien
1178344Sobrien. /etc/rc.subr
1278344Sobrien
1378344Sobrienname="ldconfig"
1498184Sgordonldconfig_command="/sbin/ldconfig"
1578344Sobrienstart_cmd="ldconfig_start"
1678344Sobrienstop_cmd=":"
1778344Sobrien
1878344Sobrienldconfig_start()
1978344Sobrien{
20124618Smtm	_ins=
21124618Smtm	ldconfig=${ldconfig_command}
22124618Smtm	checkyesno ldconfig_insecure && _ins="-i"
23124618Smtm	if [ -x "${ldconfig_command}" ]; then
24124618Smtm		_LDC="/lib /usr/lib"
25154114Sdougb		for i in ${ldconfig_local_dirs}; do
26154114Sdougb			if [ -d "${i}" ]; then
27154114Sdougb				ldconfig_paths="${ldconfig_paths} `find ${i} -type f`"
28154114Sdougb			fi
29154114Sdougb		done
30124618Smtm		for i in ${ldconfig_paths} /etc/ld-elf.so.conf; do
31124618Smtm			if [ -r "${i}" ]; then
32124618Smtm				_LDC="${_LDC} ${i}"
33124618Smtm			fi
34124618Smtm		done
35124618Smtm		echo 'ELF ldconfig path:' ${_LDC}
36124618Smtm		${ldconfig} -elf ${_ins} ${_LDC}
37124618Smtm
38154114Sdougb		case `sysctl -n hw.machine_arch` in
39154114Sdougb		amd64)
40154114Sdougb			for i in ${ldconfig_local32_dirs}; do
41154114Sdougb				if [ -d "${i}" ]; then
42154114Sdougb					ldconfig32_paths="${ldconfig32_paths} `find ${i} -type f`"
43154114Sdougb				fi
44154114Sdougb			done
45154114Sdougb			echo '32-bit compatibility ldconfig path:' ${ldconfig32_paths}
46154114Sdougb			${ldconfig} -32 -m ${_ins} ${ldconfig32_paths}
47154114Sdougb			;;
48154114Sdougb		esac
49154114Sdougb
50124618Smtm		# Legacy aout support for i386 only
51124618Smtm		case `sysctl -n hw.machine_arch` in
52124618Smtm		i386)
53124618Smtm			# Default the a.out ldconfig path.
54124618Smtm			: ${ldconfig_paths_aout=${ldconfig_paths}}
55124618Smtm			_LDC=/usr/lib/aout
56124618Smtm			for i in ${ldconfig_paths_aout} /etc/ld.so.conf; do
57117077Strhodes				if [ -r "${i}" ]; then
58103436Speter					_LDC="${_LDC} ${i}"
59103436Speter				fi
60103436Speter			done
61124618Smtm			echo 'a.out ldconfig path:' ${_LDC}
62124618Smtm			${ldconfig} -aout ${_ins} ${_LDC}
63124618Smtm			;;
64124618Smtm		esac
65124618Smtm	fi
6678344Sobrien}
6778344Sobrien
6878344Sobrienload_rc_config $name
6978344Sobrienrun_rc_command "$1"
70