ldconfig revision 294295
1#!/bin/sh 2# 3# $FreeBSD: head/etc/rc.d/ldconfig 294295 2016-01-18 21:40:18Z imp $ 4# 5 6# PROVIDE: ldconfig 7# REQUIRE: mountcritremote FILESYSTEMS 8# BEFORE: DAEMON 9 10. /etc/rc.subr 11 12name="ldconfig" 13ldconfig_command="/sbin/ldconfig" 14start_cmd="ldconfig_start" 15stop_cmd=":" 16 17ldconfig_start() 18{ 19 local _files _ins 20 21 _ins= 22 ldconfig=${ldconfig_command} 23 checkyesno ldconfig_insecure && _ins="-i" 24 if [ -x "${ldconfig_command}" ]; then 25 _LDC="/lib /usr/lib" 26 for i in ${ldconfig_local_dirs}; do 27 if [ -d "${i}" ]; then 28 _files=`find ${i} -type f` 29 if [ -n "${_files}" ]; then 30 ldconfig_paths="${ldconfig_paths} `cat ${_files} | sort -u`" 31 fi 32 fi 33 done 34 for i in ${ldconfig_paths} /etc/ld-elf.so.conf; do 35 if [ -r "${i}" ]; then 36 _LDC="${_LDC} ${i}" 37 fi 38 done 39 check_startmsgs && echo 'ELF ldconfig path:' ${_LDC} 40 ${ldconfig} -elf ${_ins} ${_LDC} 41 42 case `sysctl -n hw.machine_arch` in 43 amd64) 44 for i in ${ldconfig_local32_dirs}; do 45 if [ -d "${i}" ]; then 46 _files=`find ${i} -type f` 47 if [ -n "${_files}" ]; then 48 ldconfig32_paths="${ldconfig32_paths} `cat ${_files} | sort -u`" 49 fi 50 fi 51 done 52 _LDC="" 53 for i in ${ldconfig32_paths}; do 54 if [ -r "${i}" ]; then 55 _LDC="${_LDC} ${i}" 56 fi 57 done 58 check_startmsgs && 59 echo '32-bit compatibility ldconfig path:' ${_LDC} 60 ${ldconfig} -32 -m ${_ins} ${_LDC} 61 ;; 62 esac 63 64 case `sysctl -n hw.machine_arch` in 65 armv6) 66 for i in ${ldconfig_localsoft_dirs}; do 67 if [ -d "${i}" ]; then 68 _files=`find ${i} -type f` 69 if [ -n "${_files}" ]; then 70 ldconfigsoft_paths="${ldconfigsoft_paths} `cat ${_files} | sort -u`" 71 fi 72 fi 73 done 74 _LDC="" 75 for i in ${ldconfigsoft_paths}; do 76 if [ -r "${i}" ]; then 77 _LDC="${_LDC} ${i}" 78 fi 79 done 80 check_startmsgs && 81 echo 'Soft Float compatibility ldconfig path:' ${_LDC} 82 ${ldconfig} -soft -m ${_ins} ${_LDC} 83 ;; 84 esac 85 86 # Legacy aout support for i386 only 87 case `sysctl -n hw.machine_arch` in 88 i386) 89 # Default the a.out ldconfig path. 90 : ${ldconfig_paths_aout=${ldconfig_paths}} 91 _LDC="" 92 for i in /usr/lib/aout ${ldconfig_paths_aout} /etc/ld.so.conf; do 93 if [ -r "${i}" ]; then 94 _LDC="${_LDC} ${i}" 95 fi 96 done 97 check_startmsgs && echo 'a.out ldconfig path:' ${_LDC} 98 ${ldconfig} -aout ${_ins} ${_LDC} 99 ;; 100 esac 101 fi 102} 103 104load_rc_config $name 105run_rc_command "$1" 106