#!/bin/sh # # Configure -- configure lsof # # See the LSOF_HLP here document for usage. # # See the lsof distribution file 00XCONFIG for information on setting # environment variables for cross-configuring lsof -- e.g., for configuring # for Linux 2.3 on a machine running 2.4. Marty Leisner suggested this # support and provided the Linux Configure stanza modifications. # # When configuring for a particular dialect, , this script # requires that the subdirectory ./dialects/ contain a # shell script, named $LSOF_MK, that places its source modules in this # directory. # # $Id: Configure,v 1.162 2013/01/02 17:13:48 abe Exp $ # LSOF_CFLAGS_OVERRIDE=1 may be introduced through the environment to cause # the library Makefile's CFLAGS definition to override any in the # environment. # LSOF_DISTRIBKVM may be introduced through the environment to specify the # Sun4 kernel virtual memory type of distrib.cf LSOF_F="ddev.c dfile.c dlsof.h dmnt.c dnode*.c dproc.c dproto.h dsock.c dstore.c dzfs.h kernelbase.h machine.h machine.h.old new_machine.h __lseek.s" LSOF_HLP_BASE=./cfghlp. LSOF_HLP=${LSOF_HLP_BASE}$$ # LSOF_LOCALSUFFIX may be introduced through the environment to select a local # version of a Makefile. It is used as a suffix to $LSOF_MKF. # LSOF_MAKE may be introduced through the environment to specify a path to the # make command. It defaults to `which make`, if that is non-NULL; # otherwise to the string "make". if test "X$LSOF_MAKE" = "X" # { then LSOF_MAKE=`which make` if test "X$LSOF_MAKE" = "X" # { then LSOF_MAKE=make fi # } fi # } LSOF_MK=Mksrc # LSOF_MKC is the dialect's Mksrc create command -- default "ln -s". # LSOF_MKFC may be introduced though the environment to change the name # used for the created make file. if test "X$LSOF_MKFC" = "X" # { then LSOF_MKFC=Makefile fi # } LSOF_LIB=lib LSOF_MKF=Makefile LSOF_LIBMKF=Makefile LSOF_LIBMKFSKEL=Makefile.skel LSOF_VF=version # Make sure no other variable important to Makefile construction is # already set in the environment. # # $AFS_VICE locatiion of AFS VICE directory # (default = /usr/vice) # $LSOF_AFS AFS temporary # $LSOF_AFS_NQ AFS-not-qualified flag # $LSOF_AFSV AFS version # $LSOF_AR archive command and its arguments for making the # lsof library # $LSOF_ARCH Unix dialect architecture as a string (may be # supplied externally) # $LSOF_CC C compiler name (may be supplied externally) # $LSOF_CCV C compiler version (may be supplied externally) # $LSOF_CDIR configuration directory # $LSOF_CFGD depend options # $LSOF_CFGDN depend file name # $LSOF_CFGF C flags -- e.g., -D's # $LSOF_CFGL last lsof library loader flags -- e.g., -l's # $LSOF_CINFO Configure information for LSOF_CINFO in version.h # $LSOF_CTFH Solaris 10 and above libctf.h status # $LSOF_CTFL Solaris 10 and above -lctf status # $LSOF_DEBUG Makefile's DEBUG string # $LSOF_DINC include flags -- -I's # $LSOF_DINC_ADD include flags status # $LSOF_DOC special document (man page) directory path # $LSOF_ERR internal error flag # $LSOF_FCFGL first lsof library loader flags -- e.g., -l's # that must precede $LSOF_LIB # $LSOF_FBSD_ZFS FreeBSD $LSOF_FBSD_ZFS_MKF status # $LSOF_FBSD_ZFS_CFGF FreeBSD ZFS configure flags # $LSOF_FBSD_ZFS_MKF FreeBSD ZFS Makefile name # $LSOF_FBSD_ZFS_SYS FreeBSD ZFS system sources location # $LSOF_HOST host name (e.g., from uname -n) # $LSOF_INCLUDE directory where header files are found # (default = /usr/include) # $LSOF_LD loader name if not $LSOF_CC # $LSOF_LIB_NO if "N" don't configure the lsof library # $LSOF_LOCALSUFFIX local suffix for Makefile # $LSOF_NBSD_BUFQH NetBSD copy status # $LSOF_NBSD_PTYFS NetBSD ${NETBSD_SYS}/sys/fs/ptyfs/ copy status # $LSOF_N_UNIXV *BSD system's kernel file # $LSOF_PL patch level # $LSOF_RANLIB randomizing command for the lsof library # $LSOF_RANLIB_SUP if non-NULL $LSOF_RANLIB was supplied # $LSOF_SCRIPT_CALL Customize and Inventory scripts call status # $LSOF_SPMKF Special Makefile name # $LSOF_TGT canonical target abbreviation (shortest) # $LSOF_TMP internal temporary # $LSOF_TMP1 internal temporary # $LSOF_TMP2 internal temporary # $LSOF_TMP3 internal temporary # $LSOF_TMP4 internal temporary # $LSOF_TMP5 internal temporary # $LSOF_TMP6 internal temporary # $LSOF_TMPC_BASE base name for $LSOF_TMPC # $LSOF_TMPC temporary C source file base name # $LSOF_TSTBIGF big file capability (for $LSOF_TSTCFLG) # $LSOF_TSTCC tests CC file # $LSOF_TSTCFLG tests CFLAGS file # $LSOF_TSTDFLG dialect-specific values for $LSOF_TSTCFLG # $LSOF_TSTK64 status of 64 bit kernel (for $LSOF_TSTCFLG) # $LSOF_TSTKMEM /dev/kmem usage status (for $LSOF_TSTCFLG) # $LSOF_TSTLFF tests LDFLAGS file # $LSOF_TSTLFLG tests LDFLAGS values # $LSOF_TSTSUBD test subdirectory # $LSOF_TSTVPATH test v_path state (for $LSOF_TSTCFLG) # $LSOF_TSTXO test extra objects (for $LSOF_TSTXOC) # $LSOF_TSTXOC test extra objects file # $LSOF_UNSUP Lsof is unsupported on this dialect # $LSOF_VERS Unix dialect version as a decimal number (may # be supplied externally) # $LSOF_VSTR Unix dialect version as a string -- may be supplied # externally if test "X$AFS_VICE" = "X" # { then AFS_VICE="/usr/vice" fi # } LSOF_AFS="" LSOF_AFS_NQ="" LSOF_AFSV="" if test "X$LSOF_ARCH" = "X" # { then LSOF_ARCH="" fi # } LSOF_CDIR="" LSOF_CFGD="" LSOF_CFGDN="" LSOF_CINFO="" LSOF_CTFH=0 LSOF_CTFL=0 LSOF_DEBUG="" LSOF_DOC="" LSOF_ERR="" LSOF_FCFGL="" LSOF_FBSD_ZFS=0 LSOF_FBSD_ZFS_CFGF="" LSOF_FBSD_ZFS_MKF="Makefile.zfs" LSOF_FBSD_ZFS_SYS="" LSOF_HOST="" if test "X$LSOF_INCLUDE" = "X" # { then LSOF_DINC="" LSOF_INCLUDE="/usr/include" else LSOF_DINC="-I$LSOF_INCLUDE" fi # } LSOF_LD="" LSOF_LIB_NO="" LSOF_PL="" if test "X$LSOF_RANLIB" = "X" # { then LSOF_RANLIB="ranlib" LSOF_RANLIB_SUP="" else LSOF_RANLIB_SUP="Y" fi # } LSOF_SCRIPT_CALL="yes" LSOF_SPMKF="" LSOF_TMP1="" LSOF_TMP2="" LSOF_TMPC_BASE=./lsof_Configure_tmp_ LSOF_TMPC=${LSOF_TMPC_BASE}$$ LSOF_TSTBIGF="" LSOF_TSTSUBD="./tests" LSOF_TSTCC="${LSOF_TSTSUBD}/config.cc" LSOF_TSTCFLG="${LSOF_TSTSUBD}/config.cflags" LSOF_TSTDFLG="" LSOF_TSTK64=0 LSOF_TSTKMEM=1 LSOF_TSTLFF="${LSOF_TSTSUBD}/config.ldflags" LSOF_TSTLFLG="" LSOF_TSTVPATH=0 LSOF_TSTXO="" LSOF_TSTXOC="${LSOF_TSTSUBD}/config.xobj" LSOF_UNSUP="WARNING: unsupported dialect or version" if test "X$LSOF_VERS" = "X" # { then LSOF_VERS="" fi # } if test "X$LSOF_VSTR" = "X" # { then LSOF_VSTR="" fi # } # Establish echo type -- Berkeley or SYSV. j=`echo -n ""` if test "X$j" = "X-n " then EC="\c" EO="" else EC="" EO="-n" fi # Make sure temporary files are removed before an abnormal exit. trap 'rm -f ${LSOF_HLP_BASE}* ${LSOF_TMPC_BASE}*; exit 1' 1 2 3 15 rm -f $LSOF_HLP cat > $LSOF_HLP << LSOF_HLP Usage: Configure : -clean : clean up previous configuration -d|-dialects : display a list of supported dialect versions -h|-help : display help information -n : avoid AFS, customization, and inventory checks (****USE -d TO GET TESTED DIALECT VERSION NUMBERS****): aix|aixgcc : IBM AIX xlc (aix) or gcc (aixgcc) darwin : Apple Darwin decosf : DEC OSF/1 digital_unix|du : Digital UNIX freebsd : FreeBSD hpux|hpuxgcc : HP-UX cc (hpux) or gcc (hpuxgcc) linux : Linux netbsd : NetBSD nextstep|next|ns|nxt : NEXTSTEP openbsd : OpenBSD openstep|os : OPENSTEP osr|sco : SCO OpenServer < 6.0.0, SCO devloper's compiler osrgcc|scogcc : SCO OpenServer < 6.0.0, gcc compiler osr6 : SCO OpenServer 6.0.0, SCO compiler solaris|solariscc : Solaris gcc (solaris) or cc (solariscc) tru64 : Tru64 UNIX unixware|uw : SCO|Caldera UnixWare LSOF_HLP LSOF_TGT="no-target" args=$# while test $args -gt 0 # { do case $1 in # { -clean) if test -r $LSOF_MKFC # { then echo "$LSOF_MAKE -f $LSOF_MKFC clean" $LSOF_MAKE -f $LSOF_MKFC clean else if test -r ${LSOF_LIB}/${LSOF_LIBMKF} # { then echo "(cd ${LSOF_LIB}; $LSOF_MAKE -f ${LSOF_LIBMKF} clean)" (cd ${LSOF_LIB}; $LSOF_MAKE -f ${LSOF_LIBMKF} clean) else if test -r ${LSOF_LIB}/${LSOF_LIBMKF}.skel # { then echo "(cd ${LSOF_LIB}; $LSOF_MAKE -f ${LSOF_LIBMKF}.skel clean)" (cd ${LSOF_LIB}; $LSOF_MAKE -f ${LSOF_LIBMKF}.skel clean) fi # } fi # } fi # } if test -r ${LSOF_TSTSUBD}/Makefile # { then echo "(cd ${LSOF_TSTSUBD}; $LSOF_MAKE spotless)" (cd ${LSOF_TSTSUBD}; $LSOF_MAKE spotless) else echo '(cd ${LSOF_TSTSUBD}; rm *.o config.*)' (cd ${LSOF_TSTSUBD}; rm *.o config.*) fi # } rm -f $LSOF_F $LSOF_MKFC $LSOF_FBSD_ZFS_MKF ${LSOF_TMPC_BASE}* echo rm -f $LSOF_F $LSOF_MKFC $LSOF_FBSD_ZFS_MKF ${LSOF_TMPC_BASE}* rm -rf AFSHeaders AFSVersion solaris11 version.h vnode_if.h echo "rm -rf AFSHeaders AFSVersion solaris11 version.h vnode_if.h" rm -f ${LSOF_HLP_BASE}* cd9660_node.h lockf_owner.h fbsd_minor.h echo "rm -f ${LSOF_HLP_BASE}* cd9660_node.h lockf_owner.h fbsd_minor.h" rm -f dialects/aix/aix5/j2/j2_snapshot.h echo "rm -f dialects/aix/aix5/j2/j2_snapshot.h" rm -f dialects/sun/solaris10 # DEBUG -- for s10_44 echo "rm -f dialects/sun/solaris10" # DEBUG -- for s10_44 rm -f dialects/du/du5_sys_malloc.h echo "rm -f dialects/du/du5_sys_malloc.h" rm -f dialects/hpux/kmem/hpux_mount.h echo "rm -f dialects/hpux/kmem/hpux_mount.h" rm -rf dialects/n+obsd/include echo "rm -rf dialects/n+obsd/include" rm -f dialects/uw/uw7/vm/swap.h echo "rm -f dialects/uw/uw7/vm/swap.h" rm -f ${LSOF_LIB}/${LSOF_LIBMKF} echo "rm -f ${LSOF_LIB}/${LSOF_LIBMKF}" exit 0 ;; -d|-dialects) if test -r ./00DIALECTS -a -r ./version # { then V=`sed '/VN/s/.ds VN \(.*\)/\1/' version` echo "lsof $V has been *tested* on these UNIX dialect versions:" cat 00DIALECTS echo Although "$V hasn't been tested on other versions of these dialects," echo "it may work. Try \`Configure \` and \`make\` to see." rm -f $LSOF_HLP exit 0 else echo "Can't display UNIX dialect version information:" if test ! -r ./00DIALECTS # { then echo " ./00DIALECTS is inaccessible." fi # } if test ! -r ./version # { then echo " ./version is inaccessible." fi # } rm -f $LSOF_HLP exit 1 fi # } ;; -h|-help) cat $LSOF_HLP rm -f $LSOF_HLP exit 0 ;; -n*) LSOF_SCRIPT_CALL="no" ;; *) if test "X$LSOF_TGT" != "Xno-target" # { then echo "Only one dialect may be configured at a time." echo 'Both "$LSOF_TGT" and "$1" were specified.' cat $LSOF_HLP rm -f $LSOF_HLP exit 1 else LSOF_TGT=$1 fi # } ;; esac # } shift args=`expr $args - 1` done # } case $LSOF_TGT in # { no-target) echo "No target dialect was specified." cat $LSOF_HLP rm -f $LSOF_HLP exit 1 ;; # Configure for AIX xlc and AIX gcc. aix|aixgcc) # AIXA stands for AIX architecture. It is assigned these values in this # stanza: # # 0 The AIX version is < 5.0, or the AIX 5.0 architecture is # Power and the kernel bit size is 32. # # 1 The AIX version is >= 5.0, the AIX architecture is Power, # and the kernel bit size is 64. # # 2 The AIX version is >= 5.0 and the architecture is IA64. if test "X$LSOF_RANLIB_SUP" = "X" # { then LSOF_RANLIB="@echo \\\\\\\\c" # AIX make doesn't like a null ${RANLIB}. fi # } if test "X$LSOF_VSTR" = "X" # { then # If the AIX version isn't pre-defined, determine it. LSOF_TMP1=`uname -v` if test "X$LSOF_TMP1" = "X5" # { then # If the AIX version is 5, build the version string with `uname -rv` # output. LSOF_VSTR=`uname -r | awk '{printf "5.%d.0.0\n",\$1}'` echo "Uname reports the version is $LSOF_VSTR." else # See if oslevel can determine the version. LSOF_TMP1=/usr/bin/oslevel if test -x $LSOF_TMP1 # { then echo "Determining AIX version with $LSOF_TMP1." echo "This may take a while, depending on your maintenance level." LSOF_VSTR=`$LSOF_TMP1 | sed 's/[^0-9]*\([0-9\.]*\).*/\1/'` echo "$LSOF_TMP1 reports the version is $LSOF_VSTR." else # If oslevel can't be used, build the version string with # `uname -rv` and issue a warning. LSOF_VSTR=`uname -rv | awk '{printf "%d.%d.0.0\n",\$2,\$1}'` echo "WARNING: can't execute $LSOF_TMP1; uname -rv reports" echo " the version is $LSOF_VSTR; edit CFGF in Makefile and" echo " lib/Makefile to refine AIXV and LSOF_VSTR." fi # } fi # } fi # } if test "X$LSOF_VERS" = "X" # { then LSOF_VERS=`echo $LSOF_VSTR | sed 's/\.//g'` fi # } if test $LSOF_VERS -ge 4320 # { then LSOF_TSTBIGF=" " fi # } if test "X$LSOF_CC" = "X" # { then if test "X$LSOF_TGT" = "Xaixgcc" # { then LSOF_CC=gcc LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'` else LSOF_CC=cc fi # } fi # } LSOF_TGT="aix" echo $LSOF_CC | grep gcc > /dev/null if test $? -eq 0 # { then # Prevent use of gcc for AIX below 4.1. if test $LSOF_VERS -lt 4100 # { then echo "********************************************************" echo "* Sorry, but gcc can't be used to compile lsof for AIX *" echo "* versions less than 4.1, because of possible kernel *" echo "* structure alignment differences between it and xlc. *" echo "********************************************************" rm -f $LSOF_HLP exit 1 fi # } fi # } # Test for AFS. if test "X$AIX_HAS_AFS" != "X" # { then LSOF_AFS=$AIX_HAS_AFS fi # } if test "X$LSOF_AFS" != "Xno" # { then if test "X$LSOF_AFS" = "Xyes" -o -r ${AFS_VICE}/etc/ThisCell # { then if test "X$LSOF_AFS" != "Xyes" # { then if test "X$LSOF_SCRIPT_CALL" = "Xno" # { then if test -r ./AFSHeaders -a -r ./AFSVersion # { then LSOF_AFS="yes" fi # } else if test ! -x ./AFSConfig # { then echo "Can't find or execute the AFSConfig script" rm -f $LSOF_HLP exit 1 fi # } ./AFSConfig if test $? -eq 0 -a -r ./AFSHeaders -a -r ./AFSVersion # { then LSOF_AFS="yes" fi # } fi # } fi # } if test "X$LSOF_AFS" = "Xyes" # { then if test "X$LSOF_AFSV" = "X" # { then if test -r ./AFSVersion # { then LSOF_AFSV=`cat ./AFSVersion | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1 \2/' | awk '{printf "%d%02d\n",\$1,\$2}'` else echo "!!!FATAL: no ./AFSVersion file. It should have been" echo " created by a previous AFS configuration run." rm -f $LSOF_HLP exit 1 fi # } fi # } if test $LSOF_VERS -gt 4330 -o LSOF_AFSV -gt 305 # { then echo "!!!FATAL: Lsof does not support AFS on this combination of" echo " AIX ($LSOF_VERS) and AFS ($LSOF_AFSV) versions." echo " To disable AFS, set the value of the AIX_HAS_AFS" echo " environment variable to \"no\"." rm -f $LSOF_HLP exit 1 else LSOF_CFGF="$LSOF_CFGF -DHAS_AFS=$LSOF_AFSV" LSOF_DINC="$LSOF_DINC -I`cat ./AFSHeaders`" if test -r ${LSOF_INCLUDE}/sys/inttypes.h # { then grep "^typedef.*int16;" ${LSOF_INCLUDE}/sys/inttypes.h > /dev/null if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASINT16TYPE" fi # } grep "^typedef.*u_int32;" ${LSOF_INCLUDE}/sys/inttypes.h > /dev/null if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASUINT16TYPE" fi # } grep "^typedef.*int32;" ${LSOF_INCLUDE}/sys/inttypes.h > /dev/null if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASINT32TYPE" fi # } fi # } fi # } fi # } fi # } fi # } # Miscellaneous AIX tests if test -d ${LSOF_INCLUDE}/nfs # { then LSOF_CFGF="$LSOF_CFGF -DHAS_NFS" fi # } echo $LSOF_CC | grep cc | grep -v gcc > /dev/null if test $? -eq 0 -a $LSOF_VERS -ge 4140 -a $LSOF_VERS -lt 5000 # { then LSOF_CFGL="$LSOF_CFGL -bnolibpath" fi # } if test -r ${LSOF_INCLUDE}/sys/socket.h # { then grep AF_INET6 ${LSOF_INCLUDE}/sys/socket.h > /dev/null if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASIPv6" fi # } fi # } if test -r ${LSOF_INCLUDE}/sys/stat.h # { then grep stat64 ${LSOF_INCLUDE}/sys/stat.h > /dev/null if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASSTAT64" fi # } fi # } #DEBUG SANFS if test -r ${LSOF_INCLUDE}/sys/sanfs/sanfsnode.h??? # { #DEBUG SANFS then #DEBUG SANFS LSOF_CFGF="$LSOF_CFGF -DHAS_SANFS" #DEBUG SANFS fi # } if test $LSOF_VERS -ge 5000 # { then # This is AIX 5 or greater. if test -d ${LSOF_INCLUDE}/j2 # { then # The AIX > 5.0 system has jfs2 support. Make the necesssary definitions # and adjustments. rm -f dialects/aix/aix5/j2/j2_snapshot.h (cd dialects/aix/aix5/j2; ln -s private_j2_snapshot.h j2_snapshot.h) LSOF_CFGF="$LSOF_CFGF -DHAS_JFS2" LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/aix/aix5" if test $LSOF_VERS -ge 5200 # { then if test -r ${LSOF_INCLUDE}/j2/j2_snapshot.h # { then # The system has its own j2_snapshot.h, so make sure the # private lsof copy is discarded. rm -f dialects/aix/aix5/j2/j2_snapshot.h fi # } echo $LSOF_CC | grep gcc > /dev/null if test $? -eq 0 # { then # Test gcc version for AIX 5.2. LSOF_TMP1=`echo $LSOF_CCV | awk -F . '{printf "%d%02d",$1,$2}'` if test $LSOF_TMP1 -ge 303 # { then # Add gcc >= 3.3 option to handle use of i_dev from the wInode # anonymous structure reference in the JFS2 inode structure of # . LSOF_CFGF="$LSOF_CFGF -fms-extensions" fi # } fi #} fi # } fi # } # Determine the AIX architecture type and set AIXA accordingly. if test "X$AIX_ARCH" = "X" # { then uname -a | grep -i ia64 > /dev/null if test $? -eq 0 # { then AIX_ARCH="ia64" else AIX_ARCH="" fi # } fi # } if test "X$AIX_ARCH" = "Xia64" # { then # This is AIX >= 5 on ia64. LSOF_TSTK64=1 echo $LSOF_CC | grep gcc > /dev/null if test $? -eq 0 # { then # Quit if gcc was specified as the compiler, since the gcc options to # do an ia64 lsof compilation are unknown. echo "*************************************************************" echo "* *" echo "* !!!!!!!!!!!!!!!!!!!!! FATAL ERROR !!!!!!!!!!!!!!!!!!!!!!! *" echo "* *" echo "* Gcc can't be used to compile lsof for AIX 5 and above on *" echo "* the ia64 architecture. Consult lsof's FAQ (in the file *" echo "* 00FAQ) for more information. *" echo "* *" echo "*************************************************************" rm -f $LSOF_HLP exit 1 fi # } LSOF_TMP1=2 if test "X$LSOF_AR" = "X" # { then LSOF_AR="/usr/bin/ar cr" fi # } LSOF_CFGF="$LSOF_CFGF -q64" LSOF_CFGL="$LSOF_CFGL -lelf" else # This is AIX >= 5 on Power architecture. echo $LSOF_CC | grep cc | grep -v gcc > /dev/null if test $? -eq 0 # { then LSOF_CFGL="$LSOF_CFGL -bnolibpath" fi # } if test "X$AIX_KERNBITS" = "X" # { then # The kernel bit size wasn't predefined. Determine it by compiling # and executing a test program. rm -f ${LSOF_TMPC}.* echo "#include " > ${LSOF_TMPC}.c echo 'main(){ if (__KERNEL_32()) printf("32\\n");' >> ${LSOF_TMPC}.c echo 'else if (__KERNEL_64()) printf("64\\n");' >> ${LSOF_TMPC}.c echo 'else printf("0\\n");' >> ${LSOF_TMPC}.c echo "return(0); }" >> ${LSOF_TMPC}.c echo "Testing kernel bit size with $LSOF_CC" $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x if test ! -x ${LSOF_TMPC}.x # { then echo "!!!FATAL: can't compile test program, ${LSOF_TMPC}.c." rm -f $LSOF_HLP rm -f ${LSOF_TMPC}.* exit 1 fi # } AIX_KERNBITS=`./${LSOF_TMPC}.x` rm -f ${LSOF_TMPC}.* fi # } # Use the kernel bit size specification to select archiver and compiler # options, and to update AIXA. case $AIX_KERNBITS in # { 32) if test "X$LSOF_AR" = "X" # { then LSOF_AR="/usr/bin/ar cr" fi # } LSOF_TMP1=0 ;; 64) if test "X$LSOF_AR" = "X" # { then LSOF_AR="/usr/bin/ar -X 64 -v -q" fi # } LSOF_TSTK64=1 LSOF_TMP1=1 echo $LSOF_CC | grep gcc > /dev/null if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -maix64" else LSOF_CFGF="$LSOF_CFGF -q64" fi # } ;; *) echo "!!!FATAL: unrecognized kernel bit size: $AIX_KERNBITS" rm -f $LSOF_HLP exit 1 esac # } # Put kernel bit size information in $LSOF_CINFO and $LSOF_CFGF. echo "Kernel bit size: $AIX_KERNBITS" LSOF_TMP2="${AIX_KERNBITS} bit kernel" if test "X$LSOF_CINFO" != "X" # { then LSOF_CINFO="${LSOF_CINFO} ${LSOF_TMP2}" else LSOF_CINFO="${LSOF_TMP2}" fi # } LSOF_CFGF="$LSOF_CFGF -DAIX_KERNBITS=${AIX_KERNBITS}" fi # } LSOF_CFGF="$LSOF_CFGF -DAIXA=$LSOF_TMP1" if test "X$LSOF_TSTDFLG" = "X" # { then LSOF_TSTDFLG="-DLT_AIXA=$LSOF_TMP1" else LSOF_TSTDFLG="$LSOF_TSTDFLG -DLT_AIXA=$LSOF_TMP1" fi # } else # AIX is < 5, so set AIXA accordingly. LSOF_CFGF="$LSOF_CFGF -DAIXA=0" if test "X$LSOF_TSTDFLG" = "X" # { then LSOF_TSTDFLG="-DLT_AIXA=0" else LSOF_TSTDFLG="$LSOF_TSTDFLG -DLT_AIXA=0" fi # } fi #} LSOF_CFGF="$LSOF_CFGF -DAIXV=$LSOF_VERS" LSOF_DIALECT_DIR=aix echo $LSOF_CC | grep gcc > /dev/null if test $? -eq 0 # { then # Do gcc tests. if test $LSOF_VERS -ge 4100 -a $LSOF_VERS -lt 4200 # { then if test "X$AIX_USHACK" = "X" # { then # Compile and run a gcc test program to evaluate the user structure. rm -f ${LSOF_TMPC}.* echo "#include " > ${LSOF_TMPC}.c echo "#include " >> ${LSOF_TMPC}.c echo "main(){exit((offsetof(struct user, U_irss) & 0x7) ? 1 : 0);}" >>${LSOF_TMPC}.c echo "Testing user.h with $LSOF_CC" $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x if ! ${LSOF_TMPC}.x # { then LSOF_TMP1=1 else LSOF_TMP1=0 fi # } rm -f ${LSOF_TMPC}.* else if test "$AIX_USHACK" = "Y" -o "$AIX_USHACK" = "y" # { then LSOF_TMP1=1 else LSOF_TMP1=0 fi # } fi # } if test ${LSOF_TMP1} -eq 1 # { then echo "Applying gcc AIX 4.1+ user struct alignment hack" rm -rf ./dialects/aix/aix$LSOF_VERS mkdir ./dialects/aix/aix$LSOF_VERS mkdir ./dialects/aix/aix${LSOF_VERS}/sys sed 's/U_irss\[/dummy_for_alignment, U_irss\[/' < ${LSOF_INCLUDE}/sys/user.h > ./dialects/aix/aix${LSOF_VERS}/sys/user.h LSOF_CFGF="$LSOF_CFGF -U_LONG_LONG -I`pwd`/dialects/aix/aix$LSOF_VERS" fi # } fi # } else # Get xlc version number rm -f ${LSOF_TMPC}.* echo "main(){}" > ${LSOF_TMPC}.c echo "Getting version number of ${LSOF_CC}." $LSOF_CC -c ${LSOF_TMPC}.c -I${LSOF_INCLUDE} -o ${LSOF_TMPC}.o -qlist > /dev/null 2>&1 LSOF_CCV=`head -1 ${LSOF_TMPC}.lst | sed 's/\(.*\) ---.*/\1/'` rm ${LSOF_TMPC}.* echo "The version is \"${LSOF_CCV}\"." echo $LSOF_CCV | grep "Version [0-9]" > /dev/null if test $? -eq 0 # { then LSOF_TMP=`echo $LSOF_CCV | sed 's/.*Version \([0-9]*\).*/\1/'` if test "X$LSOF_TMP" != "X" -a $LSOF_TMP -ge 4 # { then if test $LSOF_TMP -ge 6 # { then LSOF_CFGF="$LSOF_CFGF -qmaxmem=-1" else LSOF_CFGF="$LSOF_CFGF -qmaxmem=16384" fi # } fi # } fi # } fi # } if test $LSOF_VERS -ge 5300 # { then LSOF_UNSUP="" fi # } ;; # Configure for Apple Darwin. darwin) if test "X$LSOF_CC" = "X" # { then LSOF_CC=cc LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'` fi # } if test "X$LSOF_VSTR" = "X" # { then LSOF_VSTR=`uname -r` fi # } if test "X$LSOF_VERS" = "X" # { then # If the Darwin / Mac OS X version isn't pre-defined, determine it. case $LSOF_VSTR in # { 1.2*) LSOF_VERS=120 ;; 1.3*) LSOF_VERS=130 ;; 1.4*) LSOF_VERS=140 ;; 5.[012]*) LSOF_VERS=500 ;; 5.[3-9]*) LSOF_VERS=530 ;; 6.*) LSOF_VERS=600 ;; 7.*) # Mac OS X 10.3 (Panther) LSOF_VERS=700 ;; 8.*) # Mac OS X 10.4 (Tiger) LSOF_VERS=800 ;; 9.*) # Mac OS X 10.5 (Leopard) LSOF_VERS=900 ;; 10.*) # Mac OS X 10.6 (SnowLeopard) LSOF_VERS=1000 ;; 11.*) # Mac OS X 10.7 (Lion) LSOF_VERS=1100 ;; 12.*) # Next Mac OS X LSOF_VERS=1200 ;; *) echo Unknown Darwin release: `uname -r` echo Assuming Darwin 11.0 LSOF_VERS=1100 ;; esac # } fi # } # Do Darwin version-specific stuff. case $LSOF_VERS in # { 120|130) LSOF_TMP1="hfs/hfs.h hfs/hfs_macos_defs.h miscfs/devfs/devfsdefs.h miscfs/devfs/devfs_proto.h miscfs/fdesc/fdesc.h" ;; 140|500) LSOF_TMP1="hfs/hfs.h hfs/hfs_macos_defs.h hfs/rangelist.h miscfs/devfs/devfsdefs.h miscfs/devfs/devfs_proto.h miscfs/fdesc/fdesc.h" ;; 530) LSOF_TMP1="hfs/hfs.h hfs/hfs_macos_defs.h hfs/rangelist.h miscfs/devfs/devfsdefs.h miscfs/devfs/devfs_proto.h miscfs/fdesc/fdesc.h net/ndrv.h net/ndrv_var.h" ;; 600) LSOF_CFGF="$LSOF_CFGF -DHASIPv6" LSOF_TMP1="hfs/hfs.h hfs/hfs_catalog.h hfs/hfs_cnode.h hfs/hfs_macos_defs.h hfs/rangelist.h miscfs/devfs/devfsdefs.h miscfs/devfs/devfs_proto.h miscfs/fdesc/fdesc.h net/ndrv_var.h net/raw_cb.h netinet/ip_var.h netinet/tcp_var.h" ;; 700) LSOF_CFGF="$LSOF_CFGF -DHASIPv6" LSOF_TMP1="hfs/hfs.h hfs/hfs_catalog.h hfs/hfs_cnode.h hfs/hfs_macos_defs.h hfs/rangelist.h miscfs/devfs/devfsdefs.h miscfs/devfs/devfs_proto.h miscfs/fdesc/fdesc.h net/ndrv_var.h net/raw_cb.h netinet/ip_var.h netinet/tcp_var.h sys/eventvar.h" ;; 800) LSOF_CFGF="$LSOF_CFGF -DHASIPv6" LSOF_TMP1="net/ndrv_var.h net/raw_cb.h netinet/ip_var.h netinet/tcp_var.h sys/eventvar.h sys/file_internal.h sys/mount_internal.h sys/proc_internal.h sys/vnode_internal.h" ;; 900|1000|1100) LSOF_CFGF="$LSOF_CFGF -DHASIPv6" LSOF_TMP1="" LSOF_UNSUP="" LSOF_TSTBIGF=" " # enable LTbigf test if test $LSOF_VERS -eq 900 # { then LSOF_CFGF="$LSOF_CFGF -DNEEDS_MACH_PORT_T" fi # } ;; 1200) LSOF_CFGF="$LSOF_CFGF -DHASIPv6" LSOF_TMP1="" ;; *) echo "Unsupported Darwin version: $LSOF_VERS" rm -f $LSOF_HLP exit 1 ;; esac # } LSOF_TMP2="" LSOF_TMP3="" LSOF_TMP4="" LSOF_CFGF="$LSOF_CFGF -mdynamic-no-pic" LSOF_CFGL="$LSOF_CFGL -lcurses" if test "X$DARWIN_XNUDIR" != "X" # { then LSOF_TMP2="${DARWIN_XNUDIR}/bsd" LSOF_TMP3="${DARWIN_XNUDIR}/osfmk" LSOF_TMP4="" else LSOF_TMP2="${DARWIN_XNU_HEADERS}/System/Library/Frameworks/Kernel.framework/Versions/A/PrivateHeaders" LSOF_TMP3="${DARWIN_XNU_HEADERS}/System/Library/Frameworks/System.framework/Versions/B/PrivateHeaders" LSOF_TMP4="" if test "X$DARWIN_XNU_HEADERS" != "X" # { then LSOF_TMP4="${DARWIN_XNU_HEADERS}/usr/include" fi # } fi # } # Test Darwin base. if test "X$DARWIN_BASE" = "X" -o "X$DARWIN_BASE" = "Xlibproc" # { then LSOF_TMP5="" if test $LSOF_VERS -ge 800 -o "X$DARWIN_BASE" = "Xlibproc" # { then if test -r ${LSOF_INCLUDE}/libproc.h # { then DARWIN_BASE="libproc" else if test -r ${LSOF_INCLUDE}/../local/include/libproc.h # { then DARWIN_BASE="libproc" LSOF_TMP5="-I${LSOF_INCLUDE}/../local/include" else echo "FATAL: can't find libproc.h" rm -f $LSOF_HLP exit 1 fi # } fi # } else # The default Darwin base is /dev/kmem. DARWIN_BASE="/dev/kmem" fi # } fi # } if test "X$DARWIN_BASE" = "Xlibproc" # { then # Configure for libproc-based Darwin lsof. echo "Configuring libproc-based Darwin lsof" LSOF_CINFO="libproc-based" LSOF_DIALECT_DIR=darwin/libproc if test $LSOF_VERS -lt 1000 # { then LSOF_CFGL="$LSOF_CFGL -lproc" fi # } LSOF_TSTKMEM=0 LSOF_DINC="$LSOF_DINC $LSOF_TMP5" if test ! -r ${LSOF_INCLUDE}/sys/proc_info.h # { then if test "X$LSOF_TMP5" = "X" -o ! -r ${LSOF_TMP5}/sys/proc_info.h # { then echo "FATAL: can't find sys/proc_info.h" rm -f $LSOF_HLP exit 1 fi # } fi # } # Add header file paths for libproc-based Darwin lsof. for i in $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE # { do if test -d $i -a "X$i" != "X/usr/include" # { then LSOF_DINC="$LSOF_DINC -I${i}" fi # } done # } # Do other libproc-based Darwin lsof setups. if test -r ${LSOF_INCLUDE}/utmpx.h # { then LSOF_CFGF="$LSOF_CFGF -DHASUTMPX" fi # } else if test "X$DARWIN_BASE" != "X/dev/kmem" # { then echo "Darwin base unrecognized: $DARWIN_BASE" rm -f $LSOF_HLP exit 1 fi # } # Configure for /dev/kmem-based Darwin lsof. echo "Configuring /dev/kmem-based Darwin lsof" LSOF_CINFO="/dev/kmem-based" LSOF_DIALECT_DIR=darwin/kmem # Make sure needed /dev/kmem-base XNU Darwin kernel header files are # present. LSOF_TMP5="" for i in $LSOF_TMP1 # { do LSOF_TMP6=0 for j in $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE # { do if test "X${j}" != "X" -a -r ${j}/${i} # { then LSOF_TMP6=1 break fi # } done # } if test $LSOF_TMP6 -ne 1 # { then if test "X$LSOF_TMP5" = "X" # { then LSOF_TMP5=$i else LSOF_TMP5="$LSOF_TMP5 $i" fi # } fi # } done # } if test "X$LSOF_TMP5" != "X" # { then # If any Darwin XNU kernel header files are missing, call the # get-hdr-loc.sh script to find the path. LSOF_TMP6=`pwd`/dialects/darwin/get-hdr-loc.sh if test ! -x $LSOF_TMP6 # { then echo "FATAL: can't execute: $LSOF_TMP6" rm -f $LSOF_HLP exit 1 fi # } DARWIN_XNUDIR=`$LSOF_TMP6 $LSOF_TMP5` if test $? -ne 0 # { then echo "FATAL: $LSOF_TMP6 returns: $DARWIN_XNUDIR" rm -f $LSOF_HLP exit 1 fi # } LSOF_TMP2="${DARWIN_XNUDIR}/bsd" LSOF_TMP3="${DARWIN_XNUDIR}/osfmk" LSOF_TMP4="" fi # } # Add header file paths for /dev/kmem-based Darwin lsof. for i in $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE # { do if test -d $i -a "X$i" != "X/usr/include" # { then LSOF_DINC="$LSOF_DINC -I${i}" fi # } done # } # Make conditional feature definitions for /dev/kmem-based Darwin lsof. for i in $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE # { do if test "X${i}" != "X" -a -r ${i}/sys/namei.h # { then grep -q nc_vpid ${i}/sys/namei.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASNCVPID" fi # } break fi # } done # } for i in $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE # { do if test "X${i}" != "X" # { then if test $LSOF_VERS -ge 800 # { then if test -r ${i}/sys/file_internal.h # { then grep -q DTYPE_KQUEUE ${i}/sys/file_internal.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASKQUEUE" fi # } break fi # } else if test $LSOF_VERS -ge 700 # { then if test -r ${i}/sys/file.h # { then grep -q DTYPE_KQUEUE ${i}/sys/file.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASKQUEUE" fi # } fi # } break fi # } fi # } fi # } done # } LSOF_CFGF="$LSOF_CFGF -DHAS9660FS" fi # } LSOF_CFGF="$LSOF_CFGF -DDARWINV=$LSOF_VERS" LSOF_CFLAGS_OVERRIDE=1 ;; # Configure for DEC OSF/1, Digital UNIX, or Tru64 UNIX. digital_unix|du|decosf|tru64) LSOF_TGT="du" LSOF_TSTBIGF=" " LSOF_TSTK64=1 if test "X$LSOF_DINC" = "X" # { then LSOF_DINC="-I/usr/include" fi # } if test "X$LSOF_VSTR" = "X" # { then LSOF_VSTR=`uname -r` fi # } if test "X$LSOF_VERS" = "X" # { then # If the DEC OSF/1, Digital UNIX, or Tru64 UNIX version isn't # predefined, determine it. case $LSOF_VSTR in # { V2.0) LSOF_VERS=20000 ;; V3.0) LSOF_VERS=30000 ;; V3.2) LSOF_VERS=30200 ;; ?4.0) LSOF_TSTXO="../lib/snpf.o" LSOF_VERS=40000 ;; ?5.0) LSOF_VERS=50000 ;; ?5.1) LSOF_VERS=50100 ;; *) echo "WARNING: unknown version; assuming version is 2.0" LSOF_VERS=20000 ;; esac # } fi # } # Do DEC OSF/1, Digital UNIX, or Tru64 UNIX version specific stuff. case $LSOF_VERS in # { 20000) LSOF_CFGF="$LSOF_CFGF -Olimit 1024" LSOF_TMP1="/sys" ;; 30000) LSOF_CFGF="$LSOF_CFGF -Olimit 1024" LSOF_TMP1="/sys" LSOF_TMP2=-DUSELOCALREADDIR ;; 30200) LSOF_CFGF="$LSOF_CFGF -Olimit 1024" LSOF_TMP1="/sys" LSOF_TMP2=-DUSELOCALREADDIR ;; 40000) LSOF_TMP1="/usr/sys" ;; 50000|50100) LSOF_CFGF="$LSOF_CFGF -DUSE_STAT" LSOF_TMP1="/usr/sys" ;; *) echo "WARNING: unknown version: $LSOF_VERS" rm -f $LSOF_HLP exit 1 ;; esac # } if test "X$DU_SYSDIR" = "X" # { then DU_SYSDIR=$LSOF_TMP1 fi # } LSOF_HOST=`uname -n` if test "X$DU_CDIR" = "X" # { then LSOF_CDIR=`expr $LSOF_HOST : '\([^\.]*\)\..*$'` if test "X$LSOF_CDIR" = "X" # { then LSOF_CDIR=$LSOF_HOST fi # } LSOF_CDIR=`echo $LSOF_CDIR | tr a-z A-Z` else LSOF_CDIR=$DU_CDIR fi # } LSOF_LOOP=1 while test $LSOF_LOOP = 1 # { do if test -d ${DU_SYSDIR}/$LSOF_CDIR # { then echo "Using header files in ${DU_SYSDIR}/$LSOF_CDIR" LSOF_LOOP=0 else cat << .CAT_MARK Please enter the name of the subdirectory in $DU_SYSDIR that contains the configuration files for this host. Usually its name would be $LSOF_CDIR, but that subdirectory doesn't seem to exist. The lsof compilation needs header files specific to this machine's configuration found in that directory. If you can't specify the appropriate configuration subdirectory, quit this Configure step now and generate a proper configuration subdirectory with the kernel generation process. .CAT_MARK echo "$DU_SYSDIR contains:" echo "" ls -CF $DU_SYSDIR echo "" echo -n "Configuration subdirectory name? " read LSOF_CDIR LSOF_EXCESS if test "X$LSOF_CDIR" = "X" -o ! -d ${DU_SYSDIR}/$LSOF_CDIR # { then echo "" echo Cannot access directory ${DU_SYSDIR}/$LSOF_CDIR. fi # } fi # } done # } # Determine the ADVFS file system version. if test "X$DU_ADVFSV" = "X" # { then echo "Determining the ADVFS version -- this will take a while." LSOF_ADVFSV=`/usr/sbin/setld -i | grep "^OSFADVFSBIN[0-9]" | sed 's/\([^ ]*\).*/\1/' | sort -u | tail -1 | sed 's/OSFADVFSBIN//'` else LSOF_ADVFSV=$DU_ADVFSV fi # } case $LSOF_ADVFSV in # { 1*) LSOF_ADVFSV=100 echo "The ADVFS version is 1." ;; 2*) LSOF_ADVFSV=200 echo "The ADVFS version is 2." ;; 3*) LSOF_ADVFSV=300 echo "The ADVFS version is 3." ;; 4*) LSOF_ADVFSV=400 echo "The ADVFS version is 4." ;; 5*) LSOF_ADVFSV=500 echo "The ADVFS version is 5." ;; *) echo "The ADVFS version is unknown; it will be assumed to be 1." LSOF_ADVFSV=100 ;; esac # } LSOF_CFGF="$LSOF_CFGF -DDUV=$LSOF_VERS -DADVFSV=$LSOF_ADVFSV $LSOF_TMP2" if test "X$DU_SYSINC" = "X" # { then DU_SYSINC="/usr/sys/include" fi # } LSOF_DINC="$LSOF_DINC -I${DU_SYSDIR}/$LSOF_CDIR -I$DU_SYSINC" LSOF_CFGL="$LSOF_CFGL -lmld" if test "X${DU_SHLIB}" = "X" # { then DU_SHLIB=/usr/shlib fi # } if test -r ${DU_SHLIB}/libmsfs.so # { then nm ${DU_SHLIB}/libmsfs.so | grep tag_to_path > /dev/null 2>&1 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASTAGTOPATH" LSOF_CFGL="$LSOF_CFGL -lmsfs" fi # } fi # } grep "^struct spec_node {" ${DU_SYSDIR}/include/sys/specdev.h > /dev/null 2>&1 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASSPECNODE" fi # } if test $LSOF_VERS -ge 50000 # { then # Make du5_sys_malloc.h for DU 5.0 and above. Enable strict ANSI checking # on 5.0 and 5.1A, but not 5.1B. Enable IPv6 handling. LSOF_TMP1="-std1" if test $LSOF_VERS -ge 50100 # { then LSOF_TMP1="-std" if test -x /usr/sbin/sizer # { then /usr/sbin/sizer -v | grep -q 5.1A if test $? -eq 0 # { then LSOF_TMP1="-std1" fi # } fi # } fi # } LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1" LSOF_TMP1=${LSOF_INCLUDE}/sys/malloc.h if test -r $LSOF_TMP1 # { then LSOF_TMP2=dialects/du/du5_sys_malloc.h rm -f $LSOF_TMP2 echo "#if !defined(MANUFACTURED_DU5_SYS_MALLOC_H)" > $LSOF_TMP2 echo "/* By lsof Configure:" `date` " */" >> $LSOF_TMP2 echo "#define MANUFACTURED_DU5_SYS_MALLOC_H" >> $LSOF_TMP2 grep "^#define[ ]MALLOC_NUM_BUCKETS" $LSOF_TMP1 >> $LSOF_TMP2 echo "struct percpukmembuckets {" >> $LSOF_TMP2 sed '1,/^struct percpukmembuckets/d' $LSOF_TMP1 | sed -n '1,/^};/p' >> $LSOF_TMP2 echo "#endif" >> $LSOF_TMP2 LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/du" fi # } # Enable IPv6 for Tru64 UNIX 5.0 and above. LSOF_CFGF="$LSOF_CFGF -DHASIPv6" fi # } if test -r ${LSOF_INCLUDE}/sys/namei.h then grep -q nc_vpid ${LSOF_INCLUDE}/sys/namei.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASNCVPID" fi # } fi # } LSOF_DIALECT_DIR=du ;; # Configure for FreeBSD. freebsd) LSOF_FBSD_ZFS=0 if test "X$LSOF_CC" = "X" # { then LSOF_CC=cc LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'` fi # } if test "X$LSOF_VSTR" = "X" # { then LSOF_VSTR=`uname -r` fi # } if test "X$LSOF_VERS" = "X" # { then # If the FreeBSD version isn't pre-defined, determine it. case $LSOF_VSTR in # { 1.*) LSOF_VERS=1000 ;; 2.0-*) LSOF_VERS=2000 ;; 2.0.5-*) LSOF_VERS=2005 ;; 2.1*) LSOF_VERS=2010 ;; 2.2*) LSOF_VERS=2020 ;; 3.0*) LSOF_VERS=3000 ;; 3.1*) LSOF_VERS=3010 ;; 3.2*) LSOF_VERS=3020 ;; 3.3*) LSOF_VERS=3030 ;; 3.4*) LSOF_VERS=3040 ;; 3.5*) LSOF_VERS=3050 ;; 3*) LSOF_VERS=3050 echo "!!!WARNING!!! Unsupported FreeBSD version: $LSOF_VSTR" echo "!!!WARNING!!! Configuring for FreeBSD 3.5" ;; 4.0*) LSOF_TSTBIGF=" " LSOF_VERS=4000 ;; 4.1-*) LSOF_TSTBIGF=" " LSOF_VERS=4010 ;; 4.2*) LSOF_TSTBIGF=" " LSOF_VERS=4020 ;; 4.3*) LSOF_TSTBIGF=" " LSOF_VERS=4030 ;; 4.4*) LSOF_TSTBIGF=" " LSOF_VERS=4040 ;; 4.5*) LSOF_TSTBIGF=" " LSOF_VERS=4050 ;; 4.6*) LSOF_TSTBIGF=" " LSOF_VERS=4060 ;; 4.7*) LSOF_TSTBIGF=" " LSOF_VERS=4070 ;; 4.8*) LSOF_TSTBIGF=" " LSOF_VERS=4080 ;; 4.9*) LSOF_TSTBIGF=" " LSOF_VERS=4090 ;; 4.10*) LSOF_TSTBIGF=" " LSOF_VERS=4100 ;; 4.11*) LSOF_TSTBIGF=" " LSOF_VERS=4110 ;; 4*) LSOF_VERS=4100 echo "!!!WARNING!!! Unsupported FreeBSD version: $LSOF_VSTR" echo "!!!WARNING!!! Configuring for FreeBSD 4.10" ;; 5.0*) LSOF_TSTBIGF=" " LSOF_VERS=5000 ;; 5.1*) LSOF_TSTBIGF=" " LSOF_VERS=5010 ;; 5.2*) LSOF_TSTBIGF=" " LSOF_VERS=5020 ;; 5.3*) LSOF_TSTBIGF=" " LSOF_VERS=5030 ;; 5.4*) LSOF_TSTBIGF=" " LSOF_VERS=5040 ;; 5.5*) LSOF_TSTBIGF=" " LSOF_VERS=5050 ;; 5*) LSOF_VERS=5050 echo "!!!WARNING!!! Unsupported FreeBSD version: $LSOF_VSTR" echo "!!!WARNING!!! Configuring for FreeBSD 5.5" ;; 6.0*) LSOF_TSTBIGF=" " LSOF_VERS=6000 ;; 6.1*) LSOF_TSTBIGF=" " LSOF_VERS=6010 ;; 6.2*) LSOF_TSTBIGF=" " LSOF_VERS=6020 ;; 6.3*) LSOF_TSTBIGF=" " LSOF_VERS=6030 ;; 6.4*) LSOF_TSTBIGF=" " LSOF_VERS=6040 ;; 6*) LSOF_VERS=6000 echo "!!!WARNING!!! Unsupported FreeBSD version: $LSOF_VSTR" echo "!!!WARNING!!! Configuring for FreeBSD 6.0" ;; 7.0*) LSOF_TSTBIGF=" " LSOF_VERS=7000 ;; 7.1*) LSOF_TSTBIGF=" " LSOF_VERS=7010 ;; 7.2*) LSOF_TSTBIGF=" " LSOF_VERS=7020 ;; 7.3*) LSOF_TSTBIGF=" " LSOF_VERS=7030 ;; 7.4*) LSOF_TSTBIGF=" " LSOF_VERS=7040 ;; 7*) LSOF_VERS=7000 echo "!!!WARNING!!! Unsupported FreeBSD version: $LSOF_VSTR" echo "!!!WARNING!!! Configuring for FreeBSD 7.0" ;; 8.0*) LSOF_TSTBIGF=" " LSOF_VERS=8000 ;; 8.1*) LSOF_TSTBIGF=" " LSOF_VERS=8010 ;; 8.2*) LSOF_TSTBIGF=" " LSOF_VERS=8020 ;; 8.3*) LSOF_TSTBIGF=" " LSOF_VERS=8030 ;; 9*) LSOF_TSTBIGF=" " LSOF_VERS=9000 ;; 10*) LSOF_TSTBIGF=" " LSOF_VERS=10000 ;; *) echo Unknown FreeBSD release: `uname -r` rm -f $LSOF_HLP exit 1 ;; esac # } fi # } # Clear LSOF_UNSUP message for supported versions of FreeBSD. case $LSOF_VERS in # { 4090|8020|8030|9000|10000) LSOF_UNSUP="" ;; esac # } # Get system CFLAGS from FREEBSD_MAKE_CONF (default=/etc/make.conf). if test "X$FREEBSD_MAKE_CONF" = "X" # { then FREEBSD_MAKE_CONF="/etc/make.conf" fi # } if test -r $FREEBSD_MAKE_CONF # { then LSOF_TMP1=`echo "all:\n.include " | $LSOF_MAKE -f- -VCFLAGS` LSOF_TMP=1 while test $LSOF_TMP -eq 1 # { do echo $LSOF_TMP1 | grep -q -e '-O' if test $? -eq 0 # { then if test "X$LSOF_DEBUG" = "X" then # { LSOF_DEBUG=`echo $LSOF_TMP1 | sed 's/.*\(-O[^ $]*\).*/\1/'` fi # } LSOF_TMP1=`echo $LSOF_TMP1 | sed 's/\(.*\)-O[^ $]*\(.*\)/\1 \2/' | sed 's/^ *//g' | sed 's/ */ /g' | sed 's/ *$//'` else LSOF_TMP=0 fi # } LSOF_FBSD_ZFS_CFGF="$LSOF_CFGF $LSOF_TMP1" done # } LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1" fi # } # Determine path to FreeBSD sources. LSOF_DINC_ADD=0 if test "X$FREEBSD_SYS" = "X" # { then if test -d /usr/src/sys # { then FREEBSD_SYS=/usr/src/sys else if test -d /sys # { then FREEBSD_SYS="/sys" else echo "!!!WARNING!!! No kernel sources in /usr/src/sys or /sys" fi # } fi # } fi # } # Test for thread (task) support. if test -r ${LSOF_INCLUDE}/sys/user.h # { then grep -q ki_numthreads ${LSOF_INCLUDE}/sys/user.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASTASKS" fi # } else echo "FATAL: can't find sys/user.h" rm -f $LSOF_HLP exit 1 fi # } # Do FreeBSD version-specific stuff. case $LSOF_VERS in # { 1000) LSOF_CFGF="$LSOF_CFGF -DHASPROCFS" LSOF_CFGL="$LSOF_CFGL -lutil" LSOF_DINC="$LSOF_DINC -I`pwd`/dialects/freebsd/include" if test "X$FREEBSD_KERNEL" = "X" # { then LSOF_N_UNIXV="/386bsd" else LSOF_N_UNIXV=$FREEBSD_KERNEL fi # } ;; 2000|2005|2010) LSOF_CFGL="$LSOF_CFGL -lkvm" ;; 2020) LSOF_CFGL="$LSOF_CFGL -lkvm" if test -r ${LSOF_INCLUDE}/vm/lock.h # { then LSOF_CFGF="$LSOF_CFGF -DHASVMLOCKH" fi # } ;; 3000|3010|3020|3030|3040|3050) LSOF_CFGL="$LSOF_CFGL -lkvm" if test -r ${LSOF_INCLUDE}/nfs/rpcv2.h # { then LSOF_CFGF="$LSOF_CFGF -DHASRPCV2H" fi # } if test -r ${LSOF_INCLUDE}/vm/lock.h # { then LSOF_CFGF="$LSOF_CFGF -DHASVMLOCKH" fi # } ;; *) if test -r ${LSOF_INCLUDE}/nfs/rpcv2.h # { then LSOF_CFGF="$LSOF_CFGF -DHASRPCV2H" fi # } if test -r ${LSOF_INCLUDE}/sys/namei.h # { then grep -q "^struct[ ]*namecache[ ]*{" ${LSOF_INCLUDE}/sys/namei.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASNAMECACHE" fi # } fi # } if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h # { then grep -q i_effnlink ${LSOF_INCLUDE}/ufs/ufs/inode.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASEFFNLINK=i_effnlink" fi # } fi # } if test -r ${LSOF_INCLUDE}/sys/file.h # { then grep -q f_vnode ${LSOF_INCLUDE}/sys/file.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASF_VNODE" fi # } fi # } LSOF_CFGL="$LSOF_CFGL -lkvm" if test $LSOF_VERS -ge 5000 # { then # Do FreeBSD 5 and higher version-specific stuff. if test -r ${LSOF_INCLUDE}/sys/vnode.h # { then grep VT_FDESC ${LSOF_INCLUDE}/sys/vnode.h > /dev/null 2>&1 if test $? -eq 0 # { then if test ! -r ${LSOF_INCLUDE}/fs/devfs/devfs.h # { then if test -r ${FREEBSD_SYS}/fs/devfs/devfs.h # { then LSOF_DINC_ADD=1 else echo "!!!FATAL: lsof cannot locate the devfs.h header file" echo " in ${LSOF_INCLUDE}/fs/devfs/devfs.h or" echo " ${FREEBSD_SYS}/fs/devfs/devfs.h. Consult" echo " 00FAQ for an explanation." rm -f $LSOF_HLP exit 1 fi # } fi # } fi # } fi # } # Do FreeBSD 5.2 and higher version-specific stuff. if test -r ${LSOF_INCLUDE}/wctype.h # { then LSOF_CFGF="$LSOF_CFGF -DHASWCTYPE_H" fi # } if test $LSOF_VERS -ge 5020 # { then # Determine the status of the cpumask_t typedef. rm -f ${LSOF_TMPC}.* cat > ${LSOF_TMPC}.c << .LSOF_END_HERE_DOC3 #undef _KERNEL #include main() { cpumask_t c; } .LSOF_END_HERE_DOC3 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1 LSOF_TMP1=$? rm -f ${LSOF_TMPC}.* if test $LSOF_TMP1 -ne 0 # { then # The cpumask_t typedef is unknown when _KERNEL is not defined. if test -r ${LSOF_INCLUDE}/sys/types.h \ -a -r ${LSOF_INCLUDE}/machine/_types.h # { then grep -q cpumask_t ${LSOF_INCLUDE}/sys/types.h if test $? -eq 0 # { then grep -q __cpumask_t ${LSOF_INCLUDE}/machine/_types.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASCPUMASK_T" else $LSOF_CC -E ${LSOF_INCLUDE}/machine/_types.h 2>/dev/null | grep -q __cpumask_t if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASCPUMASK_T" fi # } fi # } fi # } fi # } fi # } if test -r ${LSOF_INCLUDE}/sys/socketvar.h # { then grep -q SBS_CANT ${LSOF_INCLUDE}/sys/socketvar.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASSBSTATE" fi # } fi # } fi # } if test $LSOF_VERS -ge 5030 # { then # Do FreeBSD 5.3 and higher version-specific stuff. if test -r ${LSOF_INCLUDE}/sys/vnode.h # { then grep -q "defined(_KVM_VNODE)" ${LSOF_INCLUDE}/sys/vnode.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_KVM_VNODE" fi #} fi # } fi # } if test $LSOF_VERS -ge 6000 # { then # Do FreeBSD 6.0 and higher version-specific stuff. if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h # { then grep -q i_din2 ${LSOF_INCLUDE}/ufs/ufs/inode.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_UFS1_2" fi # } fi # } if test -r ${LSOF_INCLUDE}/sys/conf.h # { then grep -q vm_memattr_t ${LSOF_INCLUDE}/sys/conf.h if test $? -eq 0 #{ then LSOF_CFGF="$LSOF_CFGF -DHAS_VM_MEMATTR_T" fi # } grep -q "^#define minor(" ${LSOF_INCLUDE}/sys/conf.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_CONF_MINOR" rm -f fbsd_minor.h if test -r ${LSOF_INCLUDE}/sys/types.h # { then LSOF_TMP1=`grep "^#define[ ]minor(" ${LSOF_INCLUDE}/sys/types.h` if test "X$LSOF_TMP1" != "X" # { then echo "Creating fbsd_minor.h" cat > fbsd_minor.h << FBSD_MINOR1 /* * fbsd_minor.h -- created by lsof Configure script on FBSD_MINOR1 echo $EO " * $EC" >> ./fbsd_minor.h date >> ./fbsd_minor.h cat >> ./fbsd_minor.h << FBSD_MINOR2 */ #if !defined(FBSD_MINOR_H) #define FBSD_MINOR_H FBSD_MINOR2 echo $EO "${LSOF_TMP1}${EC}" >> fbsd_minor.h cat >> ./fbsd_minor.h << FBSD_MINOR3 #endif /* defined(FBSD_MINOR_H) */ FBSD_MINOR3 fi # } fi # } else if test -r ${FREEBSD_SYS}/fs/devfs/devfs_int.h # { then grep -q cdev2priv ${FREEBSD_SYS}/fs/devfs/devfs_int.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_CDEV2PRIV" fi # } fi # } fi # } grep -q "si_udev;" ${LSOF_INCLUDE}/sys/conf.h if test $? -ne 0 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_NO_SI_UDEV" fi # } grep -q si_priv ${LSOF_INCLUDE}/sys/conf.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_SI_PRIV" fi # } fi # } if test -r ${LSOF_INCLUDE}/sys/sx.h # { then LSOF_CFGF="$LSOF_CFGF -DHAS_SYS_SX_H" fi # } # Do ZFS test. Try for the newer OpenSolaris files first -- i.e., # the ones in ${FREEBSD_SYS}/cddl/contrib/opensolaris. If that fails, # try for the older ones in ${FREEBSD}/contrib/opensolaris. LSOF_FBSD_ZFS_SYS=${FREEBSD_SYS}/cddl if test ! -r ${LSOF_FBSD_ZFS_SYS}/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h # { then LSOF_FBSD_ZFS_SYS=${FREEBSD_SYS} if test ! -r ${LSOF_FBSD_ZFS_SYS}/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h # { then LSOF_FBSD_ZFS_SYS="" fi # } fi # } if test "X$LSOF_FBSD_ZFS_SYS" != "X" # { then LSOF_CFGF="$LSOF_CFGF -DHAS_ZFS" LSOF_FBSD_ZFS=1 LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DFREEBSDV=$LSOF_VERS" LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DHAS_ZFS" grep -q z_phys ${LSOF_FBSD_ZFS_SYS}/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h if test $? -eq 0 # { then LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DHAS_Z_PHYS" fi # } fi # } if test -r ${LSOF_INCLUDE}/sys/vnode.h # { then # See if the vnode contains the byte level lock pointer. grep -q v_lockf ${LSOF_INCLUDE}/sys/vnode.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_V_LOCKF" if test $LSOF_FBSD_ZFS -eq 1 # { then LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DHAS_V_LOCKF" fi # } fi # } fi # } if test -r ${LSOF_INCLUDE}/sys/lockf.h # { then # Determine the type of locking structure to which the inode or # vnode points. grep -q "^struct lockf_entry" ${LSOF_INCLUDE}/sys/lockf.h if test $? -eq 0 # { then # Build the ./lockf_owner.h header file. LSOF_TMP1="" LSOF_TMP2=0 echo "Creating ./lockf_owner.h from ${FREEBSD_SYS}/kern/kern_lockf.c" rm -f ./lockf_owner.h if test -r ${FREEBSD_SYS}/kern/kern_lockf.c # { then LSOF_TMP1=`grep -n "^struct lock_owner" ${FREEBSD_SYS}/kern/kern_lockf.c | sed 's/\([0-9]*\):.*$/\1/'` if test "X$LSOF_TMP1" != "X" # { then LSOF_TMP2=0 for i in `grep -n "};" ${FREEBSD_SYS}/kern/kern_lockf.c | sed 's/\([0-9]*\):.*$/\1/'` # { do if test $LSOF_TMP2 -eq 0 -a $i -gt $LSOF_TMP1 # { then LSOF_TMP2=$i fi # } done # } if test $LSOF_TMP2 -eq 0 # { then LSOF_TMP1="" else cat > ./lockf_owner.h << LOCKF_OWNER1 /* * lockf_owner.h -- created by lsof Configure script on LOCKF_OWNER1 echo $EO " * $EC" >> ./lockf_owner.h date >> ./lockf_owner.h cat >> ./lockf_owner.h << LOCKF_OWNER2 */ #if !defined(LOCKF_OWNER_H) #define LOCKF_OWNER_H LOCKF_OWNER2 ed -s ${FREEBSD_SYS}/kern/kern_lockf.c >> ./lockf_owner.h << LOCKF_OWNER3 ${LSOF_TMP1},${LSOF_TMP2}p LOCKF_OWNER3 if test $? -ne 0 # { then LSOF_TMP1="" else cat >> ./lockf_owner.h << LOCKF_OWNER4 #endif /* defined(LOCKF_OWNER_H) */ LOCKF_OWNER4 fi # } fi # } fi # } else echo "FATAL ERROR: can't read ${FREEBSD_SYS}/kern/kern_lockf.c" fi # } if test "X$LSOF_TMP1" != "X" -a "X$LSOF_TMP2" != "X0" # { then echo "./lockf_owner.h creation succeeded." LSOF_CFGF="$LSOF_CFGF -DHAS_LOCKF_ENTRY" else echo "FATAL ERROR: ./lockf_owner.h creation failed (see 00FAQ)" rm -f $LSOF_HLP exit 1 fi # } fi # } # Test for in6p_.port in inpcb structure. if test -r ${LSOF_INCLUDE}/netinet/in_pcb.h # { then grep -q 'in6p_.port' ${LSOF_INCLUDE}/netinet/in_pcb.h if test $? -ne 0 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_NO_6PORT" fi # } fi # } # Test for in6p_ppcb in inpcb structure. if test -r ${LSOF_INCLUDE}/netinet/in_pcb.h # { then grep -q 'in6p_ppcb' ${LSOF_INCLUDE}/netinet/in_pcb.h if test $? -ne 0 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_NO_6PPCB" fi # } fi # } if test -r ${LSOF_INCLUDE}/sys/conf.h # { then grep -q 'doadump(boolean_t)' ${LSOF_INCLUDE}/sys/conf.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DNEEDS_BOOLEAN_T" fi # } fi # | fi # } fi # } fi # } ;; esac # } LSOF_CFGF="$LSOF_CFGF -DFREEBSDV=$LSOF_VERS" if test $LSOF_VERS -lt 2000 -a "X$FREEBSD_KERNEL" = "X" # { then if test ! -x $LSOF_N_UNIXV # { then echo "Hmmm -- $LSOF_N_UNIXV doesn't appear to be your kernel file." echo "Please enter the name of the file in / that contains" echo "the kernel for this host. It must be a regular file," echo "not a directory, and must be executable." LSOF_LOOP=1 while test $LSOF_LOOP = 1 # { do echo "" echo "/ contains:" echo "" ls -CF / echo "" echo -n "Kernel file name? " read LSOF_N_UNIXV LSOF_EXCESS LSOF_N_UNIXV="/$LSOF_N_UNIXV" if test ! -d $LSOF_N_UNIXV -a -x $LSOF_N_UNIXV # { then LSOF_LOOP=0 else echo "" echo $LSOF_N_UNIXV is not a regular executable file. fi # } done # } fi # } LSOF_N_UNIXV=`echo $LSOF_N_UNIXV | sed 's#^/*#/#'` LSOF_CFGF="$LSOF_CFGF -DN_UNIXV=$LSOF_N_UNIXV" fi # } if test -r ${FREEBSD_SYS}/miscfs/fdesc/fdesc.h # { then LSOF_TMP1=${FREEBSD_SYS}/miscfs/fdesc/fdesc.h else if test $LSOF_VERS -ge 5000 -a -r ${LSOF_INCLUDE}/fs/fdescfs/fdesc.h # { then LSOF_TMP1=${LSOF_INCLUDE}/fs/fdescfs/fdesc.h else LSOF_TMP1="" fi # } fi # } if test "X$LSOF_TMP1" != "X" # { then grep -q Fctty $LSOF_TMP1 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=1" else LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=2" fi # } grep -q fd_link $LSOF_TMP1 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASFDLINK" fi # } LSOF_DINC_ADD=1 fi # } if test $LSOF_VERS -ge 5000 # { then LSOF_TMP1="fs" else LSOF_TMP1="miscfs" fi # } if test $LSOF_VERS -lt 5000 # { then if test -d ${FREEBSD_SYS}/${LSOF_TMP1}/procfs # { then LSOF_CFGF="$LSOF_CFGF -DHASPROCFS" LSOF_DINC_ADD=1 fi # } else if test -d ${FREEBSD_SYS}/${LSOF_TMP1}/pseudofs # { then LSOF_CFGF="$LSOF_CFGF -DHASPSEUDOFS" LSOF_DINC_ADD=1 fi # } fi # } if test -r ${LSOF_INCLUDE}/${LSOF_TMP1}/nullfs/null.h # { then LSOF_CFGF="$LSOF_CFGF -DHASNULLFS" else if test -r ${FREEBSD_SYS}/${LSOF_TMP1}/nullfs/null.h # { then LSOF_CFGF="$LSOF_CFGF -DHASNULLFS" LSOF_DINC_ADD=1 fi # } fi # } if test -r ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h # { then rm -f cd9660_node.h grep -q "^#ifdef [_]*KERNEL" ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h if test $? -eq 0 # { then ln -s ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h cd9660_node.h else sed -e '/^ \* Prototypes for ISOFS vnode operations/,$c\ \ The ISOFS prototypes were removed by Configure. */' \ < ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h > cd9660_node.h echo "" >> cd9660_node.h fi # } LSOF_CFGF="$LSOF_CFGF -DHAS9660FS" if test $LSOF_VERS -ge 6000 # { then grep -q "i_dev;" cd9660_node.h if test $? -ne 0 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_NO_ISO_DEV" fi # } fi # } fi # } if test -r ${LSOF_INCLUDE}/sys/namei.h then grep -q nc_vpid ${LSOF_INCLUDE}/sys/namei.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASNCVPID" fi # } fi # } if test $LSOF_DINC_ADD -eq 1 # { then if test "X$LSOF_DINC" = "X" # { then LSOF_DINC="-I${FREEBSD_SYS}" else LSOF_DINC="$LSOF_DINC -I${LSOF_INCLUDE} -I${FREEBSD_SYS}" fi # } fi # } if test -r ${LSOF_INCLUDE}/netinet/in.h # { then grep IPV6_INRIA_VERSION ${LSOF_INCLUDE}/netinet/in.h > /dev/null if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASIPv6 -DHASINRIAIPv6" fi # } fi # } echo $CFGF | grep HASIPv6 > /dev/null if test $? -ne 0 -a -r ${LSOF_INCLUDE}/netinet6/in6.h # { then LSOF_CFGF="$LSOF_CFGF -DHASIPv6" fi # } if test -r ${LSOF_INCLUDE}/utmpx.h # { then LSOF_CFGF="$LSOF_CFGF -DHASUTMPX" fi # } LSOF_DIALECT_DIR=freebsd ;; # Configure for HP-UX and HP-UX gcc. hpux|hpuxgcc) if test "X$LSOF_RANLIB_SUP" = "X" # { then LSOF_RANLIB="" fi # } if test "X$LSOF_VSTR" = "X" # { then LSOF_VSTR=`uname -r` fi # } if test "X$LSOF_VERS" = "X" # { then # If the HP-UX version isn't pre-defined, determine it. LSOF_VERS=`echo $LSOF_VSTR | awk -F. '{printf "%d%02d",\$2,\$3}'` fi # } if test $LSOF_VERS -ge 1020 # { then LSOF_TSTBIGF="-D_LARGEFILE64_SOURCE" fi # } # Determine compiler. if test "X$LSOF_CC" = "X" # { then if test "X$LSOF_TGT" = "Xhpuxgcc" # { then LSOF_CC=gcc else if test "X$HPUX_CCDIR1" = "X" # { then HPUX_CCDIR1="/bin" fi # } if test "X$HPUX_CCDIR2" = "X" # { then HPUX_CCDIR2="/usr/ccs/bin" fi # } if test -x ${HPUX_CCDIR1}/cc # { then LSOF_CC=${HPUX_CCDIR1}/cc else if test -x ${HPUX_CCDIR2}/cc # { then LSOF_CC=${HPUX_CCDIR2}/cc else echo "No executable cc in $HPUX_CCDIR1 or $HPUX_CCDIR2" rm -f $LSOF_HLP exit 1 fi # } fi # } $LSOF_CC -O < /dev/null 2>&1 | grep -q Bundled if test $? -eq 0 # { then LSOF_DEBUG="No-O" # to disable -O if test "X$HPUX_LIBC1" = "X" # { then HPUX_LIBC1="/usr/lib" fi # } if test -r ${HPUX_LIBC1}/libc.sl # { then LSOF_FCFGL="-L$HPUX_LIBC -lc" else if test "X$HPUX_LIBC2" = "X" # { then HPUX_LIBC2="/usr/lib" fi # } if test -r ${HPUX_LIBC2}/libc.sl # { then LSOF_FCFGL="-L$HPUX_LIBC2 -lc" fi # } fi # } fi # } fi # } fi # } echo $LSOF_CC | grep gcc > /dev/null if test $? -eq 0 # { then LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'` else $LSOF_CC -O < /dev/null 2>&1 | grep -q Bundled if test $? -eq 0 # { then LSOF_DEBUG="No-O" # to disable -O fi # } fi # } LSOF_TGT=hpux # Test for "const void" support. rm -f ${LSOF_TMPC}.* echo "main() { const void *x; return(0); }" >> $LSOF_TMPC.c $LSOF_CC $LSOF_TMPC.c -o $LSOF_TMPC.x > /dev/null 2>&1 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_CONST" fi # } rm -f ${LSOF_TMPC}.* # Test HP-UX base. if test "X$HPUX_BASE" = "X" # { then if test -d $LSOF_INCLUDE/sys/pstat -a $LSOF_VERS -ge 1111 # { then HPUX_BASE="pstat" else HPUX_BASE="/dev/kmem" fi # } fi # } if test "X$HPUX_BASE" = "Xpstat" # { then # Configure for pstat-based HP-UX lsof. LSOF_CINFO="PSTAT-based" echo "Configuring PSTAT-based HP-UX lsof" LSOF_DIALECT_DIR=hpux/pstat LSOF_CFGF="$LSOF_CFGF -DHPUXV=$LSOF_VERS -D_PSTAT64" LSOF_CFGL="$LSOF_CFGL -lnsl" LSOF_TSTKMEM=0 LSOF_TSTK64=1 ls -l $LSOF_CC | grep -q ansic LSOF_TMP1=$? ls -l $LSOF_CC | grep -q aCC if test $? -eq 0 -o $LSOF_TMP1 -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -Ae +DD32" else echo $LSOF_CC | grep -q gcc if test $? -ne 0 # { then LSOF_CFGF="$LSOF_CFGF +DD32" fi # } fi # } if test -r ${LSOF_INCLUDE}/netinet/in6.h # { then LSOF_CFGF="$LSOF_CFGF -DHASIPv6" fi # } if test -r ${LSOF_INCLUDE}/sys/pstat/stream_pstat_body.h # { then grep -q PS_STR_XPORT_DATA ${LSOF_INCLUDE}/sys/pstat/stream_pstat_body.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -D_PSTAT_STREAM_GET_XPORT" fi # } fi # } if test $LSOF_VERS -ge 1123 # { then LSOF_CFGF="$LSOF_CFGF -D_LARGEFILE64_SOURCE" fi # } else if test "X$HPUX_BASE" = "X/dev/kmem" # { then # Configure for /dev/kmem-based HP-UX lsof. if test "X$HPUX_BOOTFILE" = "X" # { then HPUX_BOOTFILE="/stand/vmunix" fi # } if test $LSOF_VERS -gt 1100 # { then echo "" echo "************************************************" echo "* *" echo "* !!!!!!!!!!!!!!! FATAL ERROR !!!!!!!!!!!!!!!! *" echo "* *" echo "* LSOF DOES NOT SUPPORT THIS VERSION OF HP-UX. *" echo "* *" echo "************************************************" echo "" rm -f $LSOF_HLP exit 1 fi # } LSOF_CFGF="$LSOF_CFGF -DHPUXV=$LSOF_VERS" LSOF_CINFO="/dev/kmem-based" LSOF_DIALECT_DIR=hpux/kmem echo "Configuring /dev/kmem-based HP-UX lsof" if test $LSOF_VERS -lt 1000 # { then if test "X$HPUX_X25DIR" = "X" # { then HPUX_X25DIR="/etc/conf" else HPUX_X25DIR=$HPUX_X25DIR fi # } if test -r ${HPUX_X25DIR}/x25/x25addrstr.h # { then LSOF_CFGF="$LSOF_CFGF -DHPUX_CCITT" LSOF_DINC="$LSOF_DINC -I$HPUX_X25DIR" fi # } fi # } if test -r ${LSOF_INCLUDE}/sys/fs/vx_inode.h -a -r ${LSOF_INCLUDE}/sys/fs/vx_hpux.h # { then LSOF_CFGF="$LSOF_CFGF -DHASVXFS" fi # } if test $LSOF_VERS -ge 1030 # { then if test "X$HPUX_KERNBITS" = "X" # { then HPUX_KERNBITS=`getconf _SC_KERNEL_BITS` fi # } LSOF_CFGF="$LSOF_CFGF -DHPUXKERNBITS=${HPUX_KERNBITS} -I`pwd`/dialects/hpux/kmem/hpux11" if test $HPUX_KERNBITS -eq 64 # { then LSOF_TSTK64=1 echo "" echo "*****************************************" echo "* *" echo "* NOTICE! Configuring for 64 bit HP-UX *" echo "* *" echo "*****************************************" echo $LSOF_CC | grep gcc > /dev/null if test $? -eq 0 # { then # Test gcc for 64 bit support, trying gcc with no options, then # with -mlp64, testing the result with file. echo "" echo "Testing $LSOF_CC for 64 bit support" rm -f ${LSOF_TMPC}.* echo "main(){}" > ${LSOF_TMPC}.c LSOF_TMP1="" $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1 if test $? -eq 0 # { then /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null if test $? -eq 0 # { then LSOF_TMP1=" " fi # } fi # } if test "X$LSOF_TMP1" = "X" # { then rm -f ${LSOF_TMPC}.x $LSOF_CC ${LSOF_TMPC}.c -mlp64 -o ${LSOF_TMPC}.x > /dev/null 2>&1 if test $? -eq 0 # { then /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null if test $? -eq 0 # { then LSOF_TMP1="-mlp64" fi # } fi # } fi # } rm -f ${LSOF_TMPC}.* if test "X$LSOF_TMP1" = "X" # { then echo "" echo "***************************************************" echo "* *" echo "* !!!!!!!!!!!!!!!!! FATAL ERROR !!!!!!!!!!!!!!!!! *" echo "* *" echo "* APPARENTLY GCC CANNOT BUILD 64 BIT EXECUTABLES. *" echo "* A COMPILER MUST BE USED THAT CAN. SEE 00FAQ *" echo "* FOR MORE INFORMATION. *" echo "* *" echo "***************************************************" echo "" rm -f $LSOF_HLP exit 1 else if test "X$LSOF_TMP1" != "X " # { then LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1" fi # } LSOF_CFGL="$LSOF_CFGL -lelf" LSOF_CINFO="${LSOF_CINFO}, 64 bit HP-UX" fi # } else # Set options for the HP-UX compiler. LSOF_CFGF="$LSOF_CFGF +DD64" LSOF_CFGL="$LSOF_CFGL -lelf" LSOF_CINFO="${LSOF_CINFO}, 64 bit HP-UX" fi # } else LSOF_CFGF="$LSOF_CFGF -D_FILE_OFFSET_BITS=64" LSOF_CINFO="${LSOF_CINFO}, 32 bit HP-UX" echo $LSOF_CC | grep gcc > /dev/null if test $? -ne 0 # { then LSOF_CFGF="$LSOF_CFGF +DAportable" fi # } fi # } LSOF_CFGL="$LSOF_CFGL -lnsl" else # When HP-UX is less than 10.30, but greater than or equal to 10, # check NFS3 rnode status. if test $LSOF_VERS -ge 1000 # { then LSOF_TMP1=0 if test "X$HPUX_RNODE3" = "X" # { then nm -x $HPUX_BOOTFILE | grep -q nfs_vnodeops3 if test $? -eq 0 # { then if test -r ${LSOF_INCLUDE}/nfs/rnode.h # { then grep -q r_fh3 ${LSOF_INCLUDE}/nfs/rnode.h if test $? -ne 0 # { then LSOF_TMP1=1 fi # } fi # } fi # } else if test "X$HPUX_RNODE3" = "X1" # { then LSOF_TMP1=1 fi # } fi # } if test $LSOF_TMP1 -eq 1 # { then LSOF_CFGF="$LSOF_CFGF -DHASRNODE3" fi # } fi # } fi # } if test $LSOF_VERS -eq 1100 # { then # Test for the ipis_s structure. If it is present, set HAS_IPC_S_PATCH. if test "X$HPUX_IPC_S_PATCH" = "X" # { then if test -x /usr/contrib/Q4/bin/q4exe # { then LSOF_TMP=/usr/contrib/Q4/bin/q4exe else LSOF_TMP=/usr/contrib/bin/q4 fi # } if test -x $LSOF_TMP # { then rm -f ${LSOF_TMPC}.out echo "" echo $EO "Looking in $HPUX_BOOTFILE for ipis_s with $LSOF_TMP ... $EC" echo "yes\\nfields -c struct ipis_s" | $LSOF_TMP $HPUX_BOOTFILE > ${LSOF_TMPC}.out 2>&1 if test $? -ne 0 # { then echo "" echo "" echo "!!!ERROR!!! $LSOF_TMP failed and produced the following output." echo "" cat ${LSOF_TMPC}.out HPUX_IPC_S_PATCH=fail else grep ipis_s ${LSOF_TMPC}.out > /dev/null 2>&1 if test $? -eq 0 # { then echo "ipis_s exists." # See if ipis_msgsqueued is present. grep ipis_msgsqueued ${LSOF_TMPC}.out > /dev/null 2>&1 if test $? -eq 0 # { then HPUX_IPC_S_PATCH=2 else HPUX_IPC_S_PATCH=1 fi # } else echo "ipis_s doesn't exist." HPUX_IPC_S_PATCH=N fi # } fi # } rm -f ${LSOF_TMPC}.out else echo "Can't locate or execute $LSOF_TMP" echo $EO "ls says: $EC" ls -ld $LSOF_TMP HPUX_IPC_S_PATCH=fail fi # } fi # } if test "X$HPUX_IPC_S_PATCH" = "Xfail" # { then echo "" echo "!!!ERROR!!! !!!ERROR!!! !!!ERROR!!! !!!ERROR!!!" echo "Configure can't use $LSOF_TMP to examine the ipis_s" echo "structure. You must do that yourself, report the result in" echo "the HPUX_IPC_S_PATCH environment variable, then repeat the" echo "Configure step. Consult the Configure script's use of" echo "$LSOF_TMP and the 00XCONFIG file for information" echo "on ipis_s testing and the setting of HPUX_IPC_S_PATCH." echo "!!!ERROR!!! !!!ERROR!!! !!!ERROR!!! !!!ERROR!!!" echo "" rm -f $LSOF_HLP exit 1 fi # } if test "X$HPUX_IPC_S_PATCH" = "X1" -o "X$HPUX_IPC_S_PATCH" = "X2" # { then LSOF_CFGF="$LSOF_CFGF -DHAS_IPC_S_PATCH=$HPUX_IPC_S_PATCH" else if test "X$HPUX_IPC_S_PATCH" != "Xn" -a "X$HPUX_IPC_S_PATCH" != "XN" # { then echo "Illegal value for HPUX_IPC_S_PATCH: $HPUX_IPC_S_PATCH" rm -f $LSOF_HLP exit 1 fi # } fi # } fi #} # Manufacture an hpux_mount.h header file with a mount struct in it, as # required. if test -r ${LSOF_INCLUDE}/sys/mount.h # { then LSOF_TMP1="dialects/${LSOF_DIALECT_DIR}/hpux_mount.h" rm -f $LSOF_TMP1 echo "#if !defined(MANUFACTURED_HPUX_SYS_MOUNT_H)" > $LSOF_TMP1 echo "#define MANUFACTURED_HPUX_SYS_MOUNT_H" >> $LSOF_TMP1 echo "/* By lsof Configure:" `date` " */" >> $LSOF_TMP1 echo "struct mount" >> $LSOF_TMP1 sed '1,/struct mount/d' ${LSOF_INCLUDE}/sys/mount.h | sed -n '1,/m_dev/p' >> $LSOF_TMP1 echo "};" >> $LSOF_TMP1 echo "#endif" >> $LSOF_TMP1 LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/${LSOF_DIALECT_DIR}" fi # } # Test for OnlineJFS. if test $LSOF_VERS -ge 1100 # { then if test "X$HPUX_HASONLINEJFS" = "X" -a -x /sbin/fs/vxfs/subtype # { then LSOF_TMP1=`/sbin/fs/vxfs/subtype` if test "X$LSOF_TMP1" = "Xvxfs3.3" then HPUX_HASONLINEJFS="Y" fi # } fi # } if test "X$HPUX_HASONLINEJFS" = "XY" -o "X$HPUX_HASONLINEJFS" = "Xy" # { then LSOF_CFGF="$LSOF_CFGF -DHASONLINEJFS" fi # } fi # } # Test for AFS. if test -r ${AFS_VICE}/etc/ThisCell # { then if test "X$LSOF_SCRIPT_CALL" = "Xno" # { then if test -r ./AFSHeaders -a -r ./AFSVersion # { then LSOF_AFS="yes" fi # } else if test ! -x ./AFSConfig # { then echo "Can't find or execute the AFSConfig script" rm -f $LSOF_HLP exit 1 fi # } ./AFSConfig if test $? -eq 0 -a -r ./AFSHeaders -a -r ./AFSVersion # { then LSOF_AFS="yes" fi # } fi # } if test "X$LSOF_AFS" = "Xyes" # { then LSOF_AFSV=`cat ./AFSVersion | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1 \2/' | awk '{printf "%d%02d\n",\$1,\$2}'` LSOF_CFGF="$LSOF_CFGF -DHAS_AFS=$LSOF_AFSV" LSOF_DINC="$LSOF_DINC -I`cat ./AFSHeaders`" fi # } fi # } else echo "HP-UX base unrecognized: $HPUX_BASE" rm -f $LSOF_HLP exit 1 fi # } fi # } ;; # Configure for Linux. linux) LSOF_TSTBIGF="-D_FILE_OFFSET_BITS=64" LSOF_TSTKMEM=0 if test "X$LSOF_CC" = "X" # { then LSOF_CC=cc LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'` fi # } if test "X$LINUX_CONF_CC" = "X" # { then LINUX_CONF_CC=$LSOF_CC fi #} LSOF_DIALECT_DIR="" if test "X$LINUX_INCL" = "X" # { then LINUX_INCL=/usr/include else LSOF_DINC="$LSOF_DINC -I${LINUX_INCL}" fi # } if test "X$LINUX_VERSION_CODE" = "X" # { then if test -r "$LINUX_INCL/linux/version.h" # { then LINUX_VERSION_CODE=`cat $LINUX_INCL/linux/version.h | sed -n 's/.\+LINUX_VERSION_CODE \([[:digit:]]\+\)$/\1/p'` fi # } fi # } LSOF_VSTR=`echo $LINUX_VERSION_CODE | perl -e '$version=; chomp($version); printf("%d.%d.%d\n", ($version >> 16) & 0xFF, ($version >> 8) & 0xFF, $version & 0xFF);'` if test "X$LSOF_VSTR" = "X" # { then LSOF_VSTR=`uname -r` fi # } if test "X$LSOF_VERS" = "X" # { then # If the Linux version isn't predefined, determine it. LSOF_VERS=`echo $LSOF_VSTR | sed 's/\./ /g' | awk '{printf "%d%d%03d",\$1,\$2,\$3}'` fi # } LSOF_CFGF="$LSOF_CFGF -DLINUXV=$LSOF_VERS" if test $LSOF_VERS -lt 21072 # { then echo "" echo "!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!" echo "! !" echo "! THE /PROC-BASED LSOF SOURCES HAVE NOT BEEN TESTED ON !" echo "! LINUX KERNELS BELOW 2.1.72, AND MAY NOT WORK ON THIS !" echo "! KERNEL. IT SHOULD USE A /DEV/KMEM-BASED LSOF. !" echo "! !" echo "!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!" echo "" else LSOF_UNSUP="" fi # } # If the Linux C library type isn't predefined, determine it. if test "X$LINUX_CLIB" = "X" # { then echo -n "Testing C library type with $LINUX_CONF_CC ... " rm -f ${LSOF_TMPC}.* cat > $LSOF_TMPC.c << .LSOF_END_HERE_DOC1 #include main() { #if defined(__GLIBC__) && defined(__GLIBC_MINOR__) printf("-DGLIBCV=%d\n",__GLIBC__*100+__GLIBC_MINOR__); #elif defined(__GLIBC__) printf("-DGLIBCV=%d00\n",__GLIBC__); #else printf("\n"); #endif return(0); } .LSOF_END_HERE_DOC1 $LINUX_CONF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x > /dev/null 2>&1 if test -x ${LSOF_TMPC}.x # { then LINUX_CLIB=`${LSOF_TMPC}.x` LSOF_TMP=$? else LINUX_CLIB="" LSOF_TMP=1 fi # } rm -f ${LSOF_TMPC}.* echo "done" if test $LSOF_TMP -ne 0 # { then echo "Cannot determine C library type; assuming it is not glibc." LINUX_CLIB="" else if test "X$LINUX_CLIB" = "X" # { then echo "The C library type is not glibc." else echo "The C library type is glibc, version \"$LINUX_CLIB\"." fi # } fi # } fi # } if test "X$LINUX_CLIB" != "X" # { then LSOF_CFGF="$LSOF_CFGF $LINUX_CLIB" fi # } # Test for IPv6 support. if test -r ${LSOF_INCLUDE}/netinet/ip6.h # { then LSOF_CFGF="$LSOF_CFGF -DHASIPv6" fi # } # Test for . if ! test -r ${LSOF_INCLUDE}/rpc/rpc.h # { then LSOF_CFGF="$LSOF_CFGF -DHASNORPC_H" fi # } # Test for SELinux support. LSOF_TMP1=0 if test "X$LINUX_HASSELINUX" = "X" # { then if test -r ${LSOF_INCLUDE}/selinux/selinux.h # { then LSOF_TMP1=1 fi # } else if test "X$LINUX_HASSELINUX" = "XY" -o "X$LINUX_HASSELINUX" = "Xy" # { then LSOF_TMP1=1 fi # } fi # } if test $LSOF_TMP1 -eq 1 # { then LSOF_CFGF="$LSOF_CFGF -DHASSELINUX" LSOF_CFGL="$LSOF_CFGL -lselinux" fi # } LSOF_DIALECT_DIR="linux" LSOF_CFGF="$LSOF_CFGF -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE" ;; # Configure for NetBSD. netbsd) if test "X$LSOF_CC" = "X" # { then LSOF_CC=cc LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'` fi # } if test "X$LSOF_VSTR" = "X" # { then LSOF_VSTR=`uname -r` fi # } if test "X$LSOF_VERS" = "X" # { then # Validate the NetBSD version. case $LSOF_VSTR in # { 1.2*) LSOF_VERS="1002000" ;; 1.3*) LSOF_VERS="1003000" ;; 1.4*) LSOF_VERS="1004000" ;; 1.5*) LSOF_TSTBIGF=" " LSOF_VERS="1005000" ;; 1.6*) LSOF_TSTBIGF=" " LSOF_VERS="1006000" ;; 1*) LSOF_VERS="1006000" echo "!!!WARNING!!! Unsupported NetBSD version: $LSOF_VSTR" echo "!!!WARNING!!! Configuring for NetBSD 1.6" ;; 2.0*) LSOF_TSTBIGF=" " LSOF_VERS="2000000" ;; 2.99.9) LSOF_TSTBIGF=" " LSOF_VERS="2099009" ;; 2.99.10) LSOF_TSTBIGF=" " LSOF_VERS="2099010" ;; 2.99.*) LSOF_TSTBIGF=" " LSOF_VERS="2099010" ;; 2*) LSOF_VERS="2000000" echo "!!!WARNING!!! Unsupported NetBSD version: $LSOF_VSTR" echo "!!!WARNING!!! Configuring for NetBSD 2.0" ;; 3.0*) LSOF_TSTBIGF=" " LSOF_VERS="3000000" ;; 3.99.*) LSOF_TSTBIGF=" " LSOF_VERS="3099000" ;; 3*) LSOF_VERS="3000000" echo "!!!WARNING!!! Unsupported NetBSD version: $LSOF_VSTR" echo "!!!WARNING!!! Configuring for NetBSD 3.0" ;; *) echo "Unknown NetBSD release: $LSOF_VSTR" echo Assuming NetBSD 1.6 LSOF_VERS="1006000" ;; esac # } fi # } # Test for legal NetBSD version. case $LSOF_VERS in # { 1002000|1003000|1004000|1005000|1006000) ;; 2000000|2099009|2099010) ;; 3000000|3099000) ;; *) echo "Unknown NetBSD version: $LSOF_VERS" rm -f $LSOF_HLP exit 1 ;; esac # } LSOF_CFGF="$LSOF_CFGF -DNETBSDV=$LSOF_VERS" LSOF_TMP1="-DN_UNIXV=/netbsd" if test -r ${LSOF_INCLUDE}/util.h # { then grep -q getbootfile ${LSOF_INCLUDE}/util.h if test $? -eq 0 # { then LSOF_CFGL="$LSOF_CFGL -lutil" LSOF_TMP1="-DHASGETBOOTFILE" fi # } fi # } LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1" if test -r ${LSOF_INCLUDE}/kvm.h # { then grep -q kvm_getproc2 ${LSOF_INCLUDE}/kvm.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASKVMGETPROC2" fi # } fi # } # Here begin the dual tests on header files that may be in $LSOF_INCLUDE # or $NETBSD_SYS. # # Note that $LSOF_TMP1 holds an indicator of the need for -I$NETBSD_SYS. # LSOF_TMP4 contains a temporary indicator of the use of $NETBSD_SYS. LSOF_TMP1=0 if test "X$NETBSD_SYS" = "X" # { then if test -d /usr/src # { then NETBSD_SYS="/usr/src/sys" else NETBSD_SYS=$LSOF_INCLUDE fi # } fi # } LSOF_TMP2="nfs/nfsproto.h" if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # { then LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2" LSOF_TMP4=0 else if test -r ${NETBSD_SYS}/$LSOF_TMP2 # { then LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2" LSOF_TMP4=1 else LSOF_TMP3="" fi # } fi # } if test "X$LSOF_TMP3" != "X" # { then LSOF_CFGF="$LSOF_CFGF -DHASNFSPROTO" if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # { then LSOF_TMP1=1 fi # } fi # } LSOF_TMP2="netinet/ip6.h" if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # { then LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2" LSOF_TMP4=0 else if test -r ${NETBSD_SYS}/$LSOF_TMP2 # { then LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2" LSOF_TMP4=1 else LSOF_TMP3="" fi # } fi # } if test "X$LSOF_TMP3" != "X" # { then LSOF_CFGF="$LSOF_CFGF -DHASIPv6" if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # { then LSOF_TMP1=1 fi # } else LSOF_TMP2="netinet/in.h" if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # { then LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2" LSOF_TMP4=0 else if test -r ${NETBSD_SYS}/$LSOF_TMP2 # { then LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2" LSOF_TMP4=1 else LSOF_TMP3="" fi # } fi # } if test "X$LSOF_TMP3" != "X" # { then grep -q IPV6_INRIA_VERSION $LSOF_TMP3 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASIPv6 -DHASINRIAIPv6" if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # { then LSOF_TMP1=1 fi # } fi # } fi # } fi # } LSOF_TMP2="miscfs/fdesc/fdesc.h" if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # { then LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2" else if test -r ${NETBSD_SYS}/$LSOF_TMP2 # { then LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2" LSOF_TMP4=1 else LSOF_TMP3="" fi # } fi # } if test "X$LSOF_TMP3" != "X" # { then grep -q Fctty $LSOF_TMP3 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=1" else LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=2" fi # } grep -q fd_link $LSOF_TMP3 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASFDLINK" fi # } if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # { then LSOF_TMP1=1 fi # } fi # } LSOF_TMP2="miscfs/nullfs/null.h" if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # { then LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2" LSOF_TMP4=0 else if test -r ${NETBSD_SYS}/$LSOF_TMP2 # { then LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2" LSOF_TMP4=1 else LSOF_TMP3="" fi # } fi # } if test "X$LSOF_TMP3" != "X" # { then LSOF_CFGF="$LSOF_CFGF -DHASNULLFS" if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # { then LSOF_TMP1=1 fi # } fi # } LSOF_TMP2="miscfs/procfs" if test -d ${LSOF_INCLUDE}/$LSOF_TMP2 # { then LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2" LSOF_TMP4=0 else if test -d ${NETBSD_SYS}/$LSOF_TMP2 # { then LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2" LSOF_TMP4=1 else LSOF_TMP3="" fi # } fi # } if test "X$LSOF_TMP3" != "X" # { then LSOF_CFGF="$LSOF_CFGF -DHASPROCFS" if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # { then LSOF_TMP1=1 fi # } if test -r ${LSOF_TMP3}/procfs.h # { then grep -q PFSroot ${LSOF_TMP3}/procfs.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASPROCFS_PFSROOT" fi # } fi # } fi # } LSOF_TMP2="sys/bufq.h" LSOF_NBSD_BUFQH=0 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # { then LSOF_CFGF="$LSOF_CFGF -DHASBUFQ_H" else if test -r ${NETBSD_SYS}/$LSOF_TMP2 # { then if test $NETBSD_SYS != $LSOF_INCLUDE # { then LSOF_CFGF="$LSOF_CFGF -DHASBUFQ_H" LSOF_NBSD_BUFQH=1 fi # } fi # } fi # } LSOF_TMP2="isofs/cd9660" if test -d ${LSOF_INCLUDE}/$LSOF_TMP2 # { then LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2" LSOF_TMP4=0 else if test -d ${NETBSD_SYS}/$LSOF_TMP2 # { then LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2" LSOF_TMP4=1 else LSOF_TMP3="" fi # } fi # } if test "X$LSOF_TMP3" != "X" # { then LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=1" if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # { then LSOF_TMP1=1 fi # } else LSOF_TMP2="fs/cd9660" if test -d ${LSOF_INCLUDE}/$LSOF_TMP2 # { then LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2" LSOF_TMP4=0 else if test -d ${NETBSD_SYS}/$LSOF_TMP2 # { then LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2" LSOF_TMP4=1 else LSOF_TMP3="" fi # } fi # } if test "X$LSOF_TMP3" != "X" # { then LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=1" if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # { then LSOF_TMP1=1 fi # } fi # } fi # } LSOF_TMP2="msdosfs" if test -d ${LSOF_INCLUDE}/$LSOF_TMP2 # { then LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2" LSOF_TMP4=0 else if test -d ${NETBSD_SYS}/$LSOF_TMP2 # { then LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2" LSOF_TMP4=1 else LSOF_TMP3="" fi # } fi # } if test "X$LSOF_TMP3" != "X" # { then LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=1" if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # { then LSOF_TMP1=1 fi # } else LSOF_TMP2="fs/msdosfs" if test -d ${LSOF_INCLUDE}/$LSOF_TMP2 # { then LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2" LSOF_TMP4=0 else if test -d ${NETBSD_SYS}/$LSOF_TMP2 # { then LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2" LSOF_TMP4=1 else LSOF_TMP3="" fi # } fi # } if test "X$LSOF_TMP3" != "X" # { then LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=2" if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # { then LSOF_TMP1=1 fi # } fi # } fi # } LSOF_TMP2="miscfs/kernfs/kernfs.h" if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # { then LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2" LSOF_TMP4=0 else if test -r ${NETBSD_SYS}/$LSOF_TMP2 # { then LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2" LSOF_TMP4=1 else LSOF_TMP3="" fi # } fi # } if test "X$LSOF_TMP3" != "X" # { then grep -q "kt_name;" $LSOF_TMP3 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASKERNFS" if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # { then LSOF_TMP1=1 fi # } grep -q "*kfs_kt;" $LSOF_TMP3 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASKERNFS_KFS_KT" fi # } fi # } fi # } LSOF_TMP2="sys/namei.h" if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # { then LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2" LSOF_TMP4=0 else if test -r ${NETBSD_SYS}/$LSOF_TMP2 # { then LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2" LSOF_TMP4=1 else LSOF_TMP3="" fi # } fi # } if test "X$LSOF_TMP3" != "X" # { then grep -q nc_vpid $LSOF_TMP3 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASNCVPID" if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # { then LSOF_TMP1=1 fi # } fi # } fi # } LSOF_TMP2="ufs/ufs/inode.h" if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # { then LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2" LSOF_TMP4=0 else if test -r ${NETBSD_SYS}/$LSOF_TMP2 # { then LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2" LSOF_TMP4=1 else LSOF_TMP3="" fi # } fi # } if test "X$LSOF_TMP3" != "X" # { then grep -q i_ffs_size $LSOF_TMP3 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASI_FFS" if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # { then LSOF_TMP1=1 fi # } else grep -q i_ffs1_size $LSOF_TMP3 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASI_FFS1" if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # { then LSOF_TMP1=1 fi # } fi # } fi # } grep -q i_ffs_effnlink $LSOF_TMP3 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASEFFNLINK=i_ffs_effnlink" if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # { then LSOF_TMP1=1 fi # } fi # } fi # } LSOF_TMP2="sys/vnode.h" LSOF_NBSD_PTYFS=0 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # { then LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2" LSOF_TMP4=0 else if test -r ${NETBSD_SYS}/$LSOF_TMP2 # { then LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2" LSOF_TMP4=1 else LSOF_TMP3="" fi # } fi # } if test "XLSOF_TMP3" != "X" # { then grep -q VT_EXT2FS $LSOF_TMP3 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASEXT2FS" if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # { then LSOF_TMP1=1 fi # } LSOF_TMP2="ufs/ufs/inode.h" if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # { then LSOF_TMP5="${LSOF_INCLUDE}/$LSOF_TMP2" LSOF_TMP6=0 else if test -r ${NETBSD_SYS}/$LSOF_TMP2 # { then LSOF_TMP5="${NETBSD_SYS}/$LSOF_TMP2" LSOF_TMP6=1 else LSOF_TMP5="" fi # } fi # } if test "X$LSOF_TMP5" != "X" # { then grep -q "*e2fs_din" $LSOF_TMP5 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASI_E2FS_PTR" if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # { then LSOF_TMP1=$LSOF_TMP6 fi # } fi # } fi # } fi # } grep -q VT_LFS $LSOF_TMP3 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASLFS" if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # { then LSOF_TMP1=1 fi # } fi # } grep -q VT_PTYFS $LSOF_TMP3 if test $? -eq 0 # { then LSOF_TMP2="fs/ptyfs/ptyfs.h" if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # { then LSOF_CFGF="$LSOF_CFGF -DHASPTYFS" else if test -r ${NETBSD_SYS}/$LSOF_TMP2 # { then if test $NETBSD_SYS != $LSOF_INCLUDE # { then LSOF_CFGF="$LSOF_CFGF -DHASPTYFS" LSOF_NBSD_PTYFS=1 fi # } fi # } fi # } fi # } if test "X$NETBSD_UVM" = "X" # { then grep -q UVM $LSOF_TMP3 if test $? -ne 0 # { then egrep -q "v_uvm;|v_uobj;" $LSOF_TMP3 if test $? -eq 0 # { then NETBSD_UVM="Y" fi # } fi # } fi # } fi # } LSOF_TMP2="nfs/nfsnode.h" if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # { then LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2" LSOF_TMP4=0 else if test -r ${NETBSD_SYS}/$LSOF_TMP2 # { then LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2" LSOF_TMP4=1 else LSOF_TMP3="" fi # } fi # } if test "X$LSOF_TMP3" != "X" # { then grep -q "*n_vattr" $LSOF_TMP3 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASNFSVATTRP" if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # { then LSOF_TMP1=1 fi # } fi # } fi # } LSOF_TMP2="sys/lockf.h" if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # { then LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2" LSOF_TMP4=0 else if test -r ${NETBSD_SYS}/$LSOF_TMP2 # { then LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2" LSOF_TMP4=1 else LSOF_TMP3="" fi # } fi # } if test "X$LSOF_TMP3" != "X" # { then grep -q vop_advlock_args $LSOF_TMP3 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_ADVLOCK_ARGS" if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # { then LSOF_TMP1=1 fi # } fi # } grep -q lf_lwp $LSOF_TMP3 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_LF_LWP" if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # { then LSOF_TMP1=1 fi # } fi # } fi # } LSOF_TMP2="sys/lwp.h" if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # { then LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2" LSOF_TMP4=0 else if test -r ${NETBSD_SYS}/$LSOF_TMP2 # { then LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2" LSOF_TMP4=1 else LSOF_TMP3="" fi # } fi # } if test "X$LSOF_TMP3" != "X" # { then LSOF_CFGF="$LSOF_CFGF -DHAS_LWP_H" if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # { then LSOF_TMP1=1 fi # } fi # } LSOF_TMP2="sys/filedesc.h" if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # { then LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2" LSOF_TMP4=0 else if test -r ${NETBSD_SYS}/$LSOF_TMP2 # { then LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2" LSOF_TMP4=1 else LSOF_TMP3="" fi # } fi # } if test "X$LSOF_TMP3" != "X" # { then grep -q "^struct cwdinfo {" $LSOF_TMP3 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASCWDINFO" if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # { then LSOF_TMP1=1 fi # } fi # } fi # } LSOF_TMP2="sys/pipe.h" if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # { then LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2" LSOF_TMP4=0 else if test -r ${NETBSD_SYS}/$LSOF_TMP2 # { then LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2" LSOF_TMP4=1 else LSOF_TMP3="" fi # } fi # } if test "X$LSOF_TMP3" != "X" # { then LSOF_CFGF="$LSOF_CFGF -DHAS_SYS_PIPEH" if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # { then LSOF_TMP1=1 fi # } fi # } if test -r ${LSOF_INCLUDE}/sys/statvfs.h # { then grep -q '^struct statvfs {' ${LSOF_INCLUDE}/sys/statvfs.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASSTATVFS" fi # } fi # } # Here end the dual NetBSD tests for header files in $LSOF_INCLUDE or # NETBSD_SYS. # # After this LSOF_TMP1 may be reused. if test $LSOF_TMP1 -eq 1 # { then LSOF_DINC="-I$LSOF_INCLUDE -I$NETBSD_SYS" fi # } # Build special header files, as required. rm -rf dialects/n+obsd/include if test "X$NETBSD_UVM" = "XY" -o "X$NETBSD_UVM" = "Xy" # { then mkdir dialects/n+obsd/include touch dialects/n+obsd/include/opt_uvmhist.h touch dialects/n+obsd/include/opt_lockdebug.h LSOF_CFGF="$LSOF_CFGF -DUVM -I`pwd`/dialects/n+obsd/include" if test -d ${LSOF_INCLUDE}/uvm # { then LSOF_CFGF="$LSOF_CFGF -DHAS_UVM_INCL" fi # } fi # } LSOF_TMP2="sys/mount.h" if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # { then LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2" else if test -r ${NETBSD_SYS}/$LSOF_TMP2 # { then LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2" else LSOF_TMP3="" fi # } fi # } if test "X$LSOF_TMP3" != "X" # { then # Build a local NetBSD netexport.h header file for possible use by # . Make sure CFGL contains a -I for it. LSOF_TMP1=${LSOF_TMPC}.edscr LSOF_TMP2=${LSOF_TMPC}.netcred LSOF_TMP3=${LSOF_TMPC}.netexport LSOF_TMP4=dialects/n+obsd/include/netexport.h if test ! -d dialects/n+obsd/include # { then mkdir dialects/n+obsd/include fi # } rm -f $LSOF_TMP1 $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 echo "/^struct netcred" > $LSOF_TMP1 echo "1,.-1d" >> $LSOF_TMP1 echo "/^};" >> $LSOF_TMP1 echo "1,.w $LSOF_TMP2" >> $LSOF_TMP1 ed ${LSOF_INCLUDE}/sys/mount.h < $LSOF_TMP1 > /dev/null 2>&1 rm -f $LSOF_TMP1 echo "/^struct netexport" > $LSOF_TMP1 echo "1,.-1d" >> $LSOF_TMP1 echo "/^};" >> $LSOF_TMP1 echo "1,.w $LSOF_TMP3" >> $LSOF_TMP1 ed ${LSOF_INCLUDE}/sys/mount.h < $LSOF_TMP1 > /dev/null 2>&1 echo "/*" > $LSOF_TMP4 echo " * netexport.h" >> $LSOF_TMP4 echo -n " * Created by Configure: " >> $LSOF_TMP4 echo `date` >> $LSOF_TMP4 echo " */" >> $LSOF_TMP4 echo "" >> $LSOF_TMP4 echo "#if !defined(NETEXPORT_H)" >> $LSOF_TMP4 echo "#define NETEXPORT_H" >> $LSOF_TMP4 echo "" >> $LSOF_TMP4 echo "#include " >> $LSOF_TMP4 echo "" >> $LSOF_TMP4 if test -r $LSOF_TMP2 # { then cat $LSOF_TMP2 >> $LSOF_TMP4 echo "" >> $LSOF_TMP4 fi # } if test -r $LSOF_TMP3 # { then cat $LSOF_TMP3 >> $LSOF_TMP4 fi # } echo "#endif /* !defined(NETEXPORT_H) */" >> $LSOF_TMP4 rm -f $LSOF_TMP1 $LSOF_TMP2 $LSOF_TMP3 echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1 if test $? -ne 0 # { then LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include" fi # } fi # } if test $LSOF_NBSD_BUFQH -eq 1 # { then # Make a local copy of $NETBSD_SYS/sys/bufq.h. if test ! -d dialects/n+obsd/include # { then mkdir dialects/n+obsd/include fi # } if test ! -d dialects/n+obsd/include/sys # { then mkdir dialects/n+obsd/include/sys fi # } cp $NETBSD_SYS/sys/bufq.h dialects/n+obsd/include/sys echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1 if test $? -ne 0 # { then LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include" fi # } fi # } if test $LSOF_NBSD_PTYFS -eq 1 # { then # Make a local copy of $NETBSD_SYS/sys/fs/ptyfs/. if test ! -d dialects/n+obsd/include # { then mkdir dialects/n+obsd/include fi # } if test ! -d dialects/n+obsd/include/fs # { then mkdir dialects/n+obsd/include/fs fi # } rm -rf dialects/n+obsd/include/fs/ptyfs mkdir dialects/n+obsd/include/fs/ptyfs cp $NETBSD_SYS/fs/ptyfs/*.h dialects/n+obsd/include/fs/ptyfs echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1 if test $? -ne 0 # { then LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include" fi # } fi # } LSOF_CFGL="$LSOF_CFGL -lkvm" LSOF_DIALECT_DIR=n+obsd ;; # Configure for NeXTSTEP or OPENSTEP. nextstep|next|ns|nxt|openstep|os) LSOF_TGT="ns" LSOF_TSTXO="../lib/snpf.o" if test "X$LSOF_AR" = "X" # { then LSOF_AR="rm -f \${LIB}; ar cr" fi # } if test "X$LSOF_VSTR" = "X" # { then LSOF_VSTR=`hostinfo | sed -n 's/.*NeXT Mach \([0-9\.]*\).*/\1/p'` fi # } if test "X$LSOF_VERS" = "X" # { then # If the NeXSTEP version isn't predefined, determine it. LSOF_VERS=`echo $LSOF_VSTR | sed -n 's/\([0-9]*\)\.\([0-9]*\)/\1\2/p'` fi # } if test "X$LSOF_CC" = "X" # { then if test -x /usr/local/bin/gcc # { then LSOF_CC=/usr/local/bin/gcc LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'` else LSOF_CC=cc LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'` fi # } fi # } echo $LSOF_CC | grep gcc > /dev/null if test $? -eq 0 # { then LSOF_CFGL="$LSOF_CFGL -w" LSOF_DEBUG="-pedantic -O" fi # } LSOF_CFGF="$LSOF_CFGF -DSTEPV=$LSOF_VERS" LSOF_DIALECT_DIR=n+os # Test for AFS. if test -r ${AFS_VICE}/etc/ThisCell # { then if test "X$LSOF_SCRIPT_CALL" = "Xno" # { then if test -r ./AFSHeaders -a -r ./AFSVersion # { then LSOF_AFS="yes" fi # } else if test ! -x ./AFSConfig # { then echo "Can't find or execute the AFSConfig script" rm -f $LSOF_HLP exit 1 fi # } ./AFSConfig if test $? -eq 0 -a -r ./AFSHeaders -a -r ./AFSVersion # { then LSOF_AFS="yes" fi # } fi # } if test "X$LSOF_AFS" = "Xyes" # { then LSOF_AFSV=`cat ./AFSVersion | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1 \2/' | awk '{printf "%d%02d\n",\$1,\$2}'` LSOF_CFGF="$LSOF_CFGF -DHAS_AFS=$LSOF_AFSV" LSOF_DINC="$LSOF_DINC -I`cat ./AFSHeaders`" fi # } fi # } ;; # Configure for OpenBSD. (OpenBSD uses NetBSD dialect sources and version # numbering. openbsd) if test "X$LSOF_CC" = "X" # { then LSOF_CC=cc LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'` fi # } if test "X$LSOF_VSTR" = "X" # { then LSOF_VSTR=`uname -r` fi # } if test "X$LSOF_VERS" = "X" # { then # If the OpenBSD version isn't pre-defined, determine it. case $LSOF_VSTR in # { 1*) LSOF_VERS=1020 echo "!!!WARNING!!! Unsupported OpenBSD 1.x version: $LSOF_VSTR" echo "!!!WARNING!!! Configuring for OpenBSD 1.2" ;; 2.5*) LSOF_VERS=2050 ;; 2.6*) LSOF_VERS=2060 ;; 2.7*) LSOF_TSTBIGF=" " LSOF_VERS=2070 ;; 2.8*) LSOF_TSTBIGF=" " LSOF_VERS=2080 ;; 2.9*) LSOF_TSTBIGF=" " LSOF_VERS=2090 ;; 2*) LSOF_TSTBIGF=" " LSOF_VERS=2090 echo "!!!WARNING!!! Unsupported OpenBSD 2.x version: $LSOF_VSTR" echo "!!!WARNING!!! Configuring for OpenBSD 2.9" ;; 3.0*) LSOF_TSTBIGF=" " LSOF_VERS=3000 ;; 3.1*) LSOF_TSTBIGF=" " LSOF_VERS=3010 ;; 3.2*) LSOF_TSTBIGF=" " LSOF_VERS=3020 ;; 3.3*) LSOF_TSTBIGF=" " LSOF_VERS=3030 ;; 3.4*) LSOF_TSTBIGF=" " LSOF_VERS=3040 ;; 3.5*) LSOF_TSTBIGF=" " LSOF_VERS=3050 ;; 3.6*) LSOF_TSTBIGF=" " LSOF_VERS=3060 ;; 3.7*) LSOF_TSTBIGF=" " LSOF_VERS=3070 ;; 3.8*) LSOF_TSTBIGF=" " LSOF_VERS=3080 ;; 3.9*) LSOF_TSTBIGF=" " LSOF_VERS=3090 ;; 3*) LSOF_TSTBIGF=" " LSOF_VERS=3090 echo "!!!WARNING!!! Unsupported OpenBSD 3.x version: $LSOF_VSTR" echo "!!!WARNING!!! Configuring for OpenBSD 3.9" ;; *) echo "Unknown OpenBSD release: $LSOF_VSTR" echo Assuming OpenBSD 3.9 LSOF_VERS=3090 ;; esac # } fi # } # Test for legal OpenBSD version. case $LSOF_VERS in # { 1020|2050|2060|2070|2080|2090|3000|3010|3020|3030|3040|3050|3060|3070|3080|3090) ;; *) echo "Unknown OpenBSD version: $LSOF_VERS" rm -f $LSOF_HLP exit 1 ;; esac # } LSOF_CFGF="$LSOF_CFGF -DOPENBSDV=$LSOF_VERS" if test -r /dev/ksyms # { then LSOF_CFGF="$LSOF_CFGF -DN_UNIXV=/dev/ksyms" else LSOF_CFGF="$LSOF_CFGF -DN_UNIXV=/bsd" fi if test -r ${LSOF_INCLUDE}/nfs/nfsproto.h # { then LSOF_CFGF="$LSOF_CFGF -DHASNFSPROTO" fi # } if test -r ${LSOF_INCLUDE}/netinet6/in6.h # { then LSOF_CFGF="$LSOF_CFGF -DHASIPv6" fi # } LSOF_TMP1=0 if test "X$OPENBSD_SYS" = "X" # { then OPENBSD_SYS="/sys" fi # } if test -r ${OPENBSD_SYS}/miscfs/fdesc/fdesc.h # { then grep -q Fctty ${OPENBSD_SYS}/miscfs/fdesc/fdesc.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=1" else LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=2" fi # } grep -q fd_link ${OPENBSD_SYS}/miscfs/fdesc/fdesc.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASFDLINK" fi # } LSOF_TMP1=1 fi # } if test -r ${LSOF_INCLUDE}/sys/vnode.h # { then grep -q VT_LFS ${LSOF_INCLUDE}/sys/vnode.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASLFS" fi # } fi # } if test -r ${LSOF_INCLUDE}/miscfs/nullfs/null.h # { then LSOF_CFGF="$LSOF_CFGF -DHASNULLFS" else if test -r ${OPENBSD_SYS}/miscfs/nullfs/null.h # { then LSOF_CFGF="$LSOF_CFGF -DHASNULLFS" LSOF_TMP1=1 fi # } fi # } if test -d ${OPENBSD_SYS}/miscfs/procfs # { then LSOF_CFGF="$LSOF_CFGF -DHASPROCFS" LSOF_TMP1=1 fi # } if test -d ${OPENBSD_SYS}/isofs/cd9660 # { then LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=1" LSOF_TMP1=1 else if test -d ${OPENBSD_SYS}/fs/cd9660 # { then LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=2" LSOF_TMP1=1 fi # } fi # } if test -d ${OPENBSD_SYS}/msdosfs # { then LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=1" LSOF_TMP1=1 else if test -d ${OPENBSD_SYS}/fs/msdosfs # { then LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=2" LSOF_TMP1=1 fi # } fi # } if test -r ${OPENBSD_SYS}/miscfs/kernfs/kernfs.h # { then grep -q "kt_name;" ${OPENBSD_SYS}/miscfs/kernfs/kernfs.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASKERNFS" LSOF_TMP1=1 fi # } fi # } if test $LSOF_TMP1 -eq 1 -a "X$LSOF_INCLUDE" != "X$OPENBSD_SYS" # { then LSOF_DINC="-I$LSOF_INCLUDE -I$OPENBSD_SYS" fi # } grep -q VT_EXT2FS ${LSOF_INCLUDE}/sys/vnode.h if test $? -eq 0 # { then LSOF_TMP1=1 if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h # { then grep -q "*e2fs_din" ${LSOF_INCLUDE}/ufs/ufs/inode.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASI_E2FS_PTR" fi # } grep -q "^#define[ ]i_e2din" ${LSOF_INCLUDE}/ufs/ufs/inode.h if test $? -eq 0 # { then LSOF_TMP1=2 fi # } fi # } LSOF_CFGF="$LSOF_CFGF -DHASEXT2FS=$LSOF_TMP1" fi # } if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h # { then grep -q i_effnlink ${LSOF_INCLUDE}/ufs/ufs/inode.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASEFFNLINK=i_effnlink" fi # } grep -q dinode_u ${LSOF_INCLUDE}/ufs/ufs/inode.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_DINODE_U" fi # } grep -q i_ffs1_size ${LSOF_INCLUDE}/ufs/ufs/inode.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASI_FFS1" fi # } grep -q UM_UFS ${LSOF_INCLUDE}/ufs/ufs/inode.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_UM_UFS" fi # } fi # } if test -r ${LSOF_INCLUDE}/sys/namei.h then grep -q nc_vpid ${LSOF_INCLUDE}/sys/namei.h if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASNCVPID" fi # } fi # } if test "X$OPENBSD_UVM" = "X" # { then if test -r ${LSOF_INCLUDE}/sys/vnode.h # { then grep -q UVM ${LSOF_INCLUDE}/sys/vnode.h if test $? -ne 0 # { then egrep -q "v_uvm;|v_uobj;" ${LSOF_INCLUDE}/sys/vnode.h if test $? -eq 0 # { then OPENBSD_UVM="Y" fi # } fi # } fi # } fi # } if test "X$OPENBSD_UVM" = "XY" -o "X$OPENBSD_UVM" = "Xy" # { then LSOF_CFGF="$LSOF_CFGF -DUVM" if test -d ${LSOF_INCLUDE}/uvm # { then LSOF_CFGF="$LSOF_CFGF -DHAS_UVM_INCL" fi # } fi # } if test -r ${LSOF_INCLUDE}/sys/mount.h -a $LSOF_VERS -lt 3030 # { then # Build a local OpenBSD netexport.h header file for possible use by # . Make sure CFGL contains a -I for it. LSOF_TMP1=${LSOF_TMPC}.edscr LSOF_TMP2=${LSOF_TMPC}.netcred LSOF_TMP3=${LSOF_TMPC}.netexport LSOF_TMP4=dialects/n+obsd/include/netexport.h if test ! -d dialects/n+obsd/include # { then mkdir dialects/n+obsd/include fi # } rm -f $LSOF_TMP1 $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 echo "/^struct netcred" > $LSOF_TMP1 echo "1,.-1d" >> $LSOF_TMP1 echo "/^};" >> $LSOF_TMP1 echo "1,.w $LSOF_TMP2" >> $LSOF_TMP1 ed ${LSOF_INCLUDE}/sys/mount.h < $LSOF_TMP1 > /dev/null 2>&1 rm -f $LSOF_TMP1 echo "/^struct netexport" > $LSOF_TMP1 echo "1,.-1d" >> $LSOF_TMP1 echo "/^};" >> $LSOF_TMP1 echo "1,.w $LSOF_TMP3" >> $LSOF_TMP1 ed ${LSOF_INCLUDE}/sys/mount.h < $LSOF_TMP1 > /dev/null 2>&1 echo "/*" > $LSOF_TMP4 echo " * netexport.h" >> $LSOF_TMP4 echo -n " * Created by Configure: " >> $LSOF_TMP4 echo `date` >> $LSOF_TMP4 echo " */" >> $LSOF_TMP4 echo "" >> $LSOF_TMP4 echo "#if !defined(NETEXPORT_H)" >> $LSOF_TMP4 echo "#define NETEXPORT_H" >> $LSOF_TMP4 echo "" >> $LSOF_TMP4 echo "#include " >> $LSOF_TMP4 echo "" >> $LSOF_TMP4 if test -r $LSOF_TMP2 # { then cat $LSOF_TMP2 >> $LSOF_TMP4 echo "" >> $LSOF_TMP4 fi # } if test -r $LSOF_TMP3 # { then cat $LSOF_TMP3 >> $LSOF_TMP4 fi # } echo "#endif /* !defined(NETEXPORT_H) */" >> $LSOF_TMP4 rm -f $LSOF_TMP1 $LSOF_TMP2 $LSOF_TMP3 echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1 if test $? -ne 0 # { then LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include" fi # } fi # } if test -r ${LSOF_INCLUDE}/sys/lockf.h # { then grep vop_advlock_args ${LSOF_INCLUDE}/sys/lockf.h > /dev/null if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_ADVLOCK_ARGS" fi # } fi # } if test -r ${LSOF_INCLUDE}/sys/pipe.h # { then LSOF_CFGF="$LSOF_CFGF -DHAS_SYS_PIPEH" fi # } LSOF_CFGL="$LSOF_CFGL -lkvm" LSOF_DIALECT_DIR=n+obsd ;; # Configure for SCO OpenServer. osr|osrgcc|sco|scogcc) if test "X$LSOF_RANLIB_SUP" = "X" # { then LSOF_RANLIB="" fi # } if test "X$OSR_CFGF" != "X" # { then # Adopt LSOF_CFGF from OSR_CFGF in environment. LSOF_CFGF=$OSR_CFGF fi # } if test "X$OSR_CFGL" != "X" # { then # Adopt LSOF_CFGL from OSR_CFGL in environment. LSOF_CFGL=$OSR_CFGL fi # } # Evaluate compiler specification. if test "X$LSOF_CC" = "X" # { then if test "X$LSOF_TGT" = "Xosr" -o "X$LSOF_TGT" = "Xsco" # { then LSOF_CC=cc LSOF_TMP1=1 else LSOF_CC=gcc LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'` LSOF_TMP1=2 fi # } else LSOF_TMP1=0 fi # } LSOF_TGT="osr" # Determine version. if test "X$LSOF_VSTR" = "X" # { then LSOF_VSTR="`LANG=C_C.C /bin/uname -X 2>/dev/null | grep Release | sed 's/Release = \(.*\)/\1/'`" fi # } if test "X$LSOF_VERS" = "X" # { then # If the SCO OpenServer release version isn't predefined, determine it. case $LSOF_VSTR in # { 3.2v2.0) LSOF_VERS="20" ;; 3.2v2.1) LSOF_VERS="21" ;; 3.2v4.0) LSOF_VERS="40" ;; 3.2v4.1) LSOF_VERS="41" ;; 3.2v4.2) LSOF_VERS="42" ;; 3.2v5.*) LSOF_TSTLFLG="-lsocket" LSOF_VERS="`echo $LSOF_VSTR | sed 's/3\.2v//; s/\.//g'`" ;; *) echo Unknown SCO OpenServer release: $LSOF_VSTR echo Assuming 3.2.0 or 3.2.1 LSOF_VERS="0" ;; esac # } fi # } # Do SCO OpenServer specific stuff. case $LSOF_VERS in # { 0) if test $LSOF_TMP1 -eq 1 # { then LSOF_CFGF="$LSOF_CFGF -nointl" LSOF_DEBUG="-Ox" fi # } LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s" LSOF_MKC="cp" ;; 20) if test $LSOF_TMP1 -eq 1 # { then LSOF_DEBUG="-Ox" fi # } LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s" LSOF_MKC="cp" ;; 21) if test $LSOF_TMP1 -eq 1 # { then LSOF_CFGF="$LSOF_CFGF -nointl" LSOF_DEBUG="-Ox" fi # } LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s" LSOF_MKC="cp" ;; 40) if test $LSOF_TMP1 -eq 1 # { then LSOF_CFGF="$LSOF_CFGF -nointl" LSOF_DEBUG="-Ox" fi # } LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s" ;; 41) if test $LSOF_TMP1 -eq 1 # { then LSOF_CFGF="$LSOF_CFGF -nointl" LSOF_DEBUG="-Ox" fi # } LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s" ;; 42) if test $LSOF_TMP1 -eq 1 # { then LSOF_CFGF="$LSOF_CFGF -nointl" LSOF_DEBUG="-Ox" fi # } LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s" ;; 5*) if test $LSOF_TMP1 -eq 1 # { then LSOF_CFGF="$LSOF_CFGF -belf" LSOF_DEBUG="-O3 -Kspace" fi # } LSOF_CFGL="$LSOF_CFGL -lsocket" ;; *) echo "Unsupported SCO OpenServer release: $LSOF_VERS" rm -f $LSOF_HLP exit 1 ;; esac # } LSOF_CFGF="$LSOF_CFGF -DOSRV=$LSOF_VERS" if test "X$OSR_STATLSTAT" = "X" # { then echo "Testing libc.a for statlstat" /bin/nm /lib/libc.a | grep statlstat > /dev/null 2>&1 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_STATLSTAT" fi # } else if test "X$OSR_STATLSTAT" = "XY" -o "X$OSR_STATLSTAT" = "Xy" # { then LSOF_CFGF="$LSOF_CFGF -DHAS_STATLSTAT" fi # } fi # } if test -r ${LSOF_INCLUDE}/sys/fs/nfs/rnode.h # { then LSOF_CFGF="$LSOF_CFGF -DHAS_NFS" fi # } if test ! -r ${LSOF_INCLUDE}/netdb.h # { then LSOF_DINC="$LSOF_DINC -I`pwd`/dialects/osr/include" fi # } LSOF_DIALECT_DIR=osr ;; # Configure for Sun Solaris, SunPro C and gcc. solaris|solariscc) if test "X$LSOF_RANLIB_SUP" = "X" # { then LSOF_RANLIB="" fi # } if test "X$LSOF_CC" = "X" # { then if test "X$LSOF_TGT" = "Xsolariscc" # { then if test "X$SOLARIS_CCDIR" = "X" # { then SOLARIS_CCDIR="/opt/SUNWspro/bin" fi # } if test -x ${SOLARIS_CCDIR}/cc # { then LSOF_CC=${SOLARIS_CCDIR}/cc else if test -x /opt/SunStudioExpress/bin/cc # { then LSOF_CC=/opt/SunStudioExpress/bin/cc else echo "WARNING: no cc in ${SOLARIS_CCDIR}; using cc without path." LSOF_CC=cc fi # } fi # } LSOF_CCV=`$LSOF_CC -V 2>&1 | sed -n 's/^cc: \(.*\)/\1/p'` else LSOF_CC=gcc LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'` fi # } fi # } LSOF_TGT="solaris" if test "X$LSOF_VSTR" = "X" # { then LSOF_VSTR=`uname -r` fi # } if test "X$LSOF_VERS" = "X" # { then # If the Solaris version isn't predefined, determine it. case $LSOF_VSTR in # { 5.[0-2]) LSOF_VERS="20300" ;; 5.3) LSOF_VERS="20300" ;; 5.4) LSOF_VERS="20400" ;; 5.5) LSOF_VERS="20500" ;; 5.5.1) LSOF_VERS="20501" ;; 5.6*) LSOF_TSTLFLG="-lsocket -lnsl" LSOF_VERS="20600" ;; 5.7*) LSOF_TSTBIGF=" " LSOF_TSTLFLG="-lsocket -lnsl" LSOF_VERS="70000" ;; 5.8*) LSOF_TSTBIGF=" " LSOF_TSTLFLG="-lsocket -lnsl" LSOF_VERS="80000" ;; 5.9*) LSOF_TSTBIGF=" " LSOF_TSTLFLG="-lsocket -lnsl" LSOF_VERS="90000" ;; 5.10*) LSOF_TSTBIGF=" " LSOF_TSTLFLG="-lsocket -lnsl" LSOF_VERS="100000" ;; 5.11*) LSOF_TSTBIGF=" " LSOF_TSTLFLG="-lsocket -lnsl" LSOF_VERS="110000" ;; *) echo Unknown Solaris version: $LSOF_VSTR rm -f $LSOF_HLP exit 1 esac # } fi # } # Clear LSOF_UNSUP message for selected Solaris versions. case $LSOF_VERS in # { 90000|100000|110000) LSOF_UNSUP="" ;; esac # } # Do Solaris version-specific stuff. case $LSOF_VERS in # { 20300) # Solaris patch 101318-32 creates a longer kernel tcp_s structure, # and 101318-45 changes the way the vnode's v_filocks member is # handled. The following code creates a symbol definition for # patch 101318 whose value is the patch level. No symbol is defined # if the patch level is not greater than zero. if test "X$SOLARIS_23P101318" = "X" # { then LSOF_PL=`grep -h SUNW_PATCHID=101318 /var/sadm/pkg/SUNWcar*/pkginfo | sed 's/.*-//' | sort -u | tail -1` if test "X$LSOF_PL" = "X" # { then LSOF_PL=0 fi # } else LSOF_PL=$SOLARIS_23P101318 fi # } if test $LSOF_PL -gt 0 # { then LSOF_CFGF="$LSOF_CFGF -DP101318=$LSOF_PL" fi # } ;; 20400) if test "X$SOLARIS_24P101945" = "X" # { then LSOF_PL=`grep -h SUNW_PATCHID=101945 /var/sadm/pkg/SUNWcar*/pkginfo | sed 's/.*-//' | sort -u | tail -1` if test "X$LSOF_PL" = "X" # { then LSOF_PL=0 fi # } else LSOF_PL=$SOLARIS_24P101945 fi # } if test $LSOF_PL -ge 32 # { then if test "X$SOLARIS_24P102303" = "X" # { then LSOF_PL=`grep -h SUNW_PATCHID=102303 /var/sadm/pkg/SUNWhea*/pkginfo | sed 's/.*-//' | sort -u | tail -1` if test "X$LSOF_PL" = "X" # { then LSOF_PL=0 fi # } else LSOF_PL=$SOLARIS_24P102303 fi # } if test $LSOF_PL -ge 2 # { then echo "WARNING: your Solaris 2.4 system appears to have patches 101945-32 and 102303-2" echo " installed. This probably means the NUM_*_VECTORS definitions in" echo " don't match the ones used to build your kernel. Consult" echo " the Sun Problems section of the 00FAQ file of the lsof distribution" echo " for more information on how to work around the problem." fi # } fi # } ;; 20500|20501) ;; 20600|70000|80000|90000|100000|110000) if test "X$SOLARIS_26PR_GWINDOWS" = "X" # { then rm -f ${LSOF_TMPC}.* echo "#define _KMEMUSER" > ${LSOF_TMPC}.c echo "#include " >> ${LSOF_TMPC}.c echo "main(){" >> ${LSOF_TMPC}.c echo "enum prnodetype p=PR_GWINDOWS;}" >> ${LSOF_TMPC}.c echo "Testing prdata.h for PR_GWINDOWS, using $LSOF_CC" echo $LSOF_CC | grep gcc > /dev/null if test $? -eq 0 # { then $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1 else $LSOF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x > /dev/null 2>&1 fi # } if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASPR_GWINDOWS" fi # } else if test "X$SOLARIS_26PR_GWINDOWS" = "XY" -o "X$SOLARIS_26PR_GWINDOWS" = "Xy" # { then LSOF_CFGF="$LSOF_CFGF -DHASPR_GWINDOWS" fi # } fi # } if test "X$SOLARIS_26PR_LDT" = "X" # { then rm -f ${LSOF_TMPC}.* echo "#define _KMEMUSER" > ${LSOF_TMPC}.c echo "#include " >> ${LSOF_TMPC}.c echo "main(){" >> ${LSOF_TMPC}.c echo "enum prnodetype p=PR_LDT;}" >> ${LSOF_TMPC}.c echo "Testing prdata.h for PR_LDT, using $LSOF_CC" echo $LSOF_CC | grep gcc > /dev/null if test $? -eq 0 # { then $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1 else $LSOF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x > /dev/null 2>&1 fi # } if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASPR_LDT" fi # } rm -f ${LSOF_TMPC}.* else if test "X$SOLARIS_26PR_LDT" = "XY" -o "X$SOLARIS_26PR_LDT" = "Xy" # { then LSOF_CFGF="$LSOF_CFGF -DHASPR_LDT" fi # } fi # } if test $LSOF_VERS -ge 70000 # { then # Do tests for Solaris 7 and above. if test "X$SOLARIS_KERNBITS" = "X" # { then SOLARIS_KERNBITS=`/bin/isainfo -kv` fi # } if test "X$SOLARIS_INSTR" = "X" # { then SOLARIS_INSTR=`/bin/isainfo -k` fi #} echo $SOLARIS_KERNBITS | grep 64 > /dev/null if test $? -eq 0 # { then echo $LSOF_CC | grep gcc > /dev/null if test $? -eq 0 # { then # Test gcc for 64 bit support. echo "Testing $LSOF_CC for 64 bit support" rm -f ${LSOF_TMPC}.* echo "main(){}" > ${LSOF_TMPC}.c LSOF_TMP1="" # First try gcc's -m64 option -- it's the most current possibility. $LSOF_CC ${LSOF_TMPC}.c -m64 -o ${LSOF_TMPC}.x > /dev/null 2>&1 if test $? -eq 0 # { then /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null if test $? -eq 0 # { then LSOF_TMP1="-m64" fi # } fi # } rm -f ${LSOF_TMPC}.* if test "X$LSOF_TMP1" = "X" # { then # Try using the older -mcpu=v9 option with gcc instead of -m64. echo "main(){}" > ${LSOF_TMPC}.c $LSOF_CC ${LSOF_TMPC}.c -mcpu=v9 -o ${LSOF_TMPC}.x > /dev/null 2>&1 if test $? -eq 0 # { then /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null if test $? -eq 0 # { then LSOF_TMP1="-mcpu=v9" fi # } fi # } rm -f ${LSOF_TMPC}.* fi # } if test "X$LSOF_TMP1" = "X" # { then echo "" echo "!!!WARNING!!!=========!!!WARNING!!!=========!!!WARNING!!!" echo "! !" echo "! LSOF NEEDS TO BE CONFIGURED FOR A 64 BIT KERNEL, BUT !" echo "! THIS GCC DOESN'T SUPPORT THE BUILDING OF 64 BIT !" echo "! SOLARIS EXECUTABLES. LSOF WILL BE CONFIGURED FOR A !" echo "! 32 BIT KERNEL. !" echo "! !" echo "!!!WARNING!!!=========!!!WARNING!!!=========!!!WARNING!!!" echo "" else echo "" echo "*********************************" echo "* Configuring for 64 bit kernel *" echo "*********************************" echo "" LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1" LSOF_CINFO="64 bit kernel" LSOF_TSTK64=1 fi # } else # Test Sun compiler for 64 bit support. case $SOLARIS_INSTR in # { amd64*) LSOF_TMP1="amd64" LSOF_TMP2="amd64" ;; sparc*) LSOF_TMP1="v9" LSOF_TMP2="sparcv9" ;; *) LSOF_TMP1="" ;; esac # } if test "X$LSOF_TMP1" != "X" # { then echo "Testing $LSOF_CC for 64 bit $LSOF_TMP2 support" rm -f ${LSOF_TMPC}.* LSOF_TMP3="-xarch=$LSOF_TMP1" echo "main(){}" > ${LSOF_TMPC}.c LSOF_TMP4=`$LSOF_CC ${LSOF_TMPC}.c $LSOF_TMP3 -o ${LSOF_TMPC}.x 2>&1` if test $? -eq 0 # { then /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null if test $? -ne 0 # { then LSOF_TMP3="" else echo "X$LSOF_TMP4" | grep "use -m64" > /dev/null 2>&1 if test $? -eq 0 # { then LSOF_TMP3=-m64 fi # } fi # } fi # } rm -f ${LSOF_TMPC}.* else LSOF_TMP3="" fi # } if test "X$LSOF_TMP3" != "X" # { then echo "" echo "*********************************" echo "* Configuring for 64 bit kernel *" echo "*********************************" echo "" LSOF_CFGF="$LSOF_CFGF $LSOF_TMP3" LSOF_CINFO="64 bit kernel" LSOF_TSTK64=1 else echo "" echo "!!!WARNING!!!==========!!!WARNING!!!==========!!!WARNING!!!" echo "!" echo "! LSOF NEEDS TO BE CONFIGURED FOR A 64 BIT KERNEL, BUT" echo "! THE VERSION OF SUN C AVAILABLE DOESN'T SUPPORT THE" echo "! \"$LSOF_TMP2\" INSTRUCTION SET." echo "!" echo "! LSOF WILL BE CONFIGURED FOR A 32 BIT KERNEL." echo "!" echo "!!!WARNING!!!==========!!!WARNING!!!==========!!!WARNING!!!" echo "" fi # } fi # } else echo "" echo "*********************************" echo "* Configuring for 32 bit kernel *" echo "*********************************" echo "" LSOF_CINFO="32 bit kernel" fi # } fi # } # Do tests specific to Solaris 8 and above. if test $LSOF_VERS -ge 80000 # { then if test -r ${LSOF_INCLUDE}/netinet/ip6.h # { then LSOF_CFGF="$LSOF_CFGF -DHASIPv6" fi # } fi # } # Do tests specific to Solaris 9 and above. if test $LSOF_VERS -ge 90000 # { then if test -r ${LSOF_INCLUDE}/sys/socketvar.h # { then grep soua_vp ${LSOF_INCLUDE}/sys/socketvar.h > /dev/null 2>&1 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASSOUXSOUA" fi # } fi # } if test $LSOF_VERS -lt 110000 # { then # Do tests specific to Solaris 9 and 10. if test -r ${LSOF_INCLUDE}/sys/lgrp_user.h # { then if test -r ${LSOF_INCLUDE}/sys/lgrp.h # { then grep lgrp_root ${LSOF_INCLUDE}/sys/lgrp_user.h > /dev/null 2>&1 if test $? -eq 0 # { then grep lgrp_root ${LSOF_INCLUDE}/sys/lgrp.h > /dev/null 2>&1 if test $? -eq 0 then LSOF_CFGF="$LSOF_CFGF -DHAS_LGRP_ROOT_CONFLICT" fi # } fi # } fi # } fi # } fi # } fi # } # Do tests specific to Solaris 10 and above. if test $LSOF_VERS -eq 100000 # { then if test -r ${LSOF_INCLUDE}/sys/socket_proto.h # { then LSOF_CFGF="$LSOF_CFGF -DHAS_SOCKET_PROTO_H" fi # } fi # } if test $LSOF_VERS -ge 100000 # { then if test -r ${LSOF_INCLUDE}/inet/ipclassifier.h # { then LSOF_CFGF="$LSOF_CFGF -DHAS_IPCLASSIFIER_H" grep conn_ixa ${LSOF_INCLUDE}/inet/ipclassifier.h > /dev/null 2>&1 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_CONN_NEW" fi #} fi # } if test -r ${LSOF_INCLUDE}/sys/cred_impl.h # { then LSOF_CFGF="$LSOF_CFGF -DHAS_CRED_IMPL_H" # DEBUG -- Begin temporary hack for Solaris 10, build s10_44. grep "c2/audit.h" ${LSOF_INCLUDE}/sys/cred_impl.h > /dev/null if test $? -eq 0 # { then rm -rf `pwd`/dialects/sun/solaris10 mkdir `pwd`/dialects/sun/solaris10 mkdir `pwd`/dialects/sun/solaris10/c2 touch `pwd`/dialects/sun/solaris10/c2/audit.h LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/sun/solaris10" fi # } # DEBUG -- End temporary hack for Solaris 10, build s10_44. fi # } if test -r ${LSOF_INCLUDE}/sys/vnode.h # { then grep v_path ${LSOF_INCLUDE}/sys/vnode.h > /dev/null 2>&1 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_V_PATH" LSOF_TSTVPATH=1 fi # } fi # } if test -r ${LSOF_INCLUDE}/sys/fs/pc_fs.h # { then grep pc_direntpersec ${LSOF_INCLUDE}/sys/fs/pc_fs.h > /dev/null 2>&1 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_PC_DIRENTPERSEC" fi # } fi # } fi # } if test -r ${LSOF_INCLUDE}/sys/zone.h # { then LSOF_CFGF="$LSOF_CFGF -DHASZONES" fi # } # Check for Solaris 10 or higher CTF library and things that depend # on it. if test -r ${LSOF_INCLUDE}/libctf.h # { then LSOF_CTFH=1 fi # } if test -r ${LSOF_INCLUDE}/sys/fs/zfs.h # { then if test $LSOF_CTFH -eq 1 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_ZFS" LSOF_CTFL=1 else echo "WARNING: ZFS support not enabled; libctf.h missing." fi # } fi # } if test $LSOF_VERS -ge 110000 # { then # Do things specific to Solaris 11 and above. if test $LSOF_CTFH -eq 1 # { then LSOF_CTFL=1 else echo "WARNING: socket support not enabled; libctf.h missing." fi # } rm -rf ./solaris11 mkdir ./solaris11 mkdir ./solaris11/sys touch ./solaris11/sys/extdirent.h echo "./solaris11/sys/extdirent.h created" LSOF_CFGF="$LSOF_CFGF -I`pwd`/solaris11" if test -r ${LSOF_INCLUDE}/sys/mutex.h # { then # Check 'for pad_mutex_t;'. grep 'pad_mutex_t;' ${LSOF_INCLUDE}/sys/mutex.h > /dev/null 2>&1 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_PAD_MUTEX" fi # } fi # ) fi # } # If -lctf was added to LSOF_CFGL, define HAS_LIBCTF. if test $LSOF_CTFL -eq 1 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_LIBCTF" LSOF_CFGL="$LSOF_CFGL -lctf" fi # } ;; *) echo "Unsupported Solaris version: $LSOF_VERS" rm -f $LSOF_HLP exit 1 ;; esac # } LSOF_CFGF="$LSOF_CFGF -Dsolaris=$LSOF_VERS" # Test for . if test -r ${LSOF_INCLUDE}/sys/fs/cachefs_fs.h # { then LSOF_CFGF="$LSOF_CFGF -DHASCACHEFS" fi # } # Test for if test -r ${LSOF_INCLUDE}/utmpx.h # { then LSOF_CFGF="$LSOF_CFGF -DHASUTMPX" fi # } # Test for VSOCK. if test "X$SOLARIS_VSOCK" = "X" # { then rm -f ${LSOF_TMPC}.* echo "#include " > ${LSOF_TMPC}.c echo "main(){" >> ${LSOF_TMPC}.c echo "enum vtype p=VSOCK;}" >> ${LSOF_TMPC}.c echo "Testing vnode.h for VSOCK, using $LSOF_CC" echo $LSOF_CC | grep gcc > /dev/null if test $? -eq 0 # { then $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1 else $LSOF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x > /dev/null 2>&1 fi # } if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_VSOCK" fi # } rm -f ${LSOF_TMPC}.* else if test "X$SOLARIS_VSOCK" = "XY" -o "X$SOLARIS_VSOCK" = "Xy" # { then LSOF_CFGF="$LSOF_CFGF -DHAS_VSOCK" fi # } fi # } # Test for AFS. if test -r ${AFS_VICE}/etc/ThisCell # { then if test "X$LSOF_SCRIPT_CALL" = "Xno" # { then if test -r ./AFSHeaders -a -r ./AFSVersion # { then LSOF_AFS="yes" fi # } else if test ! -x ./AFSConfig # { then echo "Can't find or execute the AFSConfig script" rm -f $LSOF_HLP exit 1 fi # } ./AFSConfig if test $? -eq 0 -a -r ./AFSHeaders -a -r ./AFSVersion # { then LSOF_AFS="yes" fi # } fi # } if test "X$LSOF_AFS" = "Xyes" # { then if test "X$SUN_AFSAPATHDEF" = "X" # { then ls /usr/vice/etc/modload/libafs > /dev/null 2>&1 if test $? -ne 0 # { then LSOF_TMP1=`ls /usr/vice/etc/modload/libafs* 2>/dev/null | wc -l` if test $LSOF_TMP1 -ne 0 # { then SUN_AFSAPATHDEF=`ls -t /usr/vice/etc/modload/libafs* | head -1` fi # } fi # } fi # } if test "X$SUN_AFSAPATHDEF" != "X" # { then LSOF_CFGF="$LSOF_CFGF -DAFSAPATHDEF=\\\"$SUN_AFSAPATHDEF\\\"" fi # } LSOF_AFSV=`cat ./AFSVersion | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1 \2/' | awk '{printf "%d%02d\n",\$1,\$2}'` LSOF_CFGF="$LSOF_CFGF -DHAS_AFS=$LSOF_AFSV" LSOF_DINC="$LSOF_DINC -I`cat ./AFSHeaders`" fi # } fi # } # Test for VxFS. # # If the location of the VxFS header files hasn't been defined in the # environment, establish their likely locations. LSOF_TMP2=$SOLARIS_VXFSINCL if test -d /opt/VRTS/include # { then LSOF_TMP2="$LSOF_TMP2 /opt/VRTS/include" fi # } if test -d /opt/VRTSvxfs/include # { then LSOF_TMP2="$LSOF_TMP2 /opt/VRTSvxfs/include" fi # } LSOF_TMP1=0 for i in $LSOF_TMP2 # { do if test -r ${i}/vxfsutil.h # { then LSOF_TMP1=1 SOLARIS_VXFSINCL=$i break fi # } done # } if test $LSOF_TMP1 -eq 1 # { then # The VxFS header files are for VxFS version 3.4 or above. Enable VxFS # for those versions. LSOF_CFGF="$LSOF_CFGF -DHASVXFS -DHASVXFSUTIL -I$SOLARIS_VXFSINCL" # Determine which libvxfsutil.a is required -- 32 or 64 bit. LSOF_TMP2="" # assume 32 bit echo "X$LSOF_CINFO" | grep "^X64" > /dev/null 2>&1 if test $? -eq 0-a "X$SOLARIS_INSTR" != "X" # { then case $SOLARIS_INSTR in # { amd64*) LSOF_TMP2="/amd64" ;; sparcv9*) LSOF_TMP2="/sparcv9" ;; esac # } fi # } # See if the correct library has been specified and exists. if test "X$SOLARIS_VXFSLIB" = "X" # { then SOLARIS_VXFSLIB=`dirname $SOLARIS_VXFSINCL`/lib fi # } LSOF_TMP3="${SOLARIS_VXFSLIB}${LSOF_TMP2}/libvxfsutil.a" if test ! -r $LSOF_TMP3 # { then echo "!!!FATAL: no VxFS $LSOF_TMP3" exit 1 fi # } LSOF_CFGL="$LSOF_CFGL -L$SOLARIS_VXFSLIB${LSOF_TMP2} -lvxfsutil -ldl" # See if the library has the Reverse Name Lookup (RNL) function. nm $LSOF_TMP3 | grep vxfs_inotopath > /dev/null 2>&1 if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASVXFSRNL -DHASVXFSDNLC" fi # } else # See if there are VxFS header files for VxFS versions below 3.4. if test -r ${LSOF_INCLUDE}/sys/fs/vx_inode.h # { then # Define VxFS for VxFS versions below 3.4. Make additional header # file tests. LSOF_CFGF="$LSOF_CFGF -DHASVXFS" if test -r ${LSOF_INCLUDE}/sys/fs/vx_fs.h # { then LSOF_CFGF="$LSOF_CFGF -DHASVXFS_FS_H" fi # } if test -r ${LSOF_INCLUDE}/sys/fs/vx_sol.h # { then LSOF_CFGF="$LSOF_CFGF -DHASVXFS_SOL_H" fi # } if test -r ${LSOF_INCLUDE}/sys/fs/vx_machdep.h # { then LSOF_CFGF="$LSOF_CFGF -DHASVXFS_MACHDEP_H" fi # } if test -r ${LSOF_INCLUDE}/sys/fs/vx_solaris.h # { then LSOF_CFGF="$LSOF_CFGF -DHASVXFS_SOLARIS_H" grep "off32_t;" ${LSOF_INCLUDE}/sys/fs/vx_machdep.h > /dev/null if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASVXFS_OFF32_T" fi # } grep "off64_t;" ${LSOF_INCLUDE}/sys/fs/vx_solaris.h > /dev/null if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASVXFS_OFF64_T" fi # } grep "vx_u64_t;" ${LSOF_INCLUDE}/sys/fs/vx_solaris.h > /dev/null if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASVXFS_U64_T" fi # } fi # } egrep "struct[ ]vx_inode[ ]\{" ${LSOF_INCLUDE}/sys/fs/vx_inode.h > /dev/null # } (dummy '}' to match '{' in above egrep) if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHASVXFS_VX_INODE" fi # } fi # } fi # } # Set libraries and dialect subdirectory. LSOF_CFGL="$LSOF_CFGL -lkvm -lelf -lsocket -lnsl" LSOF_DIALECT_DIR=sun # Set local-specific stuff. if test "X$LSOF_LOCALSUFFIX" = "XLOCAL" # { then LSOF_DOC="\${DESTDIR}/usr/local/man" fi # } ;; # Configure for SCO|Caldera OpenServer Release 6.0.0 and UnixWare. osr6|unixware|uw) LSOF_TMP1=$LSOF_TGT LSOF_TGT="uw" if test "X$LSOF_RANLIB_SUP" = "X" # { then LSOF_RANLIB="" fi # } if test "X$LSOF_VSTR" = "X" # { then LSOF_VSTR=`uname -v` fi # } if test "X$LSOF_VERS" = "X" # { then # If the Openserver Release 6.0.0 or UnixWare version isn't pre-defined, # determine it. LSOF_VERS=`echo $LSOF_VSTR | sed 's/\([0-9\.]*\).*/\1/; s/\./ /g' | awk '{printf "%d%02d%02d\n", $1, $2, $3;}'` fi # } if test $LSOF_TMP1 = "osr6" # { then LSOF_CINFO="OSR6 support via UnixWare sources" # Convert the OpenServer Release 6.0.0 version number to a UnixWare one. case $LSOF_VERS in # { 60000) LSOF_VERS=70104 ;; *) echo "Unknown OpenServer Release version: $LSOF_VERS" rm -f $LSOF_HLP exit 1 esac # } fi # } LSOF_CFGF="$LSOF_CFGF -DUNIXWAREV=$LSOF_VERS" # Do OpenServer Release 6.0.0 and UnixWare version-specific stuff. case $LSOF_VERS in # { 20100|20101|20102|20103) if test -r ${LSOF_INCLUDE}/sys/fs/vx_inode.h # { then LSOF_CFGF="$LSOF_CFGF -DHASVXFS" fi # } LSOF_CFGL="$LSOF_CFGL -lsocket -lnsl -lelf -lgen" ;; 70000|70001|70100|70101|70103|70104) LSOF_TSTBIGF=" " LSOF_TSTLFLG="-lsocket -lnsl" if test $LSOF_VERS -lt 70103 # { then LSOF_DINC="$LSOF_DINC -I`pwd`/dialects/uw/uw7" else # $LSOF_VERS -ge 70103 # Process 7.1.3 and above. if test -r ${LSOF_INCLUDE}/netinet/in6.h # { then LSOF_CFGF="$LSOF_CFGF -DHASIPv6" fi # } if test $LSOF_VERS -ge 70104 # { then # Process 7.1.4 and above. LSOF_TMP1=0 if test -r ${LSOF_INCLUDE}/netinet/in_pcb.h # { then grep INKERNEL ${LSOF_INCLUDE}/netinet/in_pcb.h > /dev/null 2>&1 if test $? -eq 0 # { then LSOF_TMP1=1 fi # } fi # } if test $LSOF_TMP1 -eq 0 -a -r ${LSOF_INCLUDE}/netinet/tcp_var.h # { then grep INKERNEL ${LSOF_INCLUDE}/netinet/tcp_var.h > /dev/null 2>&1 if test $? -eq 0 # { then LSOF_TMP1=1 fi # } fi # } if test $LSOF_TMP1 -eq 1 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_INKERNEL" fi # } fi # } fi # } if test ! -r ${LSOF_INCLUDE}/vm/swap.h -a -r ${LSOF_INCLUDE}/sys/swap.h # { then (cd ./dialects/uw/uw7/vm; rm -f swap.h; ln -s ${LSOF_INCLUDE}/sys/swap.h swap.h) fi # } if test -r ${LSOF_INCLUDE}/sys/fs/vx_gemini.h # { then LSOF_CFGF="$LSOF_CFGF -DHASVXFS" fi # } LSOF_CFGL="$LSOF_CFGL -lsocket -lnsl -lelf -lgen" /bin/pkginfo 2> /dev/null | grep -i patch | grep -i ptf7038 > /dev/null if test -r ${LSOF_INCLUDE}/sys/file.h # { then grep f_open ${LSOF_INCLUDE}/sys/file.h > /dev/null if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_F_OPEN" fi # } fi # } if test -r ${LSOF_INCLUDE}/sys/fs/cdfs_fs.h # { then grep "cdfs_LogSecShift;" ${LSOF_INCLUDE}/sys/fs/cdfs_fs.h > /dev/null 2>&1 if test $? -eq 0 # { then LSOF_TMP=`grep "cdfs_LogSecShift;" ${LSOF_INCLUDE}/sys/fs/cdfs_fs.h | sed 's/^[ ]*\([^ ]*\).*/\1/'` if test "X$LSOF_TMP" != "X" # { then LSOF_CFGF="$LSOF_CFGF -DTYPELOGSECSHIFT=$LSOF_TMP" fi # } fi # } fi # } if test -r ${LSOF_INCLUDE}/sys/proc.h # { then grep p_pgid ${LSOF_INCLUDE}/sys/proc.h > /dev/null if test $? -eq 0 # { then LSOF_CFGF="$LSOF_CFGF -DHAS_P_PGID" fi # } fi # } if test $LSOF_VERS -ge 70101 # { then # Do OpenServer Release 6.0.0 and UnixWare 7.1.1 and above tests, as # required. if test "X$UW_HAS_NSC" = "X" # { then UW_HAS_NSC=N if test -x /bin/node_self # { then /bin/node_self > /dev/null 2>&1 if test $? -eq 0 # { then UW_HAS_NSC=Y fi # } fi # } fi # } if test "X$UW_HAS_NSC" = "XY" -o "X$UW_HAS_NSC" = "Xy" # { then LSOF_CFGF="$LSOF_CFGF -DHAS_UW_NSC" LSOF_CFGL="$LSOF_CFGL -lcluster" fi # } if test -r ${LSOF_INCLUDE}/sys/nsc_synch.h # { then LSOF_CFGF="$LSOF_CFGF -DHAS_UW_CFS" fi # } fi # } ;; *) echo Unsupported UnixWare version: `uname -v` rm -f $LSOF_HLP exit 1 ;; esac # } if test -r ${LSOF_INCLUDE}/sys/fs/xnamnode.h # { then LSOF_CFGF="$LSOF_CFGF -DHASXNAMNODE" fi # } LSOF_DIALECT_DIR=uw ;; # Handle unknown abbreviation. *) echo "Can't configure for $LSOF_TGT." cat $LSOF_HLP rm -f $LSOF_HLP exit 1 ;; # End of LSOF_TGT cases esac # } # Do an inventory of the distribution, as required. if test "X$LSOF_SCRIPT_CALL" = "Xyes" -a ! -r ./.neverInv # { then if test ! -f ./Inventory # Want -x, but Ultrix doesn't grok it. # { then echo "Can't find Inventory script." rm -f $LSOF_HLP exit 1 fi # } ./Inventory fi # } # Make sure target directory exists. if test ! -d ./dialects/$LSOF_DIALECT_DIR # { then echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR doesn't exist." rm -f $LSOF_HLP exit 1 fi # } # Make sure $LSOF_MK exists in the target directory. if test ! -r ./dialects/$LSOF_DIALECT_DIR/$LSOF_MK # { then echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR/$LSOF_MK doesn't exist." rm -f $LSOF_HLP exit 1 fi # } # Make sure $LSOF_MKF, $LSOF_SPMKF, or $LSOF_MKF.$LSOF_LOCALSUFFIX) exists # in the target directory. if test "X$LSOF_SPMKF" != "X" # { then LSOF_TMP1=$LSOF_SPMKF else LSOF_TMP1=$LSOF_MKF fi # } if test "X$LSOF_LOCALSUFFIX" != "X" # { then LSOF_REST=$LSOF_TMP1.$LSOF_LOCALSUFFIX else LSOF_REST=$LSOF_TMP1 fi # } if test ! -r ./dialects/$LSOF_DIALECT_DIR/$LSOF_REST # { then echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR/$LSOF_REST doesn't exist." rm -f $LSOF_HLP exit 1 fi # } # If this is FreeBSD, make sure $LSOF_FBSD_ZFS_MKF exists. if test $LSOF_FBSD_ZFS -eq 1 # { then if test ! ./dialects/$LSOF_DIALECT_DIR/$LSOF_FBSD_ZFS_MKF # { then echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR/$LSOF_FBSD_ZFS_MKF doesn't exist." rm -f $LSOF_HLP exit 1 fi # } fi # }} # Make sure $LSOF_VF exists. Extract the version number from it. if test ! -r $LSOF_VF # { then echo "Version number file, ./$LSOF_VF, doesn't exist." rm -f $LSOF_HLP exit 1 else LSOF_VN=`sed "s/.ds VN \(.*\)/\1/" < $LSOF_VF` fi # } # Clean up in advance. rm -f $LSOF_F $LSOF_MKFC $LSOF_FBSD_ZFS_MKF $LSOF_TSTCFLG $LSOF_TSTCC rm -f $LSOF_TSTXOC $LSOF_TSTLFF echo "rm -f $LSOF_F $LSOF_MKFC $LSOF_FBSD_ZFS_MKF $LSOF_TSTCFLG" echo "rm -f $LSOF_TSTCC $LSOF_TSTXOC $LSOF_TSTLFF" # Make sure there's a C compiler name. if test "X$LSOF_CC" = "X" # { then LSOF_CC=cc fi # } # Do common feature analyses. # Check for localtime(3) and strftime(3). rm -f ${LSOF_TMPC}.* cat > $LSOF_TMPC.c << .LSOF_END_HERE_DOC2 #include main(){ time_t cl; struct tm *ts; char bf[32]; if ((cl = time(NULL)) == (time_t)-1) return(1); ts = localtime(&cl); if (strftime(bf, sizeof(bf), "%D", ts) != 8) return(1); if ((bf[2] != '/') || (bf[5] != '/')) return (1); return(0); } .LSOF_END_HERE_DOC2 echo $EO "Testing C library for localtime() and strftime(), using $LSOF_CC ... $EC" $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1 if test -x ${LSOF_TMPC}.x # { then ./${LSOF_TMPC}.x if test $? -eq 0 # } then LSOF_CFGF="$LSOF_CFGF -DHAS_STRFTIME" echo "present" else echo "unusable" fi # } else echo "missing" fi # } rm -f ${LSOF_TMPC}.[cox] # Make the dialect sources. if test "X$LSOF_MKC" = "X" # { then LSOF_MKC="ln -s" fi # } LSOF_MKC=$LSOF_MKC ./dialects/$LSOF_DIALECT_DIR/$LSOF_MK $LSOF_TGT $LSOF_VERS # Make $LSOF_MKFC and ${LSOF_LIB}/$LSOF_LIBMKF. echo "# $LSOF_TGT Makefile for lsof revision $LSOF_VN" > $LSOF_MKFC echo "" >> $LSOF_MKFC echo "CC= $LSOF_CC" >> $LSOF_MKFC if test "X$LSOF_CCV" != "X" # { then echo "" >> $LSOF_MKFC echo "CCV= $LSOF_CCV" >> $LSOF_MKFC fi # } if test "X$LSOF_LIB_NO" = "X" # { then echo "" >> $LSOF_MKFC echo "LIB= ${LSOF_LIB}/liblsof.a" >> $LSOF_MKFC fi # } if test "X$LSOF_LD" != "X" # { then echo "" >> $LSOF_MKFC echo "LD= $LSOF_LD" >> $LSOF_MKFC fi # } if test "X$LSOF_CINFO" != "X" # { then echo "" >> $LSOF_MKFC echo "CINFO= $LSOF_CINFO" >> $LSOF_MKFC fi # } if test "X$LSOF_CFGD" != "X" # { then echo "CFGD= $LSOF_CFGD" >> $LSOF_MKFC fi # } if test "X$LSOF_CFGDN" != "X" # { then echo "CFGDN= $LSOF_CFGDN" >> $LSOF_MKFC fi # } if test "X$LSOF_ARCH" != "X" # { then LSOF_CFGF="$LSOF_CFGF -DLSOF_ARCH=\\\"$LSOF_ARCH\\\"" fi # } if test "X$LSOF_VSTR" != "X" # { then LSOF_TMP=`echo $LSOF_VSTR | sed 's/(/\\\\(/g' | sed 's/)/\\\\)/g'` LSOF_CFGF="$LSOF_CFGF -DLSOF_VSTR=\\\"$LSOF_TMP\\\"" fi # } echo "" >> $LSOF_MKFC echo "CFGF= $LSOF_CFGF" >> $LSOF_MKFC if test "X$LSOF_LIB_NO" = "X" # { then echo "" >> $LSOF_MKFC echo "CFGL= $LSOF_FCFGL -L./$LSOF_LIB -llsof $LSOF_CFGL" >> $LSOF_MKFC fi # } echo "" >> $LSOF_MKFC if test "X$LSOF_DEBUG" = "X" # { then LSOF_DEBUG="-O" else if test "X$LSOF_DEBUG" = "XNo-O" # { then LSOF_DEBUG="" fi # } fi # } echo "DEBUG= $LSOF_DEBUG" >> $LSOF_MKFC if test "X$LSOF_DINC" != "X" # { then echo "" >> $LSOF_MKFC echo "DINC= $LSOF_DINC" >> $LSOF_MKFC fi # } if test "X$LSOF_DOC" != "X" # { then echo "" >> $LSOF_MKFC echo "DOC=$LSOF_DOC" >> $LSOF_MKFC fi # } if test "X$LSOF_DISTRIBKVM" != "X" -a "X$LSOF_DISTRIBKVM" != "XKVM" # { then echo "" >> $LSOF_MKFC echo "KVM= $LSOF_DISTRIBKVM" >> $LSOF_MKFC fi # } rm -f ${LSOF_LIB}/$LSOF_LIBMKF if test "X$LSOF_LIB_NO" = "X" # { then cp $LSOF_MKFC ${LSOF_LIB}/$LSOF_LIBMKF fi # } cat ./dialects/$LSOF_DIALECT_DIR/$LSOF_REST >> $LSOF_MKFC if test "X$LSOF_LIB_NO" = "X" # { then # Put archiving and optional randomizing strings in ${LSOF_LIB}/$LSOF_LIBMKF. # # Process optional CFLAGS override. # # Add the library Makefile skeleton section. echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF if test "X$LSOF_AR" = "X" # { then echo "AR= ar cr \${LIB} \${OBJ}" >> ${LSOF_LIB}/$LSOF_LIBMKF else echo "AR= $LSOF_AR \${LIB} \${OBJ}" >> ${LSOF_LIB}/$LSOF_LIBMKF fi # } if test "X$LSOF_RANLIB" != "X" # { then echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF echo "RANLIB= $LSOF_RANLIB \${LIB}" >> ${LSOF_LIB}/$LSOF_LIBMKF fi # } echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF if test "X$LSOF_CFLAGS_OVERRIDE" = "X" # { then echo "CFLAGS= \${CDEFS} \${INCL} \${DEBUG}" >> ${LSOF_LIB}/$LSOF_LIBMKF else echo "override CFLAGS=\${CDEFS} \${INCL} \${DEBUG}" >> ${LSOF_LIB}/$LSOF_LIBMKF fi # } echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF cat ${LSOF_LIB}/$LSOF_LIBMKFSKEL >> ${LSOF_LIB}/$LSOF_LIBMKF echo $LSOF_MKFC and ${LSOF_LIB}/$LSOF_LIBMKF created. else echo $LSOF_MKFC created. fi # } # If this is FreeBSD, create $LSOF_FBSD_ZFS_MKF. if test $LSOF_FBSD_ZFS -eq 1 # { then rm -f $LSOF_FBSD_ZFS_MKF echo "# $LSOF_TGT ZFS Makefile for lsof revision $LSOF_VN" > $LSOF_FBSD_ZFS_MKF echo "" >> $LSOF_FBSD_ZFS_MKF echo "CC= $LSOF_CC" >> $LSOF_FBSD_ZFS_MKF echo "" >> $LSOF_FBSD_ZFS_MKF echo "CFLAGS= $LSOF_FBSD_ZFS_CFGF" >> $LSOF_FBSD_ZFS_MKF echo "" >> $LSOF_FBSD_ZFS_MKF if test "X$LSOF_DEBUG" = "X" # { then LSOF_DEBUG="-O" else if test "X$LSOF_DEBUG" = "XNo-O" # { then LSOF_DEBUG="" fi # } fi # } echo "DEBUG= $LSOF_DEBUG" >> $LSOF_FBSD_ZFS_MKF echo "" >> $LSOF_FBSD_ZFS_MKF echo "OPENSOLARIS= $LSOF_FBSD_ZFS_SYS" >> $LSOF_FBSD_ZFS_MKF echo "" >> $LSOF_FBSD_ZFS_MKF cat ./dialects/$LSOF_DIALECT_DIR/$LSOF_FBSD_ZFS_MKF >> $LSOF_FBSD_ZFS_MKF echo $LSOF_FBSD_ZFS_MKF created. fi # } # Create test cc file. echo "$LSOF_CC" > $LSOF_TSTCC echo "$LSOF_TSTCC created" # Create test cflags file. echo "-DLT_DIAL_$LSOF_TGT" > $LSOF_TSTCFLG if test "X$LSOF_TSTBIGF" != "X" # { then echo "-DLT_BIGF" >> $LSOF_TSTCFLG if test "X$LSOF_TSTBIGF" != "X " # { then for i in $LSOF_TSTBIGF # { do echo "$i" >> $LSOF_TSTCFLG done # } fi # } fi # } if test "X$LSOF_TSTDFLG" != "X" # { then for i in $LSOF_TSTDFLG # { do echo "$i" >> $LSOF_TSTCFLG done # } fi # } echo $LSOF_CC | grep gcc > /dev/null 2>&1 if test $? -eq 0 # { then echo "-DLT_GCC" >> $LSOF_TSTCFLG else echo "-DLT_CC" >> $LSOF_TSTCFLG fi # r} if test $LSOF_TSTKMEM -eq 1 # { then echo "-DLT_KMEM" >> $LSOF_TSTCFLG fi # } if test $LSOF_TSTK64 -eq 1 # { then echo "-DLT_K64" >> $LSOF_TSTCFLG fi # } echo "-DLT_VERS=$LSOF_VERS" >> $LSOF_TSTCFLG if test $LSOF_TSTVPATH -eq 1 # { then echo "-DLT_VPATH" >> $LSOF_TSTCFLG fi # } echo "$LSOF_TSTCFLG created" # Create tests loader flags file. echo $LSOF_TSTLFLG > $LSOF_TSTLFF echo "$LSOF_TSTLFF created" # Create test extra objects file. echo "$LSOF_TSTXO" > $LSOF_TSTXOC echo "$LSOF_TSTXOC created" rm -f $LSOF_HLP # Call Customize, as required. if test "X$LSOF_SCRIPT_CALL" = "Xyes" -a ! -r ./.neverCust # { then if test ! -f ./Customize # { Want -x, but Ultrix doesn't grok it. then echo "Can't find Customize script." exit 1 fi # } ./Customize $LSOF_DIALECT_DIR fi # } # Issue unsupported warning, as appropriate. if test "X$LSOF_UNSUP" != "X" # { then echo "$LSOF_UNSUP" fi #} exit 0