10696600cSBjoern A. Zeeb#!/bin/sh 20696600cSBjoern A. Zeeb# 30696600cSBjoern A. Zeeb# $FreeBSD$ 40696600cSBjoern A. Zeeb# 50696600cSBjoern A. Zeeb 60696600cSBjoern A. Zeeb# PROVIDE: ldconfig 70696600cSBjoern A. Zeeb# REQUIRE: FILESYSTEMS 80696600cSBjoern A. Zeeb# BEFORE: DAEMON 90696600cSBjoern A. Zeeb 100696600cSBjoern A. Zeeb. /etc/rc.subr 110696600cSBjoern A. Zeeb 120696600cSBjoern A. Zeebname="ldconfig" 130696600cSBjoern A. Zeebdesc="Configure the shared library cache" 140696600cSBjoern A. Zeebldconfig_command="/sbin/ldconfig" 150696600cSBjoern A. Zeebstart_cmd="ldconfig_start" 160696600cSBjoern A. Zeebstop_cmd=":" 170696600cSBjoern A. Zeeb 180696600cSBjoern A. Zeebldconfig_start() 190696600cSBjoern A. Zeeb{ 200696600cSBjoern A. Zeeb local _files _ins 210696600cSBjoern A. Zeeb 220696600cSBjoern A. Zeeb _ins= 230696600cSBjoern A. Zeeb ldconfig=${ldconfig_command} 240696600cSBjoern A. Zeeb checkyesno ldconfig_insecure && _ins="-i" 250696600cSBjoern A. Zeeb if [ -x "${ldconfig_command}" ]; then 260696600cSBjoern A. Zeeb _LDC="/lib /usr/lib" 270696600cSBjoern A. Zeeb for i in ${ldconfig_local_dirs}; do 280696600cSBjoern A. Zeeb if [ -d "${i}" ]; then 290696600cSBjoern A. Zeeb _files=`find ${i} -type f` 300696600cSBjoern A. Zeeb if [ -n "${_files}" ]; then 310696600cSBjoern A. Zeeb ldconfig_paths="${ldconfig_paths} `cat ${_files} | sort -u`" 320696600cSBjoern A. Zeeb fi 330696600cSBjoern A. Zeeb fi 340696600cSBjoern A. Zeeb done 350696600cSBjoern A. Zeeb for i in ${ldconfig_paths} /etc/ld-elf.so.conf; do 360696600cSBjoern A. Zeeb if [ -r "${i}" ]; then 370696600cSBjoern A. Zeeb _LDC="${_LDC} ${i}" 380696600cSBjoern A. Zeeb fi 390696600cSBjoern A. Zeeb done 40*325ebf37SJose Luis Duran startmsg 'ELF ldconfig path:' ${_LDC} 410696600cSBjoern A. Zeeb ${ldconfig} -elf ${_ins} ${_LDC} 420696600cSBjoern A. Zeeb 439da3dfffSMateusz Guzik machine_arch=$(sysctl -n hw.machine_arch) 449da3dfffSMateusz Guzik 459da3dfffSMateusz Guzik case ${machine_arch} in 460696600cSBjoern A. Zeeb amd64|mips64|powerpc64) 470696600cSBjoern A. Zeeb for i in ${ldconfig_local32_dirs}; do 480696600cSBjoern A. Zeeb if [ -d "${i}" ]; then 490696600cSBjoern A. Zeeb _files=`find ${i} -type f` 500696600cSBjoern A. Zeeb if [ -n "${_files}" ]; then 510696600cSBjoern A. Zeeb ldconfig32_paths="${ldconfig32_paths} `cat ${_files} | sort -u`" 520696600cSBjoern A. Zeeb fi 530696600cSBjoern A. Zeeb fi 540696600cSBjoern A. Zeeb done 550696600cSBjoern A. Zeeb _LDC="" 560696600cSBjoern A. Zeeb for i in ${ldconfig32_paths}; do 570696600cSBjoern A. Zeeb if [ -r "${i}" ]; then 580696600cSBjoern A. Zeeb _LDC="${_LDC} ${i}" 590696600cSBjoern A. Zeeb fi 600696600cSBjoern A. Zeeb done 61*325ebf37SJose Luis Duran startmsg '32-bit compatibility ldconfig path:' ${_LDC} 620696600cSBjoern A. Zeeb ${ldconfig} -32 ${_ins} ${_LDC} 630696600cSBjoern A. Zeeb ;; 640696600cSBjoern A. Zeeb esac 650696600cSBjoern A. Zeeb 660696600cSBjoern A. Zeeb fi 670696600cSBjoern A. Zeeb} 680696600cSBjoern A. Zeeb 690696600cSBjoern A. Zeebload_rc_config $name 700696600cSBjoern A. Zeebrun_rc_command "$1" 71