ldconfig revision 179945
178344Sobrien#!/bin/sh 278344Sobrien# 398184Sgordon# $FreeBSD: head/etc/rc.d/ldconfig 179945 2008-06-23 04:46:54Z mtm $ 498184Sgordon# 578344Sobrien 678344Sobrien# PROVIDE: ldconfig 778344Sobrien# REQUIRE: mountcritremote cleanvar 8140339Sobrien# BEFORE: DAEMON 998184Sgordon 1078344Sobrien. /etc/rc.subr 1178344Sobrien 1278344Sobrienname="ldconfig" 1378344Sobrienldconfig_command="/sbin/ldconfig" 1498184Sgordonstart_cmd="ldconfig_start" 1578344Sobrienstop_cmd=":" 1678344Sobrien 1778344Sobrienldconfig_start() 1878344Sobrien{ 1978344Sobrien local _files _ins 20159833Sflz 21159833Sflz _ins= 22124618Smtm ldconfig=${ldconfig_command} 23124618Smtm checkyesno ldconfig_insecure && _ins="-i" 24124618Smtm if [ -x "${ldconfig_command}" ]; then 25124618Smtm _LDC="/lib /usr/lib" 26124618Smtm for i in ${ldconfig_local_dirs}; do 27154114Sdougb if [ -d "${i}" ]; then 28154114Sdougb _files=`find ${i} -type f` 29159833Sflz if [ -n "${_files}" ]; then 30159833Sflz ldconfig_paths="${ldconfig_paths} `cat ${_files} | sort -u`" 31159833Sflz fi 32159833Sflz fi 33154114Sdougb done 34154114Sdougb for i in ${ldconfig_paths} /etc/ld-elf.so.conf; do 35124618Smtm if [ -r "${i}" ]; then 36124618Smtm _LDC="${_LDC} ${i}" 37124618Smtm fi 38124618Smtm done 39124618Smtm [ -z "${rc_quiet}" ] && echo 'ELF ldconfig path:' ${_LDC} 40124618Smtm ${ldconfig} -elf ${_ins} ${_LDC} 41124618Smtm 42124618Smtm case `sysctl -n hw.machine_arch` in 43154114Sdougb amd64) 44154114Sdougb for i in ${ldconfig_local32_dirs}; do 45154114Sdougb if [ -d "${i}" ]; then 46154114Sdougb _files=`find ${i} -type f` 47159833Sflz if [ -n "${_files}" ]; then 48159833Sflz ldconfig32_paths="${ldconfig32_paths} `cat ${_files} | sort -u`" 49159833Sflz fi 50159833Sflz fi 51154114Sdougb done 52154114Sdougb _LDC="" 53154114Sdougb for i in ${ldconfig32_paths}; do 54154114Sdougb if [ -r "${i}" ]; then 55154114Sdougb _LDC="${_LDC} ${i}" 56154114Sdougb fi 57154114Sdougb done 58124618Smtm [ -z "${rc_quiet}" ] && 59124618Smtm echo '32-bit compatibility ldconfig path:' ${_LDC} 60124618Smtm ${ldconfig} -32 -m ${_ins} ${_LDC} 61124618Smtm ;; 62124618Smtm esac 63124618Smtm 64124618Smtm # Legacy aout support for i386 only 65117077Strhodes case `sysctl -n hw.machine_arch` in 66103436Speter i386) 67103436Speter # Default the a.out ldconfig path. 68103436Speter : ${ldconfig_paths_aout=${ldconfig_paths}} 69124618Smtm _LDC=/usr/lib/aout 70124618Smtm for i in ${ldconfig_paths_aout} /etc/ld.so.conf; do 71124618Smtm if [ -r "${i}" ]; then 72124618Smtm _LDC="${_LDC} ${i}" 73124618Smtm fi 7478344Sobrien done 7578344Sobrien [ -z "${rc_quiet}" ] && 7678344Sobrien echo 'a.out ldconfig path:' ${_LDC} 7778344Sobrien ${ldconfig} -aout ${_ins} ${_LDC} 78 ;; 79 esac 80 fi 81} 82 83load_rc_config $name 84run_rc_command "$1" 85