# 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 $
+# $Id: Configure,v 1.165 2018/02/14 14:18: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
# $LSOF_NBSD_BUFQH NetBSD <sys/bufq.h> copy status
# $LSOF_NBSD_PTYFS NetBSD ${NETBSD_SYS}/sys/fs/ptyfs/ copy status
# $LSOF_N_UNIXV *BSD system's kernel file
+# $LSOF_OPINC supplies additional -I/path arguments for the
+# Makefile's CFLAGS.
# $LSOF_PL patch level
# $LSOF_RANLIB randomizing command for the lsof library
# $LSOF_RANLIB_SUP if non-NULL $LSOF_RANLIB was supplied
# $LSOF_TSTXO test extra objects (for $LSOF_TSTXOC)
# $LSOF_TSTXOC test extra objects file
# $LSOF_UNSUP Lsof is unsupported on this dialect
+# $LSOF_UNSUP2 Second message about lack of support
# $LSOF_VERS Unix dialect version as a decimal number (may
# be supplied externally)
# $LSOF_VSTR Unix dialect version as a string -- may be supplied
LSOF_TSTXO=""
LSOF_TSTXOC="${LSOF_TSTSUBD}/config.xobj"
LSOF_UNSUP="WARNING: unsupported dialect or version"
+LSOF_UNSUP2=""
if test "X$LSOF_VERS" = "X" # {
then
LSOF_VERS=""
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 opt_kdtrace.h opt_random.h
+ echo "rm -f opt_kdtrace.h opt_random.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
11.*) # Mac OS X 10.7 (Lion)
LSOF_VERS=1100
;;
- 12.*) # Next Mac OS X
+ 12.*) # Mac OS X 10.8 (Mountain Lion)
LSOF_VERS=1200
;;
+ 13.*) # Next Mac OS X
+ LSOF_VERS=1300
+ ;;
*)
echo Unknown Darwin release: `uname -r`
- echo Assuming Darwin 11.0
- LSOF_VERS=1100
+ echo Assuming Darwin 12.0
+ LSOF_VERS=1200
;;
esac # }
fi # }
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)
+ 900|1000|1100|1200)
LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
LSOF_TMP1=""
LSOF_UNSUP=""
LSOF_CFGF="$LSOF_CFGF -DNEEDS_MACH_PORT_T"
fi # }
;;
- 1200)
+ 1300)
LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
LSOF_TMP1=""
;;
LSOF_TSTBIGF=" "
LSOF_VERS=8030
;;
+ 8.4*)
+ LSOF_TSTBIGF=" "
+ LSOF_VERS=8040
+ ;;
9*)
LSOF_TSTBIGF=" "
LSOF_VERS=9000
LSOF_TSTBIGF=" "
LSOF_VERS=10000
;;
+ 11*)
+ LSOF_TSTBIGF=" "
+ LSOF_VERS=11000
+ ;;
+ 12*)
+ LSOF_TSTBIGF=" "
+ LSOF_VERS=12000
+ ;;
*)
echo Unknown FreeBSD release: `uname -r`
rm -f $LSOF_HLP
# Clear LSOF_UNSUP message for supported versions of FreeBSD.
case $LSOF_VERS in # {
- 4090|8020|8030|9000|10000)
+ 4090|8020|8030|8040|9000|10000|11000|12000)
LSOF_UNSUP=""
;;
esac # }
- # Get system CFLAGS from FREEBSD_MAKE_CONF (default=/etc/make.conf).
+ # Get system CFLAGS, if possible.
- 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 <bsd.prog.mk>" | $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"
+ LSOF_TMP1=`echo "all:\n.include <bsd.prog.mk>" | $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 # }
+ 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"
+ echo $LSOF_CFGF | grep -q NEEDS_BOOL_TYPEDEF
+ if test $? -ne 0
+ then # {
+ LSOF_CFGF="$LSOF_CFGF -DNEEDS_BOOL_TYPEDEF"
+ LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DNEEDS_BOOL_TYPEDEF"
fi # }
# Determine path to FreeBSD sources.
exit 1
fi # }
+ # Test pause() status in system.h.
+
+ if test -r ${FREEBSD_SYS}/sys/systm.h # {
+ then
+ grep -q pause_sbt ${FREEBSD_SYS}/sys/systm.h
+ if test $? -eq 0 # {
+ then
+ LSOF_CFGF="$LSOF_CFGF -DHAS_PAUSE_SBT"
+ fi # }
+ fi # }
+
+ # Check the C library for closefrom and dup2.
+
+ if test -r /usr/lib/libc.a # {
+ then
+ nm /usr/lib/libc.a | grep -q "W dup2"
+ if test $? -eq 0 # {
+ then
+ LSOF_CFGF="$LSOF_CFGF -DHAS_DUP2"
+ fi # }
+ nm /usr/lib/libc.a | grep -q "W closefrom"
+ if test $? -eq 0 # {
+ then
+ LSOF_CFGF="$LSOF_CFGF -DHAS_CLOSEFROM"
+ fi # }
+ fi # }
+
# Do FreeBSD version-specific stuff.
case $LSOF_VERS in # {
fi # }
fi # }
fi # }
+ if test -r ${FREEBSD_SYS}/sys/filedesc.h # {
+ then
+ grep -q filedescent ${FREEBSD_SYS}/sys/filedesc.h
+ if test $? -eq 0 # {
+ then
+ LSOF_CFGF="$LSOF_CFGF -DHAS_FILEDESCENT"
+ fi # }
+ fi # }
+ if test -r ${FREEBSD_SYS}/fs/tmpfs/tmpfs.h # {
+ then
+ LSOF_CFGF="$LSOF_CFGF -DHAS_TMPFS"
+ fi #}
# Do FreeBSD 5.2 and higher version-specific stuff.
# Do FreeBSD 6.0 and higher version-specific stuff.
+ if test -r ${LSOF_INCLUDE}/sys/_types.h # {
+ then
+ grep __dev_t ${LSOF_INCLUDE}/sys/_types.h | grep -q 64
+ if test $? -eq 0 # {
+ then
+ if test "X$LSOF_TSTDFLG" = "X" # {
+ then
+ LSOF_TSTDFLG="-DLT_DEV64"
+ else
+ LSOF_TSTDFLG="$LSOF_TSTDFLG -DLT_DEV64"
+ fi # }
+ fi # }
+ fi # }
if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h # {
then
grep -q i_din2 ${LSOF_INCLUDE}/ufs/ufs/inode.h
then
LSOF_CFGF="$LSOF_CFGF -DHAS_UFS1_2"
fi # }
+ grep -q i_dev ${LSOF_INCLUDE}/ufs/ufs/inode.h
+ if test $? -ne 0 # {
+ then
+ LSOF_CFGF="$LSOF_CFGF -DHAS_NO_IDEV"
+ fi # }
fi # }
if test -r ${LSOF_INCLUDE}/sys/conf.h # {
then
LSOF_CFGF="$LSOF_CFGF -DHAS_SYS_SX_H"
fi # }
+ # Do FUSE file system test,
+
+ if test -r ${FREEBSD_SYS}/fs/fuse/fuse_node.h # {
+ then
+ LSOF_CFGF="$LSOF_CFGF -DHASFUSEFS"
+ 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.
then
LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DHAS_Z_PHYS"
fi # }
+ if test -r ${LSOF_FBSD_ZFS_SYS}/compat/opensolaris/sys/sdt.h #{
+ then
+ grep -q opt_kdtrace.h ${LSOF_FBSD_ZFS_SYS}/compat/opensolaris/sys/sdt.h
+ if test $? -eq 0 # {
+ then
+ rm -f opt_kdtrace.h
+ touch opt_kdtrace.h
+ fi # }
+ fi # }
+ if test -r ${LSOF_FBSD_ZFS_SYS}/compat/opensolaris/sys/kcondvar.h #{
+ then
+ grep -q cv_timedwait_sbt ${LSOF_FBSD_ZFS_SYS}/compat/opensolaris/sys/kcondvar.h
+ if test $? -eq 0 # {
+ then
+ LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DHAS_CV_TIMEDWAIT_SBT"
+ fi # }
+ fi #}
+ if test -r /usr/include/sys/random.h # {
+ then
+ grep -q opt_random.h /usr/include/sys/random.h
+ if test $? -eq 0 # {
+ then
+ rm -f opt_random.h
+ touch opt_random.h
+ fi # }
+ fi # }
fi # }
if test -r ${LSOF_INCLUDE}/sys/vnode.h # {
then
then
LSOF_CFGF="$LSOF_CFGF -DNEEDS_BOOLEAN_T"
fi # }
- fi # |
+ fi # }
+ if test -r ${LSOF_INCLUDE}/sys/sockbuf.h # {
+ then
+ grep -q 'u_int sb_ccc;' ${LSOF_INCLUDE}/sys/sockbuf.h
+ if test $? -eq 0 # {
+ then
+ LSOF_CFGF="$LSOF_CFGF -DHAS_SB_CCC"
+ fi # }
+ fi # }
+ if test -r ${LSOF_INCLUDE}/sys/filedesc.h # {
+ then
+ grep -q '^struct fdescenttbl {' ${LSOF_INCLUDE}/sys/filedesc.h
+ if test $? -eq 0 # {
+ then
+ LSOF_CFGF="$LSOF_CFGF -DHAS_FDESCENTTBL"
+ fi # }
+ fi # }
fi # }
fi # }
fi # }
+ if test $LSOF_VERS -eq 10000 # {
+ then
+
+ # Do specific FreeBSD 10 version-specific stuff.
+
+ LSOF_TMP1=`uname -m`
+ if test "X$LSOF_TMP1" = "Xi386" # {
+ then
+ LSOF_CFGF="$LSOF_CFGF -DNEEDS_BOOL_TYPEDEF"
+ fi # }
+ fi # }
;;
esac # }
LSOF_CFGF="$LSOF_CFGF -DFREEBSDV=$LSOF_VERS"
LSOF_CFGF="$LSOF_CFGF -DHASNORPC_H"
fi # }
+ # Test for TCP_* symbols.
+
+ if test -r ${LSOF_INCLUDE}/netinet/tcp.h # (
+ then
+ grep -q TCP_ESTABLISHED ${LSOF_INCLUDE}/netinet/tcp.h
+ if test $? -eq 0 # {
+ then
+ LSOF_CFGF="$LSOF_CFGF -DNEEDS_NETINET_TCPH"
+ fi #}
+ fi # }
+
# Test for SELinux support.
LSOF_TMP1=0
LSOF_CFGF="$LSOF_CFGF -DHASSELINUX"
LSOF_CFGL="$LSOF_CFGL -lselinux"
fi # }
+
+ # Test for UNIX socket endpoint support.
+
+ if test -r ${LSOF_INCLUDE}/linux/sock_diag.h -a -r ${LSOF_INCLUDE}/linux/unix_diag.h # {
+ then
+ LSOF_CFGF="$LSOF_CFGF -DHASUXSOCKEPT"
+ fi # }
+
+ # Test for pseudoterminal endpoint support.
+
+ if test -r ${LSOF_INCLUDE}/linux/major.h # {
+ then
+ grep -q TTYAUX_MAJOR ${LSOF_INCLUDE}/linux/major.h
+ if test $? -eq 0 # {
+ then
+ LSOF_CFGF="$LSOF_CFGF -DHASPTYEPT"
+ fi # }
+ fi # }
LSOF_DIALECT_DIR="linux"
LSOF_CFGF="$LSOF_CFGF -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE"
;;
LSOF_CFGF="$LSOF_CFGF -DHAS_PC_DIRENTPERSEC"
fi # }
fi # }
+ if test -r ${LSOF_INCLUDE}/sys/aio_req.h # {
+ then
+ grep "struct[ ]aio_req" ${LSOF_INCLUDE}/sys/aio_req.h > /dev/null 2>&1
+ if test $? -eq 0 # {
+ then
+ LSOF_CFGF="$LSOF_CFGF -DHAS_AIO_REQ_STRUCT"
+ fi # }
+ fi # }
fi # }
if test -r ${LSOF_INCLUDE}/sys/zone.h # {
then
if test $LSOF_TMP1 -eq 1 # {
then
+ # Warn that VxFS is unsupported.
+
+ LSOF_UNSUP2="WARNING: VxFS is no longer supported by Solaris lsof."
+
# The VxFS header files are for VxFS version 3.4 or above. Enable VxFS
# for those versions.
fi # }
fi # }
echo "DEBUG= $LSOF_DEBUG" >> $LSOF_MKFC
+if test "X$LSOF_OPINC" != "X" # {
+then
+ LSOF_DINC="$LSOF_DINC $LSOF_OPINC"
+fi # }
if test "X$LSOF_DINC" != "X" # {
then
echo "" >> $LSOF_MKFC
./Customize $LSOF_DIALECT_DIR
fi # }
-# Issue unsupported warning, as appropriate.
+# Issue unsupported warnings, as appropriate.
if test "X$LSOF_UNSUP" != "X" # {
then
echo "$LSOF_UNSUP"
fi #}
+if test "X$LSOF_UNSUP2" != "X" # {
+then
+ echo "$LSOF_UNSUP2"
+fi #}
exit 0