ldconfig revision 298514
178344Sobrien#!/bin/sh 278344Sobrien# 398184Sgordon# $FreeBSD: head/etc/rc.d/ldconfig 298514 2016-04-23 16:10:54Z lme $ 478344Sobrien# 578344Sobrien 678344Sobrien# PROVIDE: ldconfig 7240336Sobrien# REQUIRE: mountcritremote FILESYSTEMS 898184Sgordon# BEFORE: DAEMON 978344Sobrien 1078344Sobrien. /etc/rc.subr 1178344Sobrien 1278344Sobrienname="ldconfig" 13298514Slmedesc="Configure the shared library cache" 1498184Sgordonldconfig_command="/sbin/ldconfig" 1578344Sobrienstart_cmd="ldconfig_start" 1678344Sobrienstop_cmd=":" 1778344Sobrien 1878344Sobrienldconfig_start() 1978344Sobrien{ 20165664Syar local _files _ins 21159833Sflz 22124618Smtm _ins= 23124618Smtm ldconfig=${ldconfig_command} 24124618Smtm checkyesno ldconfig_insecure && _ins="-i" 25124618Smtm if [ -x "${ldconfig_command}" ]; then 26124618Smtm _LDC="/lib /usr/lib" 27154114Sdougb for i in ${ldconfig_local_dirs}; do 28154114Sdougb if [ -d "${i}" ]; then 29159833Sflz _files=`find ${i} -type f` 30159833Sflz if [ -n "${_files}" ]; then 31159833Sflz ldconfig_paths="${ldconfig_paths} `cat ${_files} | sort -u`" 32159833Sflz fi 33154114Sdougb fi 34154114Sdougb done 35124618Smtm for i in ${ldconfig_paths} /etc/ld-elf.so.conf; do 36124618Smtm if [ -r "${i}" ]; then 37124618Smtm _LDC="${_LDC} ${i}" 38124618Smtm fi 39124618Smtm done 40197947Sdougb check_startmsgs && echo 'ELF ldconfig path:' ${_LDC} 41124618Smtm ${ldconfig} -elf ${_ins} ${_LDC} 42124618Smtm 43154114Sdougb case `sysctl -n hw.machine_arch` in 44154114Sdougb amd64) 45154114Sdougb for i in ${ldconfig_local32_dirs}; do 46154114Sdougb if [ -d "${i}" ]; then 47159833Sflz _files=`find ${i} -type f` 48159833Sflz if [ -n "${_files}" ]; then 49159833Sflz ldconfig32_paths="${ldconfig32_paths} `cat ${_files} | sort -u`" 50159833Sflz fi 51154114Sdougb fi 52154114Sdougb done 53174567Sjhb _LDC="" 54174567Sjhb for i in ${ldconfig32_paths}; do 55174567Sjhb if [ -r "${i}" ]; then 56174567Sjhb _LDC="${_LDC} ${i}" 57174567Sjhb fi 58174567Sjhb done 59197947Sdougb check_startmsgs && 60179945Smtm echo '32-bit compatibility ldconfig path:' ${_LDC} 61174567Sjhb ${ldconfig} -32 -m ${_ins} ${_LDC} 62154114Sdougb ;; 63154114Sdougb esac 64154114Sdougb 65294295Simp case `sysctl -n hw.machine_arch` in 66294295Simp armv6) 67294295Simp for i in ${ldconfig_localsoft_dirs}; do 68294295Simp if [ -d "${i}" ]; then 69294295Simp _files=`find ${i} -type f` 70294295Simp if [ -n "${_files}" ]; then 71294295Simp ldconfigsoft_paths="${ldconfigsoft_paths} `cat ${_files} | sort -u`" 72294295Simp fi 73294295Simp fi 74294295Simp done 75294295Simp _LDC="" 76294295Simp for i in ${ldconfigsoft_paths}; do 77294295Simp if [ -r "${i}" ]; then 78294295Simp _LDC="${_LDC} ${i}" 79294295Simp fi 80294295Simp done 81294295Simp check_startmsgs && 82294295Simp echo 'Soft Float compatibility ldconfig path:' ${_LDC} 83294295Simp ${ldconfig} -soft -m ${_ins} ${_LDC} 84294295Simp ;; 85294295Simp esac 86294295Simp 87124618Smtm # Legacy aout support for i386 only 88124618Smtm case `sysctl -n hw.machine_arch` in 89124618Smtm i386) 90124618Smtm # Default the a.out ldconfig path. 91124618Smtm : ${ldconfig_paths_aout=${ldconfig_paths}} 92217073Simp _LDC="" 93217073Simp for i in /usr/lib/aout ${ldconfig_paths_aout} /etc/ld.so.conf; do 94117077Strhodes if [ -r "${i}" ]; then 95103436Speter _LDC="${_LDC} ${i}" 96103436Speter fi 97103436Speter done 98197947Sdougb check_startmsgs && echo 'a.out ldconfig path:' ${_LDC} 99124618Smtm ${ldconfig} -aout ${_ins} ${_LDC} 100124618Smtm ;; 101124618Smtm esac 102124618Smtm fi 10378344Sobrien} 10478344Sobrien 10578344Sobrienload_rc_config $name 10678344Sobrienrun_rc_command "$1" 107