3 # Configure -- configure lsof
5 # See the LSOF_HLP here document for usage.
7 # See the lsof distribution file 00XCONFIG for information on setting
8 # environment variables for cross-configuring lsof -- e.g., for configuring
9 # for Linux 2.3 on a machine running 2.4. Marty Leisner suggested this
10 # support and provided the Linux Configure stanza modifications.
12 # When configuring for a particular dialect, <target-dialect>, this script
13 # requires that the subdirectory ./dialects/<target-dialect> contain a
14 # shell script, named $LSOF_MK, that places its source modules in this
17 # $Id: Configure,v 1.165 2018/02/14 14:18:48 abe Exp $
19 # LSOF_CFLAGS_OVERRIDE=1 may be introduced through the environment to cause
20 # the library Makefile's CFLAGS definition to override any in the
23 # LSOF_DISTRIBKVM may be introduced through the environment to specify the
24 # Sun4 kernel virtual memory type of distrib.cf
26 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"
27 LSOF_HLP_BASE=./cfghlp.
28 LSOF_HLP=${LSOF_HLP_BASE}$$
30 # LSOF_LOCALSUFFIX may be introduced through the environment to select a local
31 # version of a Makefile. It is used as a suffix to $LSOF_MKF.
33 # LSOF_MAKE may be introduced through the environment to specify a path to the
34 # make command. It defaults to `which make`, if that is non-NULL;
35 # otherwise to the string "make".
37 if test "X$LSOF_MAKE" = "X" # {
39 LSOF_MAKE=`which make`
40 if test "X$LSOF_MAKE" = "X" # {
48 # LSOF_MKC is the dialect's Mksrc create command -- default "ln -s".
50 # LSOF_MKFC may be introduced though the environment to change the name
51 # used for the created make file.
53 if test "X$LSOF_MKFC" = "X" # {
61 LSOF_LIBMKFSKEL=Makefile.skel
65 # Make sure no other variable important to Makefile construction is
66 # already set in the environment.
68 # $AFS_VICE locatiion of AFS VICE directory
69 # (default = /usr/vice)
70 # $LSOF_AFS AFS temporary
71 # $LSOF_AFS_NQ AFS-not-qualified flag
72 # $LSOF_AFSV AFS version
73 # $LSOF_AR archive command and its arguments for making the
75 # $LSOF_ARCH Unix dialect architecture as a string (may be
76 # supplied externally)
77 # $LSOF_CC C compiler name (may be supplied externally)
78 # $LSOF_CCV C compiler version (may be supplied externally)
79 # $LSOF_CDIR configuration directory
80 # $LSOF_CFGD depend options
81 # $LSOF_CFGDN depend file name
82 # $LSOF_CFGF C flags -- e.g., -D's
83 # $LSOF_CFGL last lsof library loader flags -- e.g., -l's
84 # $LSOF_CINFO Configure information for LSOF_CINFO in version.h
85 # $LSOF_CTFH Solaris 10 and above libctf.h status
86 # $LSOF_CTFL Solaris 10 and above -lctf status
87 # $LSOF_DEBUG Makefile's DEBUG string
88 # $LSOF_DINC include flags -- -I's
89 # $LSOF_DINC_ADD include flags status
90 # $LSOF_DOC special document (man page) directory path
91 # $LSOF_ERR internal error flag
92 # $LSOF_FCFGL first lsof library loader flags -- e.g., -l's
93 # that must precede $LSOF_LIB
94 # $LSOF_FBSD_ZFS FreeBSD $LSOF_FBSD_ZFS_MKF status
95 # $LSOF_FBSD_ZFS_CFGF FreeBSD ZFS configure flags
96 # $LSOF_FBSD_ZFS_MKF FreeBSD ZFS Makefile name
97 # $LSOF_FBSD_ZFS_SYS FreeBSD ZFS system sources location
98 # $LSOF_HOST host name (e.g., from uname -n)
99 # $LSOF_INCLUDE directory where header files are found
100 # (default = /usr/include)
101 # $LSOF_LD loader name if not $LSOF_CC
102 # $LSOF_LIB_NO if "N" don't configure the lsof library
103 # $LSOF_LOCALSUFFIX local suffix for Makefile
104 # $LSOF_NBSD_BUFQH NetBSD <sys/bufq.h> copy status
105 # $LSOF_NBSD_PTYFS NetBSD ${NETBSD_SYS}/sys/fs/ptyfs/ copy status
106 # $LSOF_N_UNIXV *BSD system's kernel file
107 # $LSOF_OPINC supplies additional -I/path arguments for the
109 # $LSOF_PL patch level
110 # $LSOF_RANLIB randomizing command for the lsof library
111 # $LSOF_RANLIB_SUP if non-NULL $LSOF_RANLIB was supplied
112 # $LSOF_SCRIPT_CALL Customize and Inventory scripts call status
113 # $LSOF_SPMKF Special Makefile name
114 # $LSOF_TGT canonical target abbreviation (shortest)
115 # $LSOF_TMP internal temporary
116 # $LSOF_TMP1 internal temporary
117 # $LSOF_TMP2 internal temporary
118 # $LSOF_TMP3 internal temporary
119 # $LSOF_TMP4 internal temporary
120 # $LSOF_TMP5 internal temporary
121 # $LSOF_TMP6 internal temporary
122 # $LSOF_TMPC_BASE base name for $LSOF_TMPC
123 # $LSOF_TMPC temporary C source file base name
124 # $LSOF_TSTBIGF big file capability (for $LSOF_TSTCFLG)
125 # $LSOF_TSTCC tests CC file
126 # $LSOF_TSTCFLG tests CFLAGS file
127 # $LSOF_TSTDFLG dialect-specific values for $LSOF_TSTCFLG
128 # $LSOF_TSTK64 status of 64 bit kernel (for $LSOF_TSTCFLG)
129 # $LSOF_TSTKMEM /dev/kmem usage status (for $LSOF_TSTCFLG)
130 # $LSOF_TSTLFF tests LDFLAGS file
131 # $LSOF_TSTLFLG tests LDFLAGS values
132 # $LSOF_TSTSUBD test subdirectory
133 # $LSOF_TSTVPATH test v_path state (for $LSOF_TSTCFLG)
134 # $LSOF_TSTXO test extra objects (for $LSOF_TSTXOC)
135 # $LSOF_TSTXOC test extra objects file
136 # $LSOF_UNSUP Lsof is unsupported on this dialect
137 # $LSOF_UNSUP2 Second message about lack of support
138 # $LSOF_VERS Unix dialect version as a decimal number (may
139 # be supplied externally)
140 # $LSOF_VSTR Unix dialect version as a string -- may be supplied
143 if test "X$AFS_VICE" = "X" # {
150 if test "X$LSOF_ARCH" = "X" # {
165 LSOF_FBSD_ZFS_CFGF=""
166 LSOF_FBSD_ZFS_MKF="Makefile.zfs"
169 if test "X$LSOF_INCLUDE" = "X" # {
172 LSOF_INCLUDE="/usr/include"
174 LSOF_DINC="-I$LSOF_INCLUDE"
179 if test "X$LSOF_RANLIB" = "X" # {
186 LSOF_SCRIPT_CALL="yes"
190 LSOF_TMPC_BASE=./lsof_Configure_tmp_
191 LSOF_TMPC=${LSOF_TMPC_BASE}$$
193 LSOF_TSTSUBD="./tests"
194 LSOF_TSTCC="${LSOF_TSTSUBD}/config.cc"
195 LSOF_TSTCFLG="${LSOF_TSTSUBD}/config.cflags"
199 LSOF_TSTLFF="${LSOF_TSTSUBD}/config.ldflags"
203 LSOF_TSTXOC="${LSOF_TSTSUBD}/config.xobj"
204 LSOF_UNSUP="WARNING: unsupported dialect or version"
206 if test "X$LSOF_VERS" = "X" # {
210 if test "X$LSOF_VSTR" = "X" # {
215 # Establish echo type -- Berkeley or SYSV.
218 if test "X$j" = "X-n "
227 # Make sure temporary files are removed before an abnormal exit.
229 trap 'rm -f ${LSOF_HLP_BASE}* ${LSOF_TMPC_BASE}*; exit 1' 1 2 3 15
232 cat > $LSOF_HLP << LSOF_HLP
233 Usage: Configure <options> <target-dialect>
234 <options>: -clean : clean up previous configuration
235 -d|-dialects : display a list of supported dialect versions
236 -h|-help : display help information
237 -n : avoid AFS, customization, and inventory checks
238 <target-dialect> (****USE -d TO GET TESTED DIALECT VERSION NUMBERS****):
239 aix|aixgcc : IBM AIX xlc (aix) or gcc (aixgcc)
240 darwin : Apple Darwin
242 digital_unix|du : Digital UNIX
244 hpux|hpuxgcc : HP-UX cc (hpux) or gcc (hpuxgcc)
247 nextstep|next|ns|nxt : NEXTSTEP
249 openstep|os : OPENSTEP
250 osr|sco : SCO OpenServer < 6.0.0, SCO devloper's compiler
251 osrgcc|scogcc : SCO OpenServer < 6.0.0, gcc compiler
252 osr6 : SCO OpenServer 6.0.0, SCO compiler
253 solaris|solariscc : Solaris gcc (solaris) or cc (solariscc)
255 unixware|uw : SCO|Caldera UnixWare
261 while test $args -gt 0 # {
265 if test -r $LSOF_MKFC # {
267 echo "$LSOF_MAKE -f $LSOF_MKFC clean"
268 $LSOF_MAKE -f $LSOF_MKFC clean
270 if test -r ${LSOF_LIB}/${LSOF_LIBMKF} # {
272 echo "(cd ${LSOF_LIB}; $LSOF_MAKE -f ${LSOF_LIBMKF} clean)"
273 (cd ${LSOF_LIB}; $LSOF_MAKE -f ${LSOF_LIBMKF} clean)
275 if test -r ${LSOF_LIB}/${LSOF_LIBMKF}.skel # {
277 echo "(cd ${LSOF_LIB}; $LSOF_MAKE -f ${LSOF_LIBMKF}.skel clean)"
278 (cd ${LSOF_LIB}; $LSOF_MAKE -f ${LSOF_LIBMKF}.skel clean)
282 if test -r ${LSOF_TSTSUBD}/Makefile # {
284 echo "(cd ${LSOF_TSTSUBD}; $LSOF_MAKE spotless)"
285 (cd ${LSOF_TSTSUBD}; $LSOF_MAKE spotless)
287 echo '(cd ${LSOF_TSTSUBD}; rm *.o config.*)'
288 (cd ${LSOF_TSTSUBD}; rm *.o config.*)
290 rm -f $LSOF_F $LSOF_MKFC $LSOF_FBSD_ZFS_MKF ${LSOF_TMPC_BASE}*
291 echo rm -f $LSOF_F $LSOF_MKFC $LSOF_FBSD_ZFS_MKF ${LSOF_TMPC_BASE}*
292 rm -rf AFSHeaders AFSVersion solaris11 version.h vnode_if.h
293 echo "rm -rf AFSHeaders AFSVersion solaris11 version.h vnode_if.h"
294 rm -f ${LSOF_HLP_BASE}* cd9660_node.h lockf_owner.h fbsd_minor.h
295 echo "rm -f ${LSOF_HLP_BASE}* cd9660_node.h lockf_owner.h fbsd_minor.h"
296 rm -f opt_kdtrace.h opt_random.h
297 echo "rm -f opt_kdtrace.h opt_random.h"
298 rm -f dialects/aix/aix5/j2/j2_snapshot.h
299 echo "rm -f dialects/aix/aix5/j2/j2_snapshot.h"
300 rm -f dialects/sun/solaris10 # DEBUG -- for s10_44
301 echo "rm -f dialects/sun/solaris10" # DEBUG -- for s10_44
302 rm -f dialects/du/du5_sys_malloc.h
303 echo "rm -f dialects/du/du5_sys_malloc.h"
304 rm -f dialects/hpux/kmem/hpux_mount.h
305 echo "rm -f dialects/hpux/kmem/hpux_mount.h"
306 rm -rf dialects/n+obsd/include
307 echo "rm -rf dialects/n+obsd/include"
308 rm -f dialects/uw/uw7/vm/swap.h
309 echo "rm -f dialects/uw/uw7/vm/swap.h"
310 rm -f ${LSOF_LIB}/${LSOF_LIBMKF}
311 echo "rm -f ${LSOF_LIB}/${LSOF_LIBMKF}"
316 if test -r ./00DIALECTS -a -r ./version # {
318 V=`sed '/VN/s/.ds VN \(.*\)/\1/' version`
319 echo "lsof $V has been *tested* on these UNIX dialect versions:"
321 echo Although "$V hasn't been tested on other versions of these dialects,"
322 echo "it may work. Try \`Configure <dialect>\` and \`make\` to see."
326 echo "Can't display UNIX dialect version information:"
327 if test ! -r ./00DIALECTS # {
329 echo " ./00DIALECTS is inaccessible."
331 if test ! -r ./version # {
333 echo " ./version is inaccessible."
340 -h|-help) cat $LSOF_HLP
346 LSOF_SCRIPT_CALL="no"
350 if test "X$LSOF_TGT" != "Xno-target" # {
352 echo "Only one dialect may be configured at a time."
353 echo 'Both "$LSOF_TGT" and "$1" were specified.'
363 args=`expr $args - 1`
366 case $LSOF_TGT in # {
368 echo "No target dialect was specified."
374 # Configure for AIX xlc and AIX gcc.
378 # AIXA stands for AIX architecture. It is assigned these values in this
381 # 0 The AIX version is < 5.0, or the AIX 5.0 architecture is
382 # Power and the kernel bit size is 32.
384 # 1 The AIX version is >= 5.0, the AIX architecture is Power,
385 # and the kernel bit size is 64.
387 # 2 The AIX version is >= 5.0 and the architecture is IA64.
389 if test "X$LSOF_RANLIB_SUP" = "X" # {
391 LSOF_RANLIB="@echo \\\\\\\\c" # AIX make doesn't like a null ${RANLIB}.
393 if test "X$LSOF_VSTR" = "X" # {
396 # If the AIX version isn't pre-defined, determine it.
399 if test "X$LSOF_TMP1" = "X5" # {
402 # If the AIX version is 5, build the version string with `uname -rv`
405 LSOF_VSTR=`uname -r | awk '{printf "5.%d.0.0\n",\$1}'`
406 echo "Uname reports the version is $LSOF_VSTR."
409 # See if oslevel can determine the version.
411 LSOF_TMP1=/usr/bin/oslevel
412 if test -x $LSOF_TMP1 # {
414 echo "Determining AIX version with $LSOF_TMP1."
415 echo "This may take a while, depending on your maintenance level."
416 LSOF_VSTR=`$LSOF_TMP1 | sed 's/[^0-9]*\([0-9\.]*\).*/\1/'`
417 echo "$LSOF_TMP1 reports the version is $LSOF_VSTR."
420 # If oslevel can't be used, build the version string with
421 # `uname -rv` and issue a warning.
423 LSOF_VSTR=`uname -rv | awk '{printf "%d.%d.0.0\n",\$2,\$1}'`
424 echo "WARNING: can't execute $LSOF_TMP1; uname -rv reports"
425 echo " the version is $LSOF_VSTR; edit CFGF in Makefile and"
426 echo " lib/Makefile to refine AIXV and LSOF_VSTR."
430 if test "X$LSOF_VERS" = "X" # {
432 LSOF_VERS=`echo $LSOF_VSTR | sed 's/\.//g'`
434 if test $LSOF_VERS -ge 4320 # {
438 if test "X$LSOF_CC" = "X" # {
440 if test "X$LSOF_TGT" = "Xaixgcc" # {
443 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
449 echo $LSOF_CC | grep gcc > /dev/null
453 # Prevent use of gcc for AIX below 4.1.
455 if test $LSOF_VERS -lt 4100 # {
457 echo "********************************************************"
458 echo "* Sorry, but gcc can't be used to compile lsof for AIX *"
459 echo "* versions less than 4.1, because of possible kernel *"
460 echo "* structure alignment differences between it and xlc. *"
461 echo "********************************************************"
469 if test "X$AIX_HAS_AFS" != "X" # {
471 LSOF_AFS=$AIX_HAS_AFS
473 if test "X$LSOF_AFS" != "Xno" # {
475 if test "X$LSOF_AFS" = "Xyes" -o -r ${AFS_VICE}/etc/ThisCell # {
477 if test "X$LSOF_AFS" != "Xyes" # {
479 if test "X$LSOF_SCRIPT_CALL" = "Xno" # {
481 if test -r ./AFSHeaders -a -r ./AFSVersion # {
486 if test ! -x ./AFSConfig # {
488 echo "Can't find or execute the AFSConfig script"
493 if test $? -eq 0 -a -r ./AFSHeaders -a -r ./AFSVersion # {
499 if test "X$LSOF_AFS" = "Xyes" # {
501 if test "X$LSOF_AFSV" = "X" # {
503 if test -r ./AFSVersion # {
505 LSOF_AFSV=`cat ./AFSVersion | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1 \2/' | awk '{printf "%d%02d\n",\$1,\$2}'`
507 echo "!!!FATAL: no ./AFSVersion file. It should have been"
508 echo " created by a previous AFS configuration run."
513 if test $LSOF_VERS -gt 4330 -o LSOF_AFSV -gt 305 # {
515 echo "!!!FATAL: Lsof does not support AFS on this combination of"
516 echo " AIX ($LSOF_VERS) and AFS ($LSOF_AFSV) versions."
517 echo " To disable AFS, set the value of the AIX_HAS_AFS"
518 echo " environment variable to \"no\"."
522 LSOF_CFGF="$LSOF_CFGF -DHAS_AFS=$LSOF_AFSV"
523 LSOF_DINC="$LSOF_DINC -I`cat ./AFSHeaders`"
524 if test -r ${LSOF_INCLUDE}/sys/inttypes.h # {
526 grep "^typedef.*int16;" ${LSOF_INCLUDE}/sys/inttypes.h > /dev/null
529 LSOF_CFGF="$LSOF_CFGF -DHASINT16TYPE"
531 grep "^typedef.*u_int32;" ${LSOF_INCLUDE}/sys/inttypes.h > /dev/null
534 LSOF_CFGF="$LSOF_CFGF -DHASUINT16TYPE"
536 grep "^typedef.*int32;" ${LSOF_INCLUDE}/sys/inttypes.h > /dev/null
539 LSOF_CFGF="$LSOF_CFGF -DHASINT32TYPE"
547 # Miscellaneous AIX tests
549 if test -d ${LSOF_INCLUDE}/nfs # {
551 LSOF_CFGF="$LSOF_CFGF -DHAS_NFS"
553 echo $LSOF_CC | grep cc | grep -v gcc > /dev/null
554 if test $? -eq 0 -a $LSOF_VERS -ge 4140 -a $LSOF_VERS -lt 5000 # {
556 LSOF_CFGL="$LSOF_CFGL -bnolibpath"
558 if test -r ${LSOF_INCLUDE}/sys/socket.h # {
560 grep AF_INET6 ${LSOF_INCLUDE}/sys/socket.h > /dev/null
563 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
566 if test -r ${LSOF_INCLUDE}/sys/stat.h # {
568 grep stat64 ${LSOF_INCLUDE}/sys/stat.h > /dev/null
571 LSOF_CFGF="$LSOF_CFGF -DHASSTAT64"
574 #DEBUG SANFS if test -r ${LSOF_INCLUDE}/sys/sanfs/sanfsnode.h??? # {
576 #DEBUG SANFS LSOF_CFGF="$LSOF_CFGF -DHAS_SANFS"
578 if test $LSOF_VERS -ge 5000 # {
581 # This is AIX 5 or greater.
583 if test -d ${LSOF_INCLUDE}/j2 # {
586 # The AIX > 5.0 system has jfs2 support. Make the necesssary definitions
589 rm -f dialects/aix/aix5/j2/j2_snapshot.h
590 (cd dialects/aix/aix5/j2; ln -s private_j2_snapshot.h j2_snapshot.h)
591 LSOF_CFGF="$LSOF_CFGF -DHAS_JFS2"
592 LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/aix/aix5"
593 if test $LSOF_VERS -ge 5200 # {
595 if test -r ${LSOF_INCLUDE}/j2/j2_snapshot.h # {
598 # The system has its own j2_snapshot.h, so make sure the
599 # private lsof copy is discarded.
601 rm -f dialects/aix/aix5/j2/j2_snapshot.h
603 echo $LSOF_CC | grep gcc > /dev/null
607 # Test gcc version for AIX 5.2.
609 LSOF_TMP1=`echo $LSOF_CCV | awk -F . '{printf "%d%02d",$1,$2}'`
610 if test $LSOF_TMP1 -ge 303 # {
613 # Add gcc >= 3.3 option to handle use of i_dev from the wInode
614 # anonymous structure reference in the JFS2 inode structure of
617 LSOF_CFGF="$LSOF_CFGF -fms-extensions"
623 # Determine the AIX architecture type and set AIXA accordingly.
625 if test "X$AIX_ARCH" = "X" # {
627 uname -a | grep -i ia64 > /dev/null
635 if test "X$AIX_ARCH" = "Xia64" # {
638 # This is AIX >= 5 on ia64.
641 echo $LSOF_CC | grep gcc > /dev/null
645 # Quit if gcc was specified as the compiler, since the gcc options to
646 # do an ia64 lsof compilation are unknown.
648 echo "*************************************************************"
650 echo "* !!!!!!!!!!!!!!!!!!!!! FATAL ERROR !!!!!!!!!!!!!!!!!!!!!!! *"
652 echo "* Gcc can't be used to compile lsof for AIX 5 and above on *"
653 echo "* the ia64 architecture. Consult lsof's FAQ (in the file *"
654 echo "* 00FAQ) for more information. *"
656 echo "*************************************************************"
661 if test "X$LSOF_AR" = "X" # {
663 LSOF_AR="/usr/bin/ar cr"
665 LSOF_CFGF="$LSOF_CFGF -q64"
666 LSOF_CFGL="$LSOF_CFGL -lelf"
669 # This is AIX >= 5 on Power architecture.
671 echo $LSOF_CC | grep cc | grep -v gcc > /dev/null
674 LSOF_CFGL="$LSOF_CFGL -bnolibpath"
676 if test "X$AIX_KERNBITS" = "X" # {
679 # The kernel bit size wasn't predefined. Determine it by compiling
680 # and executing a test program.
683 echo "#include <sys/systemcfg.h>" > ${LSOF_TMPC}.c
684 echo 'main(){ if (__KERNEL_32()) printf("32\\n");' >> ${LSOF_TMPC}.c
685 echo 'else if (__KERNEL_64()) printf("64\\n");' >> ${LSOF_TMPC}.c
686 echo 'else printf("0\\n");' >> ${LSOF_TMPC}.c
687 echo "return(0); }" >> ${LSOF_TMPC}.c
688 echo "Testing kernel bit size with $LSOF_CC"
689 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x
690 if test ! -x ${LSOF_TMPC}.x # {
692 echo "!!!FATAL: can't compile test program, ${LSOF_TMPC}.c."
693 rm -f $LSOF_HLP rm -f ${LSOF_TMPC}.*
696 AIX_KERNBITS=`./${LSOF_TMPC}.x`
700 # Use the kernel bit size specification to select archiver and compiler
701 # options, and to update AIXA.
703 case $AIX_KERNBITS in # {
705 if test "X$LSOF_AR" = "X" # {
707 LSOF_AR="/usr/bin/ar cr"
712 if test "X$LSOF_AR" = "X" # {
714 LSOF_AR="/usr/bin/ar -X 64 -v -q"
718 echo $LSOF_CC | grep gcc > /dev/null
721 LSOF_CFGF="$LSOF_CFGF -maix64"
723 LSOF_CFGF="$LSOF_CFGF -q64"
727 echo "!!!FATAL: unrecognized kernel bit size: $AIX_KERNBITS"
732 # Put kernel bit size information in $LSOF_CINFO and $LSOF_CFGF.
734 echo "Kernel bit size: $AIX_KERNBITS"
735 LSOF_TMP2="${AIX_KERNBITS} bit kernel"
736 if test "X$LSOF_CINFO" != "X" # {
738 LSOF_CINFO="${LSOF_CINFO} ${LSOF_TMP2}"
740 LSOF_CINFO="${LSOF_TMP2}"
742 LSOF_CFGF="$LSOF_CFGF -DAIX_KERNBITS=${AIX_KERNBITS}"
744 LSOF_CFGF="$LSOF_CFGF -DAIXA=$LSOF_TMP1"
745 if test "X$LSOF_TSTDFLG" = "X" # {
747 LSOF_TSTDFLG="-DLT_AIXA=$LSOF_TMP1"
749 LSOF_TSTDFLG="$LSOF_TSTDFLG -DLT_AIXA=$LSOF_TMP1"
753 # AIX is < 5, so set AIXA accordingly.
755 LSOF_CFGF="$LSOF_CFGF -DAIXA=0"
756 if test "X$LSOF_TSTDFLG" = "X" # {
758 LSOF_TSTDFLG="-DLT_AIXA=0"
760 LSOF_TSTDFLG="$LSOF_TSTDFLG -DLT_AIXA=0"
763 LSOF_CFGF="$LSOF_CFGF -DAIXV=$LSOF_VERS"
765 echo $LSOF_CC | grep gcc > /dev/null
771 if test $LSOF_VERS -ge 4100 -a $LSOF_VERS -lt 4200 # {
773 if test "X$AIX_USHACK" = "X" # {
776 # Compile and run a gcc test program to evaluate the user structure.
779 echo "#include <stddef.h>" > ${LSOF_TMPC}.c
780 echo "#include <sys/user.h>" >> ${LSOF_TMPC}.c
781 echo "main(){exit((offsetof(struct user, U_irss) & 0x7) ? 1 : 0);}" >>${LSOF_TMPC}.c
782 echo "Testing user.h with $LSOF_CC"
783 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x
784 if ! ${LSOF_TMPC}.x # {
792 if test "$AIX_USHACK" = "Y" -o "$AIX_USHACK" = "y" # {
799 if test ${LSOF_TMP1} -eq 1 # {
801 echo "Applying gcc AIX 4.1+ user struct alignment hack"
802 rm -rf ./dialects/aix/aix$LSOF_VERS
803 mkdir ./dialects/aix/aix$LSOF_VERS
804 mkdir ./dialects/aix/aix${LSOF_VERS}/sys
805 sed 's/U_irss\[/dummy_for_alignment, U_irss\[/' < ${LSOF_INCLUDE}/sys/user.h > ./dialects/aix/aix${LSOF_VERS}/sys/user.h
806 LSOF_CFGF="$LSOF_CFGF -U_LONG_LONG -I`pwd`/dialects/aix/aix$LSOF_VERS"
811 # Get xlc version number
814 echo "main(){}" > ${LSOF_TMPC}.c
815 echo "Getting version number of ${LSOF_CC}."
816 $LSOF_CC -c ${LSOF_TMPC}.c -I${LSOF_INCLUDE} -o ${LSOF_TMPC}.o -qlist > /dev/null 2>&1
817 LSOF_CCV=`head -1 ${LSOF_TMPC}.lst | sed 's/\(.*\) ---.*/\1/'`
819 echo "The version is \"${LSOF_CCV}\"."
820 echo $LSOF_CCV | grep "Version [0-9]" > /dev/null
823 LSOF_TMP=`echo $LSOF_CCV | sed 's/.*Version \([0-9]*\).*/\1/'`
824 if test "X$LSOF_TMP" != "X" -a $LSOF_TMP -ge 4 # {
826 if test $LSOF_TMP -ge 6 # {
828 LSOF_CFGF="$LSOF_CFGF -qmaxmem=-1"
830 LSOF_CFGF="$LSOF_CFGF -qmaxmem=16384"
835 if test $LSOF_VERS -ge 5300 # {
841 # Configure for Apple Darwin.
844 if test "X$LSOF_CC" = "X" # {
847 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
849 if test "X$LSOF_VSTR" = "X" # {
853 if test "X$LSOF_VERS" = "X" # {
856 # If the Darwin / Mac OS X version isn't pre-defined, determine it.
858 case $LSOF_VSTR in # {
877 7.*) # Mac OS X 10.3 (Panther)
880 8.*) # Mac OS X 10.4 (Tiger)
883 9.*) # Mac OS X 10.5 (Leopard)
886 10.*) # Mac OS X 10.6 (SnowLeopard)
889 11.*) # Mac OS X 10.7 (Lion)
892 12.*) # Mac OS X 10.8 (Mountain Lion)
895 13.*) # Next Mac OS X
899 echo Unknown Darwin release: `uname -r`
900 echo Assuming Darwin 12.0
906 # Do Darwin version-specific stuff.
908 case $LSOF_VERS in # {
910 LSOF_TMP1="hfs/hfs.h hfs/hfs_macos_defs.h miscfs/devfs/devfsdefs.h miscfs/devfs/devfs_proto.h miscfs/fdesc/fdesc.h"
913 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"
916 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"
919 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
920 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"
923 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
924 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"
927 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
928 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"
931 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
934 LSOF_TSTBIGF=" " # enable LTbigf test
935 if test $LSOF_VERS -eq 900 # {
937 LSOF_CFGF="$LSOF_CFGF -DNEEDS_MACH_PORT_T"
941 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
945 echo "Unsupported Darwin version: $LSOF_VERS"
953 LSOF_CFGF="$LSOF_CFGF -mdynamic-no-pic"
954 LSOF_CFGL="$LSOF_CFGL -lcurses"
956 if test "X$DARWIN_XNUDIR" != "X" # {
958 LSOF_TMP2="${DARWIN_XNUDIR}/bsd"
959 LSOF_TMP3="${DARWIN_XNUDIR}/osfmk"
962 LSOF_TMP2="${DARWIN_XNU_HEADERS}/System/Library/Frameworks/Kernel.framework/Versions/A/PrivateHeaders"
963 LSOF_TMP3="${DARWIN_XNU_HEADERS}/System/Library/Frameworks/System.framework/Versions/B/PrivateHeaders"
965 if test "X$DARWIN_XNU_HEADERS" != "X" # {
967 LSOF_TMP4="${DARWIN_XNU_HEADERS}/usr/include"
973 if test "X$DARWIN_BASE" = "X" -o "X$DARWIN_BASE" = "Xlibproc" # {
976 if test $LSOF_VERS -ge 800 -o "X$DARWIN_BASE" = "Xlibproc" # {
978 if test -r ${LSOF_INCLUDE}/libproc.h # {
980 DARWIN_BASE="libproc"
982 if test -r ${LSOF_INCLUDE}/../local/include/libproc.h # {
984 DARWIN_BASE="libproc"
985 LSOF_TMP5="-I${LSOF_INCLUDE}/../local/include"
987 echo "FATAL: can't find libproc.h"
994 # The default Darwin base is /dev/kmem.
996 DARWIN_BASE="/dev/kmem"
999 if test "X$DARWIN_BASE" = "Xlibproc" # {
1002 # Configure for libproc-based Darwin lsof.
1004 echo "Configuring libproc-based Darwin lsof"
1005 LSOF_CINFO="libproc-based"
1006 LSOF_DIALECT_DIR=darwin/libproc
1007 if test $LSOF_VERS -lt 1000 # {
1009 LSOF_CFGL="$LSOF_CFGL -lproc"
1012 LSOF_DINC="$LSOF_DINC $LSOF_TMP5"
1013 if test ! -r ${LSOF_INCLUDE}/sys/proc_info.h # {
1015 if test "X$LSOF_TMP5" = "X" -o ! -r ${LSOF_TMP5}/sys/proc_info.h # {
1017 echo "FATAL: can't find sys/proc_info.h"
1023 # Add header file paths for libproc-based Darwin lsof.
1025 for i in $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE # {
1027 if test -d $i -a "X$i" != "X/usr/include" # {
1029 LSOF_DINC="$LSOF_DINC -I${i}"
1033 # Do other libproc-based Darwin lsof setups.
1035 if test -r ${LSOF_INCLUDE}/utmpx.h # {
1037 LSOF_CFGF="$LSOF_CFGF -DHASUTMPX"
1040 if test "X$DARWIN_BASE" != "X/dev/kmem" # {
1042 echo "Darwin base unrecognized: $DARWIN_BASE"
1047 # Configure for /dev/kmem-based Darwin lsof.
1049 echo "Configuring /dev/kmem-based Darwin lsof"
1050 LSOF_CINFO="/dev/kmem-based"
1051 LSOF_DIALECT_DIR=darwin/kmem
1053 # Make sure needed /dev/kmem-base XNU Darwin kernel header files are
1057 for i in $LSOF_TMP1 # {
1060 for j in $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE # {
1062 if test "X${j}" != "X" -a -r ${j}/${i} # {
1068 if test $LSOF_TMP6 -ne 1 # {
1070 if test "X$LSOF_TMP5" = "X" # {
1074 LSOF_TMP5="$LSOF_TMP5 $i"
1078 if test "X$LSOF_TMP5" != "X" # {
1081 # If any Darwin XNU kernel header files are missing, call the
1082 # get-hdr-loc.sh script to find the path.
1084 LSOF_TMP6=`pwd`/dialects/darwin/get-hdr-loc.sh
1085 if test ! -x $LSOF_TMP6 # {
1087 echo "FATAL: can't execute: $LSOF_TMP6"
1091 DARWIN_XNUDIR=`$LSOF_TMP6 $LSOF_TMP5`
1092 if test $? -ne 0 # {
1094 echo "FATAL: $LSOF_TMP6 returns: $DARWIN_XNUDIR"
1098 LSOF_TMP2="${DARWIN_XNUDIR}/bsd"
1099 LSOF_TMP3="${DARWIN_XNUDIR}/osfmk"
1103 # Add header file paths for /dev/kmem-based Darwin lsof.
1105 for i in $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE # {
1107 if test -d $i -a "X$i" != "X/usr/include" # {
1109 LSOF_DINC="$LSOF_DINC -I${i}"
1113 # Make conditional feature definitions for /dev/kmem-based Darwin lsof.
1115 for i in $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE # {
1117 if test "X${i}" != "X" -a -r ${i}/sys/namei.h # {
1119 grep -q nc_vpid ${i}/sys/namei.h
1120 if test $? -eq 0 # {
1122 LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
1127 for i in $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE # {
1129 if test "X${i}" != "X" # {
1131 if test $LSOF_VERS -ge 800 # {
1133 if test -r ${i}/sys/file_internal.h # {
1135 grep -q DTYPE_KQUEUE ${i}/sys/file_internal.h
1136 if test $? -eq 0 # {
1138 LSOF_CFGF="$LSOF_CFGF -DHASKQUEUE"
1143 if test $LSOF_VERS -ge 700 # {
1145 if test -r ${i}/sys/file.h # {
1147 grep -q DTYPE_KQUEUE ${i}/sys/file.h
1148 if test $? -eq 0 # {
1150 LSOF_CFGF="$LSOF_CFGF -DHASKQUEUE"
1158 LSOF_CFGF="$LSOF_CFGF -DHAS9660FS"
1160 LSOF_CFGF="$LSOF_CFGF -DDARWINV=$LSOF_VERS"
1161 LSOF_CFLAGS_OVERRIDE=1
1164 # Configure for DEC OSF/1, Digital UNIX, or Tru64 UNIX.
1166 digital_unix|du|decosf|tru64)
1170 if test "X$LSOF_DINC" = "X" # {
1172 LSOF_DINC="-I/usr/include"
1174 if test "X$LSOF_VSTR" = "X" # {
1176 LSOF_VSTR=`uname -r`
1178 if test "X$LSOF_VERS" = "X" # {
1181 # If the DEC OSF/1, Digital UNIX, or Tru64 UNIX version isn't
1182 # predefined, determine it.
1184 case $LSOF_VSTR in # {
1195 LSOF_TSTXO="../lib/snpf.o"
1205 echo "WARNING: unknown version; assuming version is 2.0"
1211 # Do DEC OSF/1, Digital UNIX, or Tru64 UNIX version specific stuff.
1213 case $LSOF_VERS in # {
1215 LSOF_CFGF="$LSOF_CFGF -Olimit 1024"
1219 LSOF_CFGF="$LSOF_CFGF -Olimit 1024"
1221 LSOF_TMP2=-DUSELOCALREADDIR
1224 LSOF_CFGF="$LSOF_CFGF -Olimit 1024"
1226 LSOF_TMP2=-DUSELOCALREADDIR
1229 LSOF_TMP1="/usr/sys"
1232 LSOF_CFGF="$LSOF_CFGF -DUSE_STAT"
1233 LSOF_TMP1="/usr/sys"
1236 echo "WARNING: unknown version: $LSOF_VERS"
1241 if test "X$DU_SYSDIR" = "X" # {
1243 DU_SYSDIR=$LSOF_TMP1
1245 LSOF_HOST=`uname -n`
1246 if test "X$DU_CDIR" = "X" # {
1248 LSOF_CDIR=`expr $LSOF_HOST : '\([^\.]*\)\..*$'`
1249 if test "X$LSOF_CDIR" = "X" # {
1251 LSOF_CDIR=$LSOF_HOST
1253 LSOF_CDIR=`echo $LSOF_CDIR | tr a-z A-Z`
1258 while test $LSOF_LOOP = 1 # {
1260 if test -d ${DU_SYSDIR}/$LSOF_CDIR # {
1262 echo "Using header files in ${DU_SYSDIR}/$LSOF_CDIR"
1267 Please enter the name of the subdirectory in $DU_SYSDIR that contains the
1268 configuration files for this host. Usually its name would be $LSOF_CDIR, but
1269 that subdirectory doesn't seem to exist. The lsof compilation needs header
1270 files specific to this machine's configuration found in that directory.
1272 If you can't specify the appropriate configuration subdirectory, quit this
1273 Configure step now and generate a proper configuration subdirectory with the
1274 kernel generation process.
1278 echo "$DU_SYSDIR contains:"
1282 echo -n "Configuration subdirectory name? "
1283 read LSOF_CDIR LSOF_EXCESS
1284 if test "X$LSOF_CDIR" = "X" -o ! -d ${DU_SYSDIR}/$LSOF_CDIR # {
1287 echo Cannot access directory ${DU_SYSDIR}/$LSOF_CDIR.
1292 # Determine the ADVFS file system version.
1294 if test "X$DU_ADVFSV" = "X" # {
1296 echo "Determining the ADVFS version -- this will take a while."
1297 LSOF_ADVFSV=`/usr/sbin/setld -i | grep "^OSFADVFSBIN[0-9]" | sed 's/\([^ ]*\).*/\1/' | sort -u | tail -1 | sed 's/OSFADVFSBIN//'`
1299 LSOF_ADVFSV=$DU_ADVFSV
1301 case $LSOF_ADVFSV in # {
1304 echo "The ADVFS version is 1."
1308 echo "The ADVFS version is 2."
1312 echo "The ADVFS version is 3."
1316 echo "The ADVFS version is 4."
1320 echo "The ADVFS version is 5."
1323 echo "The ADVFS version is unknown; it will be assumed to be 1."
1327 LSOF_CFGF="$LSOF_CFGF -DDUV=$LSOF_VERS -DADVFSV=$LSOF_ADVFSV $LSOF_TMP2"
1328 if test "X$DU_SYSINC" = "X" # {
1330 DU_SYSINC="/usr/sys/include"
1332 LSOF_DINC="$LSOF_DINC -I${DU_SYSDIR}/$LSOF_CDIR -I$DU_SYSINC"
1333 LSOF_CFGL="$LSOF_CFGL -lmld"
1334 if test "X${DU_SHLIB}" = "X" # {
1338 if test -r ${DU_SHLIB}/libmsfs.so # {
1340 nm ${DU_SHLIB}/libmsfs.so | grep tag_to_path > /dev/null 2>&1
1341 if test $? -eq 0 # {
1343 LSOF_CFGF="$LSOF_CFGF -DHASTAGTOPATH"
1344 LSOF_CFGL="$LSOF_CFGL -lmsfs"
1347 grep "^struct spec_node {" ${DU_SYSDIR}/include/sys/specdev.h > /dev/null 2>&1
1348 if test $? -eq 0 # {
1350 LSOF_CFGF="$LSOF_CFGF -DHASSPECNODE"
1352 if test $LSOF_VERS -ge 50000 # {
1355 # Make du5_sys_malloc.h for DU 5.0 and above. Enable strict ANSI checking
1356 # on 5.0 and 5.1A, but not 5.1B. Enable IPv6 handling.
1359 if test $LSOF_VERS -ge 50100 # {
1362 if test -x /usr/sbin/sizer # {
1364 /usr/sbin/sizer -v | grep -q 5.1A
1365 if test $? -eq 0 # {
1371 LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
1372 LSOF_TMP1=${LSOF_INCLUDE}/sys/malloc.h
1373 if test -r $LSOF_TMP1 # {
1375 LSOF_TMP2=dialects/du/du5_sys_malloc.h
1377 echo "#if !defined(MANUFACTURED_DU5_SYS_MALLOC_H)" > $LSOF_TMP2
1378 echo "/* By lsof Configure:" `date` " */" >> $LSOF_TMP2
1379 echo "#define MANUFACTURED_DU5_SYS_MALLOC_H" >> $LSOF_TMP2
1380 grep "^#define[ ]MALLOC_NUM_BUCKETS" $LSOF_TMP1 >> $LSOF_TMP2
1381 echo "struct percpukmembuckets {" >> $LSOF_TMP2
1382 sed '1,/^struct percpukmembuckets/d' $LSOF_TMP1 | sed -n '1,/^};/p' >> $LSOF_TMP2
1383 echo "#endif" >> $LSOF_TMP2
1384 LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/du"
1387 # Enable IPv6 for Tru64 UNIX 5.0 and above.
1389 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
1391 if test -r ${LSOF_INCLUDE}/sys/namei.h
1393 grep -q nc_vpid ${LSOF_INCLUDE}/sys/namei.h
1394 if test $? -eq 0 # {
1396 LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
1402 # Configure for FreeBSD.
1406 if test "X$LSOF_CC" = "X" # {
1409 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
1411 if test "X$LSOF_VSTR" = "X" # {
1413 LSOF_VSTR=`uname -r`
1415 if test "X$LSOF_VERS" = "X" # {
1418 # If the FreeBSD version isn't pre-defined, determine it.
1420 case $LSOF_VSTR in # {
1456 echo "!!!WARNING!!! Unsupported FreeBSD version: $LSOF_VSTR"
1457 echo "!!!WARNING!!! Configuring for FreeBSD 3.5"
1509 echo "!!!WARNING!!! Unsupported FreeBSD version: $LSOF_VSTR"
1510 echo "!!!WARNING!!! Configuring for FreeBSD 4.10"
1538 echo "!!!WARNING!!! Unsupported FreeBSD version: $LSOF_VSTR"
1539 echo "!!!WARNING!!! Configuring for FreeBSD 5.5"
1563 echo "!!!WARNING!!! Unsupported FreeBSD version: $LSOF_VSTR"
1564 echo "!!!WARNING!!! Configuring for FreeBSD 6.0"
1588 echo "!!!WARNING!!! Unsupported FreeBSD version: $LSOF_VSTR"
1589 echo "!!!WARNING!!! Configuring for FreeBSD 7.0"
1628 echo Unknown FreeBSD release: `uname -r`
1635 # Clear LSOF_UNSUP message for supported versions of FreeBSD.
1637 case $LSOF_VERS in # {
1638 4090|8020|8030|8040|9000|10000|11000|12000)
1643 # Get system CFLAGS, if possible.
1645 LSOF_TMP1=`echo "all:\n.include <bsd.prog.mk>" | $LSOF_MAKE -f- -VCFLAGS`
1647 while test $LSOF_TMP -eq 1 # {
1649 echo $LSOF_TMP1 | grep -q -e '-O'
1650 if test $? -eq 0 # {
1652 if test "X$LSOF_DEBUG" = "X"
1654 LSOF_DEBUG=`echo $LSOF_TMP1 | sed 's/.*\(-O[^ $]*\).*/\1/'`
1656 LSOF_TMP1=`echo $LSOF_TMP1 | sed 's/\(.*\)-O[^ $]*\(.*\)/\1 \2/' | sed 's/^ *//g' | sed 's/ */ /g' | sed 's/ *$//'`
1660 LSOF_FBSD_ZFS_CFGF="$LSOF_CFGF $LSOF_TMP1"
1662 LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
1663 echo $LSOF_CFGF | grep -q NEEDS_BOOL_TYPEDEF
1666 LSOF_CFGF="$LSOF_CFGF -DNEEDS_BOOL_TYPEDEF"
1667 LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DNEEDS_BOOL_TYPEDEF"
1670 # Determine path to FreeBSD sources.
1673 if test "X$FREEBSD_SYS" = "X" # {
1675 if test -d /usr/src/sys # {
1677 FREEBSD_SYS=/usr/src/sys
1683 echo "!!!WARNING!!! No kernel sources in /usr/src/sys or /sys"
1688 # Test for thread (task) support.
1690 if test -r ${LSOF_INCLUDE}/sys/user.h # {
1692 grep -q ki_numthreads ${LSOF_INCLUDE}/sys/user.h
1693 if test $? -eq 0 # {
1695 LSOF_CFGF="$LSOF_CFGF -DHASTASKS"
1698 echo "FATAL: can't find sys/user.h"
1703 # Test pause() status in system.h.
1705 if test -r ${FREEBSD_SYS}/sys/systm.h # {
1707 grep -q pause_sbt ${FREEBSD_SYS}/sys/systm.h
1708 if test $? -eq 0 # {
1710 LSOF_CFGF="$LSOF_CFGF -DHAS_PAUSE_SBT"
1714 # Check the C library for closefrom and dup2.
1716 if test -r /usr/lib/libc.a # {
1718 nm /usr/lib/libc.a | grep -q "W dup2"
1719 if test $? -eq 0 # {
1721 LSOF_CFGF="$LSOF_CFGF -DHAS_DUP2"
1723 nm /usr/lib/libc.a | grep -q "W closefrom"
1724 if test $? -eq 0 # {
1726 LSOF_CFGF="$LSOF_CFGF -DHAS_CLOSEFROM"
1730 # Do FreeBSD version-specific stuff.
1732 case $LSOF_VERS in # {
1734 LSOF_CFGF="$LSOF_CFGF -DHASPROCFS"
1735 LSOF_CFGL="$LSOF_CFGL -lutil"
1736 LSOF_DINC="$LSOF_DINC -I`pwd`/dialects/freebsd/include"
1737 if test "X$FREEBSD_KERNEL" = "X" # {
1739 LSOF_N_UNIXV="/386bsd"
1741 LSOF_N_UNIXV=$FREEBSD_KERNEL
1745 LSOF_CFGL="$LSOF_CFGL -lkvm"
1748 LSOF_CFGL="$LSOF_CFGL -lkvm"
1749 if test -r ${LSOF_INCLUDE}/vm/lock.h # {
1751 LSOF_CFGF="$LSOF_CFGF -DHASVMLOCKH"
1754 3000|3010|3020|3030|3040|3050)
1755 LSOF_CFGL="$LSOF_CFGL -lkvm"
1756 if test -r ${LSOF_INCLUDE}/nfs/rpcv2.h # {
1758 LSOF_CFGF="$LSOF_CFGF -DHASRPCV2H"
1760 if test -r ${LSOF_INCLUDE}/vm/lock.h # {
1762 LSOF_CFGF="$LSOF_CFGF -DHASVMLOCKH"
1766 if test -r ${LSOF_INCLUDE}/nfs/rpcv2.h # {
1768 LSOF_CFGF="$LSOF_CFGF -DHASRPCV2H"
1770 if test -r ${LSOF_INCLUDE}/sys/namei.h # {
1772 grep -q "^struct[ ]*namecache[ ]*{" ${LSOF_INCLUDE}/sys/namei.h
1773 if test $? -eq 0 # {
1775 LSOF_CFGF="$LSOF_CFGF -DHASNAMECACHE"
1778 if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h # {
1780 grep -q i_effnlink ${LSOF_INCLUDE}/ufs/ufs/inode.h
1781 if test $? -eq 0 # {
1783 LSOF_CFGF="$LSOF_CFGF -DHASEFFNLINK=i_effnlink"
1786 if test -r ${LSOF_INCLUDE}/sys/file.h # {
1788 grep -q f_vnode ${LSOF_INCLUDE}/sys/file.h
1789 if test $? -eq 0 # {
1791 LSOF_CFGF="$LSOF_CFGF -DHASF_VNODE"
1794 LSOF_CFGL="$LSOF_CFGL -lkvm"
1795 if test $LSOF_VERS -ge 5000 # {
1798 # Do FreeBSD 5 and higher version-specific stuff.
1800 if test -r ${LSOF_INCLUDE}/sys/vnode.h # {
1802 grep VT_FDESC ${LSOF_INCLUDE}/sys/vnode.h > /dev/null 2>&1
1803 if test $? -eq 0 # {
1805 if test ! -r ${LSOF_INCLUDE}/fs/devfs/devfs.h # {
1807 if test -r ${FREEBSD_SYS}/fs/devfs/devfs.h # {
1811 echo "!!!FATAL: lsof cannot locate the devfs.h header file"
1812 echo " in ${LSOF_INCLUDE}/fs/devfs/devfs.h or"
1813 echo " ${FREEBSD_SYS}/fs/devfs/devfs.h. Consult"
1814 echo " 00FAQ for an explanation."
1821 if test -r ${FREEBSD_SYS}/sys/filedesc.h # {
1823 grep -q filedescent ${FREEBSD_SYS}/sys/filedesc.h
1824 if test $? -eq 0 # {
1826 LSOF_CFGF="$LSOF_CFGF -DHAS_FILEDESCENT"
1829 if test -r ${FREEBSD_SYS}/fs/tmpfs/tmpfs.h # {
1831 LSOF_CFGF="$LSOF_CFGF -DHAS_TMPFS"
1834 # Do FreeBSD 5.2 and higher version-specific stuff.
1836 if test -r ${LSOF_INCLUDE}/wctype.h # {
1838 LSOF_CFGF="$LSOF_CFGF -DHASWCTYPE_H"
1840 if test $LSOF_VERS -ge 5020 # {
1843 # Determine the status of the cpumask_t typedef.
1845 rm -f ${LSOF_TMPC}.*
1846 cat > ${LSOF_TMPC}.c << .LSOF_END_HERE_DOC3
1848 #include <sys/types.h>
1853 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
1855 rm -f ${LSOF_TMPC}.*
1856 if test $LSOF_TMP1 -ne 0 # {
1859 # The cpumask_t typedef is unknown when _KERNEL is not defined.
1861 if test -r ${LSOF_INCLUDE}/sys/types.h \
1862 -a -r ${LSOF_INCLUDE}/machine/_types.h # {
1864 grep -q cpumask_t ${LSOF_INCLUDE}/sys/types.h
1865 if test $? -eq 0 # {
1867 grep -q __cpumask_t ${LSOF_INCLUDE}/machine/_types.h
1868 if test $? -eq 0 # {
1870 LSOF_CFGF="$LSOF_CFGF -DHASCPUMASK_T"
1872 $LSOF_CC -E ${LSOF_INCLUDE}/machine/_types.h 2>/dev/null | grep -q __cpumask_t
1873 if test $? -eq 0 # {
1875 LSOF_CFGF="$LSOF_CFGF -DHASCPUMASK_T"
1881 if test -r ${LSOF_INCLUDE}/sys/socketvar.h # {
1883 grep -q SBS_CANT ${LSOF_INCLUDE}/sys/socketvar.h
1884 if test $? -eq 0 # {
1886 LSOF_CFGF="$LSOF_CFGF -DHASSBSTATE"
1890 if test $LSOF_VERS -ge 5030 # {
1893 # Do FreeBSD 5.3 and higher version-specific stuff.
1895 if test -r ${LSOF_INCLUDE}/sys/vnode.h # {
1897 grep -q "defined(_KVM_VNODE)" ${LSOF_INCLUDE}/sys/vnode.h
1898 if test $? -eq 0 # {
1900 LSOF_CFGF="$LSOF_CFGF -DHAS_KVM_VNODE"
1904 if test $LSOF_VERS -ge 6000 # {
1907 # Do FreeBSD 6.0 and higher version-specific stuff.
1909 if test -r ${LSOF_INCLUDE}/sys/_types.h # {
1911 grep __dev_t ${LSOF_INCLUDE}/sys/_types.h | grep -q 64
1912 if test $? -eq 0 # {
1914 if test "X$LSOF_TSTDFLG" = "X" # {
1916 LSOF_TSTDFLG="-DLT_DEV64"
1918 LSOF_TSTDFLG="$LSOF_TSTDFLG -DLT_DEV64"
1922 if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h # {
1924 grep -q i_din2 ${LSOF_INCLUDE}/ufs/ufs/inode.h
1925 if test $? -eq 0 # {
1927 LSOF_CFGF="$LSOF_CFGF -DHAS_UFS1_2"
1929 grep -q i_dev ${LSOF_INCLUDE}/ufs/ufs/inode.h
1930 if test $? -ne 0 # {
1932 LSOF_CFGF="$LSOF_CFGF -DHAS_NO_IDEV"
1935 if test -r ${LSOF_INCLUDE}/sys/conf.h # {
1937 grep -q vm_memattr_t ${LSOF_INCLUDE}/sys/conf.h
1940 LSOF_CFGF="$LSOF_CFGF -DHAS_VM_MEMATTR_T"
1942 grep -q "^#define minor(" ${LSOF_INCLUDE}/sys/conf.h
1943 if test $? -eq 0 # {
1945 LSOF_CFGF="$LSOF_CFGF -DHAS_CONF_MINOR"
1947 if test -r ${LSOF_INCLUDE}/sys/types.h # {
1949 LSOF_TMP1=`grep "^#define[ ]minor(" ${LSOF_INCLUDE}/sys/types.h`
1950 if test "X$LSOF_TMP1" != "X" # {
1952 echo "Creating fbsd_minor.h"
1953 cat > fbsd_minor.h << FBSD_MINOR1
1955 * fbsd_minor.h -- created by lsof Configure script on
1957 echo $EO " * $EC" >> ./fbsd_minor.h
1958 date >> ./fbsd_minor.h
1959 cat >> ./fbsd_minor.h << FBSD_MINOR2
1962 #if !defined(FBSD_MINOR_H)
1963 #define FBSD_MINOR_H
1966 echo $EO "${LSOF_TMP1}${EC}" >> fbsd_minor.h
1967 cat >> ./fbsd_minor.h << FBSD_MINOR3
1969 #endif /* defined(FBSD_MINOR_H) */
1974 if test -r ${FREEBSD_SYS}/fs/devfs/devfs_int.h # {
1976 grep -q cdev2priv ${FREEBSD_SYS}/fs/devfs/devfs_int.h
1977 if test $? -eq 0 # {
1979 LSOF_CFGF="$LSOF_CFGF -DHAS_CDEV2PRIV"
1983 grep -q "si_udev;" ${LSOF_INCLUDE}/sys/conf.h
1984 if test $? -ne 0 # {
1986 LSOF_CFGF="$LSOF_CFGF -DHAS_NO_SI_UDEV"
1988 grep -q si_priv ${LSOF_INCLUDE}/sys/conf.h
1989 if test $? -eq 0 # {
1991 LSOF_CFGF="$LSOF_CFGF -DHAS_SI_PRIV"
1994 if test -r ${LSOF_INCLUDE}/sys/sx.h # {
1996 LSOF_CFGF="$LSOF_CFGF -DHAS_SYS_SX_H"
1999 # Do FUSE file system test,
2001 if test -r ${FREEBSD_SYS}/fs/fuse/fuse_node.h # {
2003 LSOF_CFGF="$LSOF_CFGF -DHASFUSEFS"
2005 # Do ZFS test. Try for the newer OpenSolaris files first -- i.e.,
2006 # the ones in ${FREEBSD_SYS}/cddl/contrib/opensolaris. If that fails,
2007 # try for the older ones in ${FREEBSD}/contrib/opensolaris.
2009 LSOF_FBSD_ZFS_SYS=${FREEBSD_SYS}/cddl
2010 if test ! -r ${LSOF_FBSD_ZFS_SYS}/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h # {
2012 LSOF_FBSD_ZFS_SYS=${FREEBSD_SYS}
2013 if test ! -r ${LSOF_FBSD_ZFS_SYS}/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h # {
2015 LSOF_FBSD_ZFS_SYS=""
2018 if test "X$LSOF_FBSD_ZFS_SYS" != "X" # {
2020 LSOF_CFGF="$LSOF_CFGF -DHAS_ZFS"
2022 LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DFREEBSDV=$LSOF_VERS"
2023 LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DHAS_ZFS"
2024 grep -q z_phys ${LSOF_FBSD_ZFS_SYS}/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h
2025 if test $? -eq 0 # {
2027 LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DHAS_Z_PHYS"
2029 if test -r ${LSOF_FBSD_ZFS_SYS}/compat/opensolaris/sys/sdt.h #{
2031 grep -q opt_kdtrace.h ${LSOF_FBSD_ZFS_SYS}/compat/opensolaris/sys/sdt.h
2032 if test $? -eq 0 # {
2038 if test -r ${LSOF_FBSD_ZFS_SYS}/compat/opensolaris/sys/kcondvar.h #{
2040 grep -q cv_timedwait_sbt ${LSOF_FBSD_ZFS_SYS}/compat/opensolaris/sys/kcondvar.h
2041 if test $? -eq 0 # {
2043 LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DHAS_CV_TIMEDWAIT_SBT"
2046 if test -r /usr/include/sys/random.h # {
2048 grep -q opt_random.h /usr/include/sys/random.h
2049 if test $? -eq 0 # {
2056 if test -r ${LSOF_INCLUDE}/sys/vnode.h # {
2059 # See if the vnode contains the byte level lock pointer.
2061 grep -q v_lockf ${LSOF_INCLUDE}/sys/vnode.h
2062 if test $? -eq 0 # {
2064 LSOF_CFGF="$LSOF_CFGF -DHAS_V_LOCKF"
2065 if test $LSOF_FBSD_ZFS -eq 1 # {
2067 LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DHAS_V_LOCKF"
2071 if test -r ${LSOF_INCLUDE}/sys/lockf.h # {
2074 # Determine the type of locking structure to which the inode or
2077 grep -q "^struct lockf_entry" ${LSOF_INCLUDE}/sys/lockf.h
2078 if test $? -eq 0 # {
2081 # Build the ./lockf_owner.h header file.
2085 echo "Creating ./lockf_owner.h from ${FREEBSD_SYS}/kern/kern_lockf.c"
2086 rm -f ./lockf_owner.h
2087 if test -r ${FREEBSD_SYS}/kern/kern_lockf.c # {
2089 LSOF_TMP1=`grep -n "^struct lock_owner" ${FREEBSD_SYS}/kern/kern_lockf.c | sed 's/\([0-9]*\):.*$/\1/'`
2090 if test "X$LSOF_TMP1" != "X" # {
2093 for i in `grep -n "};" ${FREEBSD_SYS}/kern/kern_lockf.c | sed 's/\([0-9]*\):.*$/\1/'` # {
2095 if test $LSOF_TMP2 -eq 0 -a $i -gt $LSOF_TMP1 # {
2100 if test $LSOF_TMP2 -eq 0 # {
2104 cat > ./lockf_owner.h << LOCKF_OWNER1
2106 * lockf_owner.h -- created by lsof Configure script on
2108 echo $EO " * $EC" >> ./lockf_owner.h
2109 date >> ./lockf_owner.h
2110 cat >> ./lockf_owner.h << LOCKF_OWNER2
2113 #if !defined(LOCKF_OWNER_H)
2114 #define LOCKF_OWNER_H
2117 ed -s ${FREEBSD_SYS}/kern/kern_lockf.c >> ./lockf_owner.h << LOCKF_OWNER3
2118 ${LSOF_TMP1},${LSOF_TMP2}p
2120 if test $? -ne 0 # {
2124 cat >> ./lockf_owner.h << LOCKF_OWNER4
2126 #endif /* defined(LOCKF_OWNER_H) */
2132 echo "FATAL ERROR: can't read ${FREEBSD_SYS}/kern/kern_lockf.c"
2134 if test "X$LSOF_TMP1" != "X" -a "X$LSOF_TMP2" != "X0" # {
2136 echo "./lockf_owner.h creation succeeded."
2137 LSOF_CFGF="$LSOF_CFGF -DHAS_LOCKF_ENTRY"
2139 echo "FATAL ERROR: ./lockf_owner.h creation failed (see 00FAQ)"
2145 # Test for in6p_.port in inpcb structure.
2147 if test -r ${LSOF_INCLUDE}/netinet/in_pcb.h # {
2149 grep -q 'in6p_.port' ${LSOF_INCLUDE}/netinet/in_pcb.h
2150 if test $? -ne 0 # {
2152 LSOF_CFGF="$LSOF_CFGF -DHAS_NO_6PORT"
2156 # Test for in6p_ppcb in inpcb structure.
2158 if test -r ${LSOF_INCLUDE}/netinet/in_pcb.h # {
2160 grep -q 'in6p_ppcb' ${LSOF_INCLUDE}/netinet/in_pcb.h
2161 if test $? -ne 0 # {
2163 LSOF_CFGF="$LSOF_CFGF -DHAS_NO_6PPCB"
2166 if test -r ${LSOF_INCLUDE}/sys/conf.h # {
2168 grep -q 'doadump(boolean_t)' ${LSOF_INCLUDE}/sys/conf.h
2169 if test $? -eq 0 # {
2171 LSOF_CFGF="$LSOF_CFGF -DNEEDS_BOOLEAN_T"
2174 if test -r ${LSOF_INCLUDE}/sys/sockbuf.h # {
2176 grep -q 'u_int sb_ccc;' ${LSOF_INCLUDE}/sys/sockbuf.h
2177 if test $? -eq 0 # {
2179 LSOF_CFGF="$LSOF_CFGF -DHAS_SB_CCC"
2182 if test -r ${LSOF_INCLUDE}/sys/filedesc.h # {
2184 grep -q '^struct fdescenttbl {' ${LSOF_INCLUDE}/sys/filedesc.h
2185 if test $? -eq 0 # {
2187 LSOF_CFGF="$LSOF_CFGF -DHAS_FDESCENTTBL"
2193 if test $LSOF_VERS -eq 10000 # {
2196 # Do specific FreeBSD 10 version-specific stuff.
2198 LSOF_TMP1=`uname -m`
2199 if test "X$LSOF_TMP1" = "Xi386" # {
2201 LSOF_CFGF="$LSOF_CFGF -DNEEDS_BOOL_TYPEDEF"
2206 LSOF_CFGF="$LSOF_CFGF -DFREEBSDV=$LSOF_VERS"
2207 if test $LSOF_VERS -lt 2000 -a "X$FREEBSD_KERNEL" = "X" # {
2209 if test ! -x $LSOF_N_UNIXV # {
2211 echo "Hmmm -- $LSOF_N_UNIXV doesn't appear to be your kernel file."
2212 echo "Please enter the name of the file in / that contains"
2213 echo "the kernel for this host. It must be a regular file,"
2214 echo "not a directory, and must be executable."
2216 while test $LSOF_LOOP = 1 # {
2223 echo -n "Kernel file name? "
2224 read LSOF_N_UNIXV LSOF_EXCESS
2225 LSOF_N_UNIXV="/$LSOF_N_UNIXV"
2226 if test ! -d $LSOF_N_UNIXV -a -x $LSOF_N_UNIXV # {
2231 echo $LSOF_N_UNIXV is not a regular executable file.
2235 LSOF_N_UNIXV=`echo $LSOF_N_UNIXV | sed 's#^/*#/#'`
2236 LSOF_CFGF="$LSOF_CFGF -DN_UNIXV=$LSOF_N_UNIXV"
2238 if test -r ${FREEBSD_SYS}/miscfs/fdesc/fdesc.h # {
2240 LSOF_TMP1=${FREEBSD_SYS}/miscfs/fdesc/fdesc.h
2242 if test $LSOF_VERS -ge 5000 -a -r ${LSOF_INCLUDE}/fs/fdescfs/fdesc.h # {
2244 LSOF_TMP1=${LSOF_INCLUDE}/fs/fdescfs/fdesc.h
2249 if test "X$LSOF_TMP1" != "X" # {
2251 grep -q Fctty $LSOF_TMP1
2252 if test $? -eq 0 # {
2254 LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=1"
2256 LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=2"
2258 grep -q fd_link $LSOF_TMP1
2259 if test $? -eq 0 # {
2261 LSOF_CFGF="$LSOF_CFGF -DHASFDLINK"
2265 if test $LSOF_VERS -ge 5000 # {
2271 if test $LSOF_VERS -lt 5000 # {
2273 if test -d ${FREEBSD_SYS}/${LSOF_TMP1}/procfs # {
2275 LSOF_CFGF="$LSOF_CFGF -DHASPROCFS"
2279 if test -d ${FREEBSD_SYS}/${LSOF_TMP1}/pseudofs # {
2281 LSOF_CFGF="$LSOF_CFGF -DHASPSEUDOFS"
2285 if test -r ${LSOF_INCLUDE}/${LSOF_TMP1}/nullfs/null.h # {
2287 LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
2289 if test -r ${FREEBSD_SYS}/${LSOF_TMP1}/nullfs/null.h # {
2291 LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
2295 if test -r ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h # {
2298 grep -q "^#ifdef [_]*KERNEL" ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h
2299 if test $? -eq 0 # {
2301 ln -s ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h cd9660_node.h
2303 sed -e '/^ \* Prototypes for ISOFS vnode operations/,$c\
2304 \ The ISOFS prototypes were removed by Configure. */' \
2305 < ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h > cd9660_node.h
2306 echo "" >> cd9660_node.h
2308 LSOF_CFGF="$LSOF_CFGF -DHAS9660FS"
2309 if test $LSOF_VERS -ge 6000 # {
2311 grep -q "i_dev;" cd9660_node.h
2312 if test $? -ne 0 # {
2314 LSOF_CFGF="$LSOF_CFGF -DHAS_NO_ISO_DEV"
2318 if test -r ${LSOF_INCLUDE}/sys/namei.h
2320 grep -q nc_vpid ${LSOF_INCLUDE}/sys/namei.h
2321 if test $? -eq 0 # {
2323 LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
2326 if test $LSOF_DINC_ADD -eq 1 # {
2328 if test "X$LSOF_DINC" = "X" # {
2330 LSOF_DINC="-I${FREEBSD_SYS}"
2332 LSOF_DINC="$LSOF_DINC -I${LSOF_INCLUDE} -I${FREEBSD_SYS}"
2335 if test -r ${LSOF_INCLUDE}/netinet/in.h # {
2337 grep IPV6_INRIA_VERSION ${LSOF_INCLUDE}/netinet/in.h > /dev/null
2338 if test $? -eq 0 # {
2340 LSOF_CFGF="$LSOF_CFGF -DHASIPv6 -DHASINRIAIPv6"
2343 echo $CFGF | grep HASIPv6 > /dev/null
2344 if test $? -ne 0 -a -r ${LSOF_INCLUDE}/netinet6/in6.h # {
2346 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
2348 if test -r ${LSOF_INCLUDE}/utmpx.h # {
2350 LSOF_CFGF="$LSOF_CFGF -DHASUTMPX"
2352 LSOF_DIALECT_DIR=freebsd
2355 # Configure for HP-UX and HP-UX gcc.
2358 if test "X$LSOF_RANLIB_SUP" = "X" # {
2362 if test "X$LSOF_VSTR" = "X" # {
2364 LSOF_VSTR=`uname -r`
2366 if test "X$LSOF_VERS" = "X" # {
2369 # If the HP-UX version isn't pre-defined, determine it.
2371 LSOF_VERS=`echo $LSOF_VSTR | awk -F. '{printf "%d%02d",\$2,\$3}'`
2373 if test $LSOF_VERS -ge 1020 # {
2375 LSOF_TSTBIGF="-D_LARGEFILE64_SOURCE"
2378 # Determine compiler.
2380 if test "X$LSOF_CC" = "X" # {
2382 if test "X$LSOF_TGT" = "Xhpuxgcc" # {
2386 if test "X$HPUX_CCDIR1" = "X" # {
2390 if test "X$HPUX_CCDIR2" = "X" # {
2392 HPUX_CCDIR2="/usr/ccs/bin"
2394 if test -x ${HPUX_CCDIR1}/cc # {
2396 LSOF_CC=${HPUX_CCDIR1}/cc
2398 if test -x ${HPUX_CCDIR2}/cc # {
2400 LSOF_CC=${HPUX_CCDIR2}/cc
2402 echo "No executable cc in $HPUX_CCDIR1 or $HPUX_CCDIR2"
2407 $LSOF_CC -O < /dev/null 2>&1 | grep -q Bundled
2408 if test $? -eq 0 # {
2410 LSOF_DEBUG="No-O" # to disable -O
2411 if test "X$HPUX_LIBC1" = "X" # {
2413 HPUX_LIBC1="/usr/lib"
2415 if test -r ${HPUX_LIBC1}/libc.sl # {
2417 LSOF_FCFGL="-L$HPUX_LIBC -lc"
2419 if test "X$HPUX_LIBC2" = "X" # {
2421 HPUX_LIBC2="/usr/lib"
2423 if test -r ${HPUX_LIBC2}/libc.sl # {
2425 LSOF_FCFGL="-L$HPUX_LIBC2 -lc"
2431 echo $LSOF_CC | grep gcc > /dev/null
2432 if test $? -eq 0 # {
2434 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
2436 $LSOF_CC -O < /dev/null 2>&1 | grep -q Bundled
2437 if test $? -eq 0 # {
2439 LSOF_DEBUG="No-O" # to disable -O
2444 # Test for "const void" support.
2446 rm -f ${LSOF_TMPC}.*
2447 echo "main() { const void *x; return(0); }" >> $LSOF_TMPC.c
2448 $LSOF_CC $LSOF_TMPC.c -o $LSOF_TMPC.x > /dev/null 2>&1
2449 if test $? -eq 0 # {
2451 LSOF_CFGF="$LSOF_CFGF -DHAS_CONST"
2453 rm -f ${LSOF_TMPC}.*
2457 if test "X$HPUX_BASE" = "X" # {
2459 if test -d $LSOF_INCLUDE/sys/pstat -a $LSOF_VERS -ge 1111 # {
2463 HPUX_BASE="/dev/kmem"
2466 if test "X$HPUX_BASE" = "Xpstat" # {
2469 # Configure for pstat-based HP-UX lsof.
2471 LSOF_CINFO="PSTAT-based"
2472 echo "Configuring PSTAT-based HP-UX lsof"
2473 LSOF_DIALECT_DIR=hpux/pstat
2474 LSOF_CFGF="$LSOF_CFGF -DHPUXV=$LSOF_VERS -D_PSTAT64"
2475 LSOF_CFGL="$LSOF_CFGL -lnsl"
2478 ls -l $LSOF_CC | grep -q ansic
2480 ls -l $LSOF_CC | grep -q aCC
2481 if test $? -eq 0 -o $LSOF_TMP1 -eq 0 # {
2483 LSOF_CFGF="$LSOF_CFGF -Ae +DD32"
2485 echo $LSOF_CC | grep -q gcc
2486 if test $? -ne 0 # {
2488 LSOF_CFGF="$LSOF_CFGF +DD32"
2491 if test -r ${LSOF_INCLUDE}/netinet/in6.h # {
2493 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
2495 if test -r ${LSOF_INCLUDE}/sys/pstat/stream_pstat_body.h # {
2497 grep -q PS_STR_XPORT_DATA ${LSOF_INCLUDE}/sys/pstat/stream_pstat_body.h
2498 if test $? -eq 0 # {
2500 LSOF_CFGF="$LSOF_CFGF -D_PSTAT_STREAM_GET_XPORT"
2503 if test $LSOF_VERS -ge 1123 # {
2505 LSOF_CFGF="$LSOF_CFGF -D_LARGEFILE64_SOURCE"
2508 if test "X$HPUX_BASE" = "X/dev/kmem" # {
2511 # Configure for /dev/kmem-based HP-UX lsof.
2513 if test "X$HPUX_BOOTFILE" = "X" # {
2515 HPUX_BOOTFILE="/stand/vmunix"
2517 if test $LSOF_VERS -gt 1100 # {
2520 echo "************************************************"
2522 echo "* !!!!!!!!!!!!!!! FATAL ERROR !!!!!!!!!!!!!!!! *"
2524 echo "* LSOF DOES NOT SUPPORT THIS VERSION OF HP-UX. *"
2526 echo "************************************************"
2531 LSOF_CFGF="$LSOF_CFGF -DHPUXV=$LSOF_VERS"
2532 LSOF_CINFO="/dev/kmem-based"
2533 LSOF_DIALECT_DIR=hpux/kmem
2534 echo "Configuring /dev/kmem-based HP-UX lsof"
2535 if test $LSOF_VERS -lt 1000 # {
2537 if test "X$HPUX_X25DIR" = "X" # {
2539 HPUX_X25DIR="/etc/conf"
2541 HPUX_X25DIR=$HPUX_X25DIR
2543 if test -r ${HPUX_X25DIR}/x25/x25addrstr.h # {
2545 LSOF_CFGF="$LSOF_CFGF -DHPUX_CCITT"
2546 LSOF_DINC="$LSOF_DINC -I$HPUX_X25DIR"
2549 if test -r ${LSOF_INCLUDE}/sys/fs/vx_inode.h -a -r ${LSOF_INCLUDE}/sys/fs/vx_hpux.h # {
2551 LSOF_CFGF="$LSOF_CFGF -DHASVXFS"
2553 if test $LSOF_VERS -ge 1030 # {
2555 if test "X$HPUX_KERNBITS" = "X" # {
2557 HPUX_KERNBITS=`getconf _SC_KERNEL_BITS`
2559 LSOF_CFGF="$LSOF_CFGF -DHPUXKERNBITS=${HPUX_KERNBITS} -I`pwd`/dialects/hpux/kmem/hpux11"
2560 if test $HPUX_KERNBITS -eq 64 # {
2564 echo "*****************************************"
2566 echo "* NOTICE! Configuring for 64 bit HP-UX *"
2568 echo "*****************************************"
2569 echo $LSOF_CC | grep gcc > /dev/null
2570 if test $? -eq 0 # {
2573 # Test gcc for 64 bit support, trying gcc with no options, then
2574 # with -mlp64, testing the result with file.
2577 echo "Testing $LSOF_CC for 64 bit support"
2578 rm -f ${LSOF_TMPC}.*
2579 echo "main(){}" > ${LSOF_TMPC}.c
2581 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
2582 if test $? -eq 0 # {
2584 /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null
2585 if test $? -eq 0 # {
2590 if test "X$LSOF_TMP1" = "X" # {
2592 rm -f ${LSOF_TMPC}.x
2593 $LSOF_CC ${LSOF_TMPC}.c -mlp64 -o ${LSOF_TMPC}.x > /dev/null 2>&1
2594 if test $? -eq 0 # {
2596 /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null
2597 if test $? -eq 0 # {
2603 rm -f ${LSOF_TMPC}.*
2604 if test "X$LSOF_TMP1" = "X" # {
2607 echo "***************************************************"
2609 echo "* !!!!!!!!!!!!!!!!! FATAL ERROR !!!!!!!!!!!!!!!!! *"
2611 echo "* APPARENTLY GCC CANNOT BUILD 64 BIT EXECUTABLES. *"
2612 echo "* A COMPILER MUST BE USED THAT CAN. SEE 00FAQ *"
2613 echo "* FOR MORE INFORMATION. *"
2615 echo "***************************************************"
2620 if test "X$LSOF_TMP1" != "X " # {
2622 LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
2624 LSOF_CFGL="$LSOF_CFGL -lelf"
2625 LSOF_CINFO="${LSOF_CINFO}, 64 bit HP-UX"
2629 # Set options for the HP-UX compiler.
2631 LSOF_CFGF="$LSOF_CFGF +DD64"
2632 LSOF_CFGL="$LSOF_CFGL -lelf"
2633 LSOF_CINFO="${LSOF_CINFO}, 64 bit HP-UX"
2636 LSOF_CFGF="$LSOF_CFGF -D_FILE_OFFSET_BITS=64"
2637 LSOF_CINFO="${LSOF_CINFO}, 32 bit HP-UX"
2638 echo $LSOF_CC | grep gcc > /dev/null
2639 if test $? -ne 0 # {
2641 LSOF_CFGF="$LSOF_CFGF +DAportable"
2644 LSOF_CFGL="$LSOF_CFGL -lnsl"
2647 # When HP-UX is less than 10.30, but greater than or equal to 10,
2648 # check NFS3 rnode status.
2650 if test $LSOF_VERS -ge 1000 # {
2653 if test "X$HPUX_RNODE3" = "X" # {
2655 nm -x $HPUX_BOOTFILE | grep -q nfs_vnodeops3
2656 if test $? -eq 0 # {
2658 if test -r ${LSOF_INCLUDE}/nfs/rnode.h # {
2660 grep -q r_fh3 ${LSOF_INCLUDE}/nfs/rnode.h
2661 if test $? -ne 0 # {
2668 if test "X$HPUX_RNODE3" = "X1" # {
2673 if test $LSOF_TMP1 -eq 1 # {
2675 LSOF_CFGF="$LSOF_CFGF -DHASRNODE3"
2679 if test $LSOF_VERS -eq 1100 # {
2682 # Test for the ipis_s structure. If it is present, set HAS_IPC_S_PATCH.
2684 if test "X$HPUX_IPC_S_PATCH" = "X" # {
2686 if test -x /usr/contrib/Q4/bin/q4exe # {
2688 LSOF_TMP=/usr/contrib/Q4/bin/q4exe
2690 LSOF_TMP=/usr/contrib/bin/q4
2692 if test -x $LSOF_TMP # {
2694 rm -f ${LSOF_TMPC}.out
2696 echo $EO "Looking in $HPUX_BOOTFILE for ipis_s with $LSOF_TMP ... $EC"
2697 echo "yes\\nfields -c struct ipis_s" | $LSOF_TMP $HPUX_BOOTFILE > ${LSOF_TMPC}.out 2>&1
2698 if test $? -ne 0 # {
2702 echo "!!!ERROR!!! $LSOF_TMP failed and produced the following output."
2704 cat ${LSOF_TMPC}.out
2705 HPUX_IPC_S_PATCH=fail
2707 grep ipis_s ${LSOF_TMPC}.out > /dev/null 2>&1
2708 if test $? -eq 0 # {
2710 echo "ipis_s exists."
2712 # See if ipis_msgsqueued is present.
2714 grep ipis_msgsqueued ${LSOF_TMPC}.out > /dev/null 2>&1
2715 if test $? -eq 0 # {
2722 echo "ipis_s doesn't exist."
2726 rm -f ${LSOF_TMPC}.out
2728 echo "Can't locate or execute $LSOF_TMP"
2729 echo $EO "ls says: $EC"
2731 HPUX_IPC_S_PATCH=fail
2734 if test "X$HPUX_IPC_S_PATCH" = "Xfail" # {
2737 echo "!!!ERROR!!! !!!ERROR!!! !!!ERROR!!! !!!ERROR!!!"
2738 echo "Configure can't use $LSOF_TMP to examine the ipis_s"
2739 echo "structure. You must do that yourself, report the result in"
2740 echo "the HPUX_IPC_S_PATCH environment variable, then repeat the"
2741 echo "Configure step. Consult the Configure script's use of"
2742 echo "$LSOF_TMP and the 00XCONFIG file for information"
2743 echo "on ipis_s testing and the setting of HPUX_IPC_S_PATCH."
2744 echo "!!!ERROR!!! !!!ERROR!!! !!!ERROR!!! !!!ERROR!!!"
2749 if test "X$HPUX_IPC_S_PATCH" = "X1" -o "X$HPUX_IPC_S_PATCH" = "X2" # {
2751 LSOF_CFGF="$LSOF_CFGF -DHAS_IPC_S_PATCH=$HPUX_IPC_S_PATCH"
2753 if test "X$HPUX_IPC_S_PATCH" != "Xn" -a "X$HPUX_IPC_S_PATCH" != "XN" # {
2755 echo "Illegal value for HPUX_IPC_S_PATCH: $HPUX_IPC_S_PATCH"
2762 # Manufacture an hpux_mount.h header file with a mount struct in it, as
2765 if test -r ${LSOF_INCLUDE}/sys/mount.h # {
2767 LSOF_TMP1="dialects/${LSOF_DIALECT_DIR}/hpux_mount.h"
2769 echo "#if !defined(MANUFACTURED_HPUX_SYS_MOUNT_H)" > $LSOF_TMP1
2770 echo "#define MANUFACTURED_HPUX_SYS_MOUNT_H" >> $LSOF_TMP1
2771 echo "/* By lsof Configure:" `date` " */" >> $LSOF_TMP1
2772 echo "struct mount" >> $LSOF_TMP1
2773 sed '1,/struct mount/d' ${LSOF_INCLUDE}/sys/mount.h | sed -n '1,/m_dev/p' >> $LSOF_TMP1
2774 echo "};" >> $LSOF_TMP1
2775 echo "#endif" >> $LSOF_TMP1
2776 LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/${LSOF_DIALECT_DIR}"
2779 # Test for OnlineJFS.
2781 if test $LSOF_VERS -ge 1100 # {
2783 if test "X$HPUX_HASONLINEJFS" = "X" -a -x /sbin/fs/vxfs/subtype # {
2785 LSOF_TMP1=`/sbin/fs/vxfs/subtype`
2786 if test "X$LSOF_TMP1" = "Xvxfs3.3"
2788 HPUX_HASONLINEJFS="Y"
2791 if test "X$HPUX_HASONLINEJFS" = "XY" -o "X$HPUX_HASONLINEJFS" = "Xy"
2794 LSOF_CFGF="$LSOF_CFGF -DHASONLINEJFS"
2800 if test -r ${AFS_VICE}/etc/ThisCell # {
2802 if test "X$LSOF_SCRIPT_CALL" = "Xno" # {
2804 if test -r ./AFSHeaders -a -r ./AFSVersion # {
2809 if test ! -x ./AFSConfig # {
2811 echo "Can't find or execute the AFSConfig script"
2816 if test $? -eq 0 -a -r ./AFSHeaders -a -r ./AFSVersion # {
2821 if test "X$LSOF_AFS" = "Xyes" # {
2823 LSOF_AFSV=`cat ./AFSVersion | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1 \2/' | awk '{printf "%d%02d\n",\$1,\$2}'`
2824 LSOF_CFGF="$LSOF_CFGF -DHAS_AFS=$LSOF_AFSV"
2825 LSOF_DINC="$LSOF_DINC -I`cat ./AFSHeaders`"
2829 echo "HP-UX base unrecognized: $HPUX_BASE"
2836 # Configure for Linux.
2839 LSOF_TSTBIGF="-D_FILE_OFFSET_BITS=64"
2841 if test "X$LSOF_CC" = "X" # {
2844 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
2846 if test "X$LINUX_CONF_CC" = "X" # {
2848 LINUX_CONF_CC=$LSOF_CC
2851 if test "X$LINUX_INCL" = "X" # {
2853 LINUX_INCL=/usr/include
2855 LSOF_DINC="$LSOF_DINC -I${LINUX_INCL}"
2857 if test "X$LINUX_VERSION_CODE" = "X" # {
2859 if test -r "$LINUX_INCL/linux/version.h" # {
2861 LINUX_VERSION_CODE=`cat $LINUX_INCL/linux/version.h | sed -n 's/.\+LINUX_VERSION_CODE \([[:digit:]]\+\)$/\1/p'`
2864 LSOF_VSTR=`echo $LINUX_VERSION_CODE | perl -e '$version=<STDIN>; chomp($version); printf("%d.%d.%d\n", ($version >> 16) & 0xFF, ($version >> 8) & 0xFF, $version & 0xFF);'`
2865 if test "X$LSOF_VSTR" = "X" # {
2867 LSOF_VSTR=`uname -r`
2869 if test "X$LSOF_VERS" = "X" # {
2872 # If the Linux version isn't predefined, determine it.
2874 LSOF_VERS=`echo $LSOF_VSTR | sed 's/\./ /g' | awk '{printf "%d%d%03d",\$1,\$2,\$3}'`
2876 LSOF_CFGF="$LSOF_CFGF -DLINUXV=$LSOF_VERS"
2877 if test $LSOF_VERS -lt 21072 # {
2880 echo "!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!"
2882 echo "! THE /PROC-BASED LSOF SOURCES HAVE NOT BEEN TESTED ON !"
2883 echo "! LINUX KERNELS BELOW 2.1.72, AND MAY NOT WORK ON THIS !"
2884 echo "! KERNEL. IT SHOULD USE A /DEV/KMEM-BASED LSOF. !"
2886 echo "!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!"
2892 # If the Linux C library type isn't predefined, determine it.
2894 if test "X$LINUX_CLIB" = "X" # {
2896 echo -n "Testing C library type with $LINUX_CONF_CC ... "
2897 rm -f ${LSOF_TMPC}.*
2898 cat > $LSOF_TMPC.c << .LSOF_END_HERE_DOC1
2899 #include <features.h>
2901 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
2902 printf("-DGLIBCV=%d\n",__GLIBC__*100+__GLIBC_MINOR__);
2903 #elif defined(__GLIBC__)
2904 printf("-DGLIBCV=%d00\n",__GLIBC__);
2910 $LINUX_CONF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x > /dev/null 2>&1
2911 if test -x ${LSOF_TMPC}.x # {
2913 LINUX_CLIB=`${LSOF_TMPC}.x`
2919 rm -f ${LSOF_TMPC}.*
2921 if test $LSOF_TMP -ne 0 # {
2923 echo "Cannot determine C library type; assuming it is not glibc."
2926 if test "X$LINUX_CLIB" = "X" # {
2928 echo "The C library type is not glibc."
2930 echo "The C library type is glibc, version \"$LINUX_CLIB\"."
2934 if test "X$LINUX_CLIB" != "X" # {
2936 LSOF_CFGF="$LSOF_CFGF $LINUX_CLIB"
2939 # Test for IPv6 support.
2941 if test -r ${LSOF_INCLUDE}/netinet/ip6.h # {
2943 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
2946 # Test for <rpc/rpc.h>.
2948 if ! test -r ${LSOF_INCLUDE}/rpc/rpc.h # {
2950 LSOF_CFGF="$LSOF_CFGF -DHASNORPC_H"
2953 # Test for TCP_* symbols.
2955 if test -r ${LSOF_INCLUDE}/netinet/tcp.h # (
2957 grep -q TCP_ESTABLISHED ${LSOF_INCLUDE}/netinet/tcp.h
2958 if test $? -eq 0 # {
2960 LSOF_CFGF="$LSOF_CFGF -DNEEDS_NETINET_TCPH"
2964 # Test for SELinux support.
2967 if test "X$LINUX_HASSELINUX" = "X" # {
2969 if test -r ${LSOF_INCLUDE}/selinux/selinux.h # {
2974 if test "X$LINUX_HASSELINUX" = "XY" -o "X$LINUX_HASSELINUX" = "Xy" # {
2979 if test $LSOF_TMP1 -eq 1 # {
2981 LSOF_CFGF="$LSOF_CFGF -DHASSELINUX"
2982 LSOF_CFGL="$LSOF_CFGL -lselinux"
2985 # Test for UNIX socket endpoint support.
2987 if test -r ${LSOF_INCLUDE}/linux/sock_diag.h -a -r ${LSOF_INCLUDE}/linux/unix_diag.h # {
2989 LSOF_CFGF="$LSOF_CFGF -DHASUXSOCKEPT"
2992 # Test for pseudoterminal endpoint support.
2994 if test -r ${LSOF_INCLUDE}/linux/major.h # {
2996 grep -q TTYAUX_MAJOR ${LSOF_INCLUDE}/linux/major.h
2997 if test $? -eq 0 # {
2999 LSOF_CFGF="$LSOF_CFGF -DHASPTYEPT"
3002 LSOF_DIALECT_DIR="linux"
3003 LSOF_CFGF="$LSOF_CFGF -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE"
3006 # Configure for NetBSD.
3009 if test "X$LSOF_CC" = "X" # {
3012 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
3014 if test "X$LSOF_VSTR" = "X" # {
3016 LSOF_VSTR=`uname -r`
3018 if test "X$LSOF_VERS" = "X" # {
3021 # Validate the NetBSD version.
3023 case $LSOF_VSTR in # {
3043 echo "!!!WARNING!!! Unsupported NetBSD version: $LSOF_VSTR"
3044 echo "!!!WARNING!!! Configuring for NetBSD 1.6"
3064 echo "!!!WARNING!!! Unsupported NetBSD version: $LSOF_VSTR"
3065 echo "!!!WARNING!!! Configuring for NetBSD 2.0"
3077 echo "!!!WARNING!!! Unsupported NetBSD version: $LSOF_VSTR"
3078 echo "!!!WARNING!!! Configuring for NetBSD 3.0"
3081 echo "Unknown NetBSD release: $LSOF_VSTR"
3082 echo Assuming NetBSD 1.6
3088 # Test for legal NetBSD version.
3090 case $LSOF_VERS in # {
3091 1002000|1003000|1004000|1005000|1006000)
3093 2000000|2099009|2099010)
3098 echo "Unknown NetBSD version: $LSOF_VERS"
3103 LSOF_CFGF="$LSOF_CFGF -DNETBSDV=$LSOF_VERS"
3104 LSOF_TMP1="-DN_UNIXV=/netbsd"
3105 if test -r ${LSOF_INCLUDE}/util.h # {
3107 grep -q getbootfile ${LSOF_INCLUDE}/util.h
3108 if test $? -eq 0 # {
3110 LSOF_CFGL="$LSOF_CFGL -lutil"
3111 LSOF_TMP1="-DHASGETBOOTFILE"
3114 LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
3115 if test -r ${LSOF_INCLUDE}/kvm.h # {
3117 grep -q kvm_getproc2 ${LSOF_INCLUDE}/kvm.h
3118 if test $? -eq 0 # {
3120 LSOF_CFGF="$LSOF_CFGF -DHASKVMGETPROC2"
3124 # Here begin the dual tests on header files that may be in $LSOF_INCLUDE
3127 # Note that $LSOF_TMP1 holds an indicator of the need for -I$NETBSD_SYS.
3128 # LSOF_TMP4 contains a temporary indicator of the use of $NETBSD_SYS.
3131 if test "X$NETBSD_SYS" = "X" # {
3133 if test -d /usr/src # {
3135 NETBSD_SYS="/usr/src/sys"
3137 NETBSD_SYS=$LSOF_INCLUDE
3140 LSOF_TMP2="nfs/nfsproto.h"
3141 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3143 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3146 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3148 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3154 if test "X$LSOF_TMP3" != "X" # {
3156 LSOF_CFGF="$LSOF_CFGF -DHASNFSPROTO"
3157 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3162 LSOF_TMP2="netinet/ip6.h"
3163 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3165 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3168 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3170 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3176 if test "X$LSOF_TMP3" != "X" # {
3178 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
3179 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3184 LSOF_TMP2="netinet/in.h"
3185 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3187 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3190 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3192 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3198 if test "X$LSOF_TMP3" != "X" # {
3200 grep -q IPV6_INRIA_VERSION $LSOF_TMP3
3201 if test $? -eq 0 # {
3203 LSOF_CFGF="$LSOF_CFGF -DHASIPv6 -DHASINRIAIPv6"
3204 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3211 LSOF_TMP2="miscfs/fdesc/fdesc.h"
3212 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3214 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3216 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3218 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3224 if test "X$LSOF_TMP3" != "X" # {
3226 grep -q Fctty $LSOF_TMP3
3227 if test $? -eq 0 # {
3229 LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=1"
3231 LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=2"
3233 grep -q fd_link $LSOF_TMP3
3234 if test $? -eq 0 # {
3236 LSOF_CFGF="$LSOF_CFGF -DHASFDLINK"
3238 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3243 LSOF_TMP2="miscfs/nullfs/null.h"
3244 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3246 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3249 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3251 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3257 if test "X$LSOF_TMP3" != "X" # {
3259 LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
3260 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3265 LSOF_TMP2="miscfs/procfs"
3266 if test -d ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3268 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3271 if test -d ${NETBSD_SYS}/$LSOF_TMP2 # {
3273 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3279 if test "X$LSOF_TMP3" != "X" # {
3281 LSOF_CFGF="$LSOF_CFGF -DHASPROCFS"
3282 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3286 if test -r ${LSOF_TMP3}/procfs.h # {
3288 grep -q PFSroot ${LSOF_TMP3}/procfs.h
3289 if test $? -eq 0 # {
3291 LSOF_CFGF="$LSOF_CFGF -DHASPROCFS_PFSROOT"
3295 LSOF_TMP2="sys/bufq.h"
3297 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3299 LSOF_CFGF="$LSOF_CFGF -DHASBUFQ_H"
3301 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3303 if test $NETBSD_SYS != $LSOF_INCLUDE # {
3305 LSOF_CFGF="$LSOF_CFGF -DHASBUFQ_H"
3310 LSOF_TMP2="isofs/cd9660"
3311 if test -d ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3313 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3316 if test -d ${NETBSD_SYS}/$LSOF_TMP2 # {
3318 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3324 if test "X$LSOF_TMP3" != "X" # {
3326 LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=1"
3327 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3332 LSOF_TMP2="fs/cd9660"
3333 if test -d ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3335 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3338 if test -d ${NETBSD_SYS}/$LSOF_TMP2 # {
3340 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3346 if test "X$LSOF_TMP3" != "X" # {
3348 LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=1"
3349 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3356 if test -d ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3358 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3361 if test -d ${NETBSD_SYS}/$LSOF_TMP2 # {
3363 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3369 if test "X$LSOF_TMP3" != "X" # {
3371 LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=1"
3372 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3377 LSOF_TMP2="fs/msdosfs"
3378 if test -d ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3380 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3383 if test -d ${NETBSD_SYS}/$LSOF_TMP2 # {
3385 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3391 if test "X$LSOF_TMP3" != "X" # {
3393 LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=2"
3394 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3400 LSOF_TMP2="miscfs/kernfs/kernfs.h"
3401 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3403 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3406 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3408 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3414 if test "X$LSOF_TMP3" != "X" # {
3416 grep -q "kt_name;" $LSOF_TMP3
3417 if test $? -eq 0 # {
3419 LSOF_CFGF="$LSOF_CFGF -DHASKERNFS"
3420 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3424 grep -q "*kfs_kt;" $LSOF_TMP3
3425 if test $? -eq 0 # {
3427 LSOF_CFGF="$LSOF_CFGF -DHASKERNFS_KFS_KT"
3431 LSOF_TMP2="sys/namei.h"
3432 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3434 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3437 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3439 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3445 if test "X$LSOF_TMP3" != "X" # {
3447 grep -q nc_vpid $LSOF_TMP3
3448 if test $? -eq 0 # {
3450 LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
3451 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3457 LSOF_TMP2="ufs/ufs/inode.h"
3458 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3460 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3463 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3465 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3471 if test "X$LSOF_TMP3" != "X" # {
3473 grep -q i_ffs_size $LSOF_TMP3
3474 if test $? -eq 0 # {
3476 LSOF_CFGF="$LSOF_CFGF -DHASI_FFS"
3477 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3482 grep -q i_ffs1_size $LSOF_TMP3
3483 if test $? -eq 0 # {
3485 LSOF_CFGF="$LSOF_CFGF -DHASI_FFS1"
3486 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3492 grep -q i_ffs_effnlink $LSOF_TMP3
3493 if test $? -eq 0 # {
3495 LSOF_CFGF="$LSOF_CFGF -DHASEFFNLINK=i_ffs_effnlink"
3496 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3502 LSOF_TMP2="sys/vnode.h"
3504 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3506 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3509 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3511 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3517 if test "XLSOF_TMP3" != "X" # {
3519 grep -q VT_EXT2FS $LSOF_TMP3
3520 if test $? -eq 0 # {
3522 LSOF_CFGF="$LSOF_CFGF -DHASEXT2FS"
3523 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3527 LSOF_TMP2="ufs/ufs/inode.h"
3528 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3530 LSOF_TMP5="${LSOF_INCLUDE}/$LSOF_TMP2"
3533 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3535 LSOF_TMP5="${NETBSD_SYS}/$LSOF_TMP2"
3541 if test "X$LSOF_TMP5" != "X" # {
3543 grep -q "*e2fs_din" $LSOF_TMP5
3544 if test $? -eq 0 # {
3546 LSOF_CFGF="$LSOF_CFGF -DHASI_E2FS_PTR"
3547 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3549 LSOF_TMP1=$LSOF_TMP6
3554 grep -q VT_LFS $LSOF_TMP3
3555 if test $? -eq 0 # {
3557 LSOF_CFGF="$LSOF_CFGF -DHASLFS"
3558 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3563 grep -q VT_PTYFS $LSOF_TMP3
3564 if test $? -eq 0 # {
3566 LSOF_TMP2="fs/ptyfs/ptyfs.h"
3567 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3569 LSOF_CFGF="$LSOF_CFGF -DHASPTYFS"
3571 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3573 if test $NETBSD_SYS != $LSOF_INCLUDE # {
3575 LSOF_CFGF="$LSOF_CFGF -DHASPTYFS"
3581 if test "X$NETBSD_UVM" = "X" # {
3583 grep -q UVM $LSOF_TMP3
3584 if test $? -ne 0 # {
3586 egrep -q "v_uvm;|v_uobj;" $LSOF_TMP3
3587 if test $? -eq 0 # {
3594 LSOF_TMP2="nfs/nfsnode.h"
3595 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3597 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3600 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3602 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3608 if test "X$LSOF_TMP3" != "X" # {
3610 grep -q "*n_vattr" $LSOF_TMP3
3611 if test $? -eq 0 # {
3613 LSOF_CFGF="$LSOF_CFGF -DHASNFSVATTRP"
3614 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3620 LSOF_TMP2="sys/lockf.h"
3621 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3623 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3626 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3628 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3634 if test "X$LSOF_TMP3" != "X" # {
3636 grep -q vop_advlock_args $LSOF_TMP3
3637 if test $? -eq 0 # {
3639 LSOF_CFGF="$LSOF_CFGF -DHAS_ADVLOCK_ARGS"
3640 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3645 grep -q lf_lwp $LSOF_TMP3
3646 if test $? -eq 0 # {
3648 LSOF_CFGF="$LSOF_CFGF -DHAS_LF_LWP"
3649 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3655 LSOF_TMP2="sys/lwp.h"
3656 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3658 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3661 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3663 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3669 if test "X$LSOF_TMP3" != "X" # {
3671 LSOF_CFGF="$LSOF_CFGF -DHAS_LWP_H"
3672 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3677 LSOF_TMP2="sys/filedesc.h"
3678 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3680 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3683 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3685 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3691 if test "X$LSOF_TMP3" != "X" # {
3693 grep -q "^struct cwdinfo {" $LSOF_TMP3
3694 if test $? -eq 0 # {
3696 LSOF_CFGF="$LSOF_CFGF -DHASCWDINFO"
3697 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3703 LSOF_TMP2="sys/pipe.h"
3704 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3706 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3709 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3711 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3717 if test "X$LSOF_TMP3" != "X" # {
3719 LSOF_CFGF="$LSOF_CFGF -DHAS_SYS_PIPEH"
3720 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3725 if test -r ${LSOF_INCLUDE}/sys/statvfs.h # {
3727 grep -q '^struct statvfs {' ${LSOF_INCLUDE}/sys/statvfs.h
3728 if test $? -eq 0 # {
3730 LSOF_CFGF="$LSOF_CFGF -DHASSTATVFS"
3734 # Here end the dual NetBSD tests for header files in $LSOF_INCLUDE or
3737 # After this LSOF_TMP1 may be reused.
3739 if test $LSOF_TMP1 -eq 1 # {
3741 LSOF_DINC="-I$LSOF_INCLUDE -I$NETBSD_SYS"
3744 # Build special header files, as required.
3746 rm -rf dialects/n+obsd/include
3747 if test "X$NETBSD_UVM" = "XY" -o "X$NETBSD_UVM" = "Xy" # {
3749 mkdir dialects/n+obsd/include
3750 touch dialects/n+obsd/include/opt_uvmhist.h
3751 touch dialects/n+obsd/include/opt_lockdebug.h
3752 LSOF_CFGF="$LSOF_CFGF -DUVM -I`pwd`/dialects/n+obsd/include"
3753 if test -d ${LSOF_INCLUDE}/uvm # {
3755 LSOF_CFGF="$LSOF_CFGF -DHAS_UVM_INCL"
3758 LSOF_TMP2="sys/mount.h"
3759 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3761 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3763 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3765 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3770 if test "X$LSOF_TMP3" != "X" # {
3773 # Build a local NetBSD netexport.h header file for possible use by
3774 # <msdosfs/msdosfsmount.h>. Make sure CFGL contains a -I for it.
3776 LSOF_TMP1=${LSOF_TMPC}.edscr
3777 LSOF_TMP2=${LSOF_TMPC}.netcred
3778 LSOF_TMP3=${LSOF_TMPC}.netexport
3779 LSOF_TMP4=dialects/n+obsd/include/netexport.h
3780 if test ! -d dialects/n+obsd/include # {
3782 mkdir dialects/n+obsd/include
3784 rm -f $LSOF_TMP1 $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4
3785 echo "/^struct netcred" > $LSOF_TMP1
3786 echo "1,.-1d" >> $LSOF_TMP1
3787 echo "/^};" >> $LSOF_TMP1
3788 echo "1,.w $LSOF_TMP2" >> $LSOF_TMP1
3789 ed ${LSOF_INCLUDE}/sys/mount.h < $LSOF_TMP1 > /dev/null 2>&1
3791 echo "/^struct netexport" > $LSOF_TMP1
3792 echo "1,.-1d" >> $LSOF_TMP1
3793 echo "/^};" >> $LSOF_TMP1
3794 echo "1,.w $LSOF_TMP3" >> $LSOF_TMP1
3795 ed ${LSOF_INCLUDE}/sys/mount.h < $LSOF_TMP1 > /dev/null 2>&1
3796 echo "/*" > $LSOF_TMP4
3797 echo " * netexport.h" >> $LSOF_TMP4
3798 echo -n " * Created by Configure: " >> $LSOF_TMP4
3799 echo `date` >> $LSOF_TMP4
3800 echo " */" >> $LSOF_TMP4
3801 echo "" >> $LSOF_TMP4
3802 echo "#if !defined(NETEXPORT_H)" >> $LSOF_TMP4
3803 echo "#define NETEXPORT_H" >> $LSOF_TMP4
3804 echo "" >> $LSOF_TMP4
3805 echo "#include <net/radix.h>" >> $LSOF_TMP4
3806 echo "" >> $LSOF_TMP4
3807 if test -r $LSOF_TMP2 # {
3809 cat $LSOF_TMP2 >> $LSOF_TMP4
3810 echo "" >> $LSOF_TMP4
3812 if test -r $LSOF_TMP3 # {
3814 cat $LSOF_TMP3 >> $LSOF_TMP4
3816 echo "#endif /* !defined(NETEXPORT_H) */" >> $LSOF_TMP4
3817 rm -f $LSOF_TMP1 $LSOF_TMP2 $LSOF_TMP3
3818 echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1
3819 if test $? -ne 0 # {
3821 LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include"
3824 if test $LSOF_NBSD_BUFQH -eq 1 # {
3827 # Make a local copy of $NETBSD_SYS/sys/bufq.h.
3829 if test ! -d dialects/n+obsd/include # {
3831 mkdir dialects/n+obsd/include
3833 if test ! -d dialects/n+obsd/include/sys # {
3835 mkdir dialects/n+obsd/include/sys
3837 cp $NETBSD_SYS/sys/bufq.h dialects/n+obsd/include/sys
3838 echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1
3839 if test $? -ne 0 # {
3841 LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include"
3844 if test $LSOF_NBSD_PTYFS -eq 1 # {
3847 # Make a local copy of $NETBSD_SYS/sys/fs/ptyfs/.
3849 if test ! -d dialects/n+obsd/include # {
3851 mkdir dialects/n+obsd/include
3853 if test ! -d dialects/n+obsd/include/fs # {
3855 mkdir dialects/n+obsd/include/fs
3857 rm -rf dialects/n+obsd/include/fs/ptyfs
3858 mkdir dialects/n+obsd/include/fs/ptyfs
3859 cp $NETBSD_SYS/fs/ptyfs/*.h dialects/n+obsd/include/fs/ptyfs
3860 echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1
3861 if test $? -ne 0 # {
3863 LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include"
3866 LSOF_CFGL="$LSOF_CFGL -lkvm"
3867 LSOF_DIALECT_DIR=n+obsd
3870 # Configure for NeXTSTEP or OPENSTEP.
3872 nextstep|next|ns|nxt|openstep|os)
3874 LSOF_TSTXO="../lib/snpf.o"
3875 if test "X$LSOF_AR" = "X" # {
3877 LSOF_AR="rm -f \${LIB}; ar cr"
3879 if test "X$LSOF_VSTR" = "X" # {
3881 LSOF_VSTR=`hostinfo | sed -n 's/.*NeXT Mach \([0-9\.]*\).*/\1/p'`
3883 if test "X$LSOF_VERS" = "X" # {
3886 # If the NeXSTEP version isn't predefined, determine it.
3888 LSOF_VERS=`echo $LSOF_VSTR | sed -n 's/\([0-9]*\)\.\([0-9]*\)/\1\2/p'`
3890 if test "X$LSOF_CC" = "X" # {
3892 if test -x /usr/local/bin/gcc # {
3894 LSOF_CC=/usr/local/bin/gcc
3895 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
3898 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
3901 echo $LSOF_CC | grep gcc > /dev/null
3902 if test $? -eq 0 # {
3904 LSOF_CFGL="$LSOF_CFGL -w"
3905 LSOF_DEBUG="-pedantic -O"
3907 LSOF_CFGF="$LSOF_CFGF -DSTEPV=$LSOF_VERS"
3908 LSOF_DIALECT_DIR=n+os
3912 if test -r ${AFS_VICE}/etc/ThisCell # {
3914 if test "X$LSOF_SCRIPT_CALL" = "Xno" # {
3916 if test -r ./AFSHeaders -a -r ./AFSVersion # {
3921 if test ! -x ./AFSConfig # {
3923 echo "Can't find or execute the AFSConfig script"
3928 if test $? -eq 0 -a -r ./AFSHeaders -a -r ./AFSVersion # {
3933 if test "X$LSOF_AFS" = "Xyes" # {
3935 LSOF_AFSV=`cat ./AFSVersion | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1 \2/' | awk '{printf "%d%02d\n",\$1,\$2}'`
3936 LSOF_CFGF="$LSOF_CFGF -DHAS_AFS=$LSOF_AFSV"
3937 LSOF_DINC="$LSOF_DINC -I`cat ./AFSHeaders`"
3942 # Configure for OpenBSD. (OpenBSD uses NetBSD dialect sources and version
3946 if test "X$LSOF_CC" = "X" # {
3949 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
3951 if test "X$LSOF_VSTR" = "X" # {
3953 LSOF_VSTR=`uname -r`
3955 if test "X$LSOF_VERS" = "X" # {
3958 # If the OpenBSD version isn't pre-defined, determine it.
3960 case $LSOF_VSTR in # {
3963 echo "!!!WARNING!!! Unsupported OpenBSD 1.x version: $LSOF_VSTR"
3964 echo "!!!WARNING!!! Configuring for OpenBSD 1.2"
3987 echo "!!!WARNING!!! Unsupported OpenBSD 2.x version: $LSOF_VSTR"
3988 echo "!!!WARNING!!! Configuring for OpenBSD 2.9"
4033 echo "!!!WARNING!!! Unsupported OpenBSD 3.x version: $LSOF_VSTR"
4034 echo "!!!WARNING!!! Configuring for OpenBSD 3.9"
4037 echo "Unknown OpenBSD release: $LSOF_VSTR"
4038 echo Assuming OpenBSD 3.9
4044 # Test for legal OpenBSD version.
4046 case $LSOF_VERS in # {
4047 1020|2050|2060|2070|2080|2090|3000|3010|3020|3030|3040|3050|3060|3070|3080|3090)
4050 echo "Unknown OpenBSD version: $LSOF_VERS"
4055 LSOF_CFGF="$LSOF_CFGF -DOPENBSDV=$LSOF_VERS"
4056 if test -r /dev/ksyms # {
4058 LSOF_CFGF="$LSOF_CFGF -DN_UNIXV=/dev/ksyms"
4060 LSOF_CFGF="$LSOF_CFGF -DN_UNIXV=/bsd"
4062 if test -r ${LSOF_INCLUDE}/nfs/nfsproto.h # {
4064 LSOF_CFGF="$LSOF_CFGF -DHASNFSPROTO"
4066 if test -r ${LSOF_INCLUDE}/netinet6/in6.h # {
4068 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
4071 if test "X$OPENBSD_SYS" = "X" # {
4075 if test -r ${OPENBSD_SYS}/miscfs/fdesc/fdesc.h # {
4077 grep -q Fctty ${OPENBSD_SYS}/miscfs/fdesc/fdesc.h
4078 if test $? -eq 0 # {
4080 LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=1"
4082 LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=2"
4084 grep -q fd_link ${OPENBSD_SYS}/miscfs/fdesc/fdesc.h
4085 if test $? -eq 0 # {
4087 LSOF_CFGF="$LSOF_CFGF -DHASFDLINK"
4091 if test -r ${LSOF_INCLUDE}/sys/vnode.h # {
4093 grep -q VT_LFS ${LSOF_INCLUDE}/sys/vnode.h
4094 if test $? -eq 0 # {
4096 LSOF_CFGF="$LSOF_CFGF -DHASLFS"
4099 if test -r ${LSOF_INCLUDE}/miscfs/nullfs/null.h # {
4101 LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
4103 if test -r ${OPENBSD_SYS}/miscfs/nullfs/null.h # {
4105 LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
4109 if test -d ${OPENBSD_SYS}/miscfs/procfs # {
4111 LSOF_CFGF="$LSOF_CFGF -DHASPROCFS"
4114 if test -d ${OPENBSD_SYS}/isofs/cd9660 # {
4116 LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=1"
4119 if test -d ${OPENBSD_SYS}/fs/cd9660 # {
4121 LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=2"
4125 if test -d ${OPENBSD_SYS}/msdosfs # {
4127 LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=1"
4130 if test -d ${OPENBSD_SYS}/fs/msdosfs # {
4132 LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=2"
4136 if test -r ${OPENBSD_SYS}/miscfs/kernfs/kernfs.h # {
4138 grep -q "kt_name;" ${OPENBSD_SYS}/miscfs/kernfs/kernfs.h
4139 if test $? -eq 0 # {
4141 LSOF_CFGF="$LSOF_CFGF -DHASKERNFS"
4145 if test $LSOF_TMP1 -eq 1 -a "X$LSOF_INCLUDE" != "X$OPENBSD_SYS" # {
4147 LSOF_DINC="-I$LSOF_INCLUDE -I$OPENBSD_SYS"
4149 grep -q VT_EXT2FS ${LSOF_INCLUDE}/sys/vnode.h
4150 if test $? -eq 0 # {
4153 if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h # {
4155 grep -q "*e2fs_din" ${LSOF_INCLUDE}/ufs/ufs/inode.h
4156 if test $? -eq 0 # {
4158 LSOF_CFGF="$LSOF_CFGF -DHASI_E2FS_PTR"
4160 grep -q "^#define[ ]i_e2din" ${LSOF_INCLUDE}/ufs/ufs/inode.h
4161 if test $? -eq 0 # {
4166 LSOF_CFGF="$LSOF_CFGF -DHASEXT2FS=$LSOF_TMP1"
4168 if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h # {
4170 grep -q i_effnlink ${LSOF_INCLUDE}/ufs/ufs/inode.h
4171 if test $? -eq 0 # {
4173 LSOF_CFGF="$LSOF_CFGF -DHASEFFNLINK=i_effnlink"
4175 grep -q dinode_u ${LSOF_INCLUDE}/ufs/ufs/inode.h
4176 if test $? -eq 0 # {
4178 LSOF_CFGF="$LSOF_CFGF -DHAS_DINODE_U"
4180 grep -q i_ffs1_size ${LSOF_INCLUDE}/ufs/ufs/inode.h
4181 if test $? -eq 0 # {
4183 LSOF_CFGF="$LSOF_CFGF -DHASI_FFS1"
4185 grep -q UM_UFS ${LSOF_INCLUDE}/ufs/ufs/inode.h
4186 if test $? -eq 0 # {
4188 LSOF_CFGF="$LSOF_CFGF -DHAS_UM_UFS"
4191 if test -r ${LSOF_INCLUDE}/sys/namei.h
4193 grep -q nc_vpid ${LSOF_INCLUDE}/sys/namei.h
4194 if test $? -eq 0 # {
4196 LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
4199 if test "X$OPENBSD_UVM" = "X" # {
4201 if test -r ${LSOF_INCLUDE}/sys/vnode.h # {
4203 grep -q UVM ${LSOF_INCLUDE}/sys/vnode.h
4204 if test $? -ne 0 # {
4206 egrep -q "v_uvm;|v_uobj;" ${LSOF_INCLUDE}/sys/vnode.h
4207 if test $? -eq 0 # {
4214 if test "X$OPENBSD_UVM" = "XY" -o "X$OPENBSD_UVM" = "Xy" # {
4216 LSOF_CFGF="$LSOF_CFGF -DUVM"
4217 if test -d ${LSOF_INCLUDE}/uvm # {
4219 LSOF_CFGF="$LSOF_CFGF -DHAS_UVM_INCL"
4222 if test -r ${LSOF_INCLUDE}/sys/mount.h -a $LSOF_VERS -lt 3030 # {
4225 # Build a local OpenBSD netexport.h header file for possible use by
4226 # <msdosfs/msdosfsmount.h>. Make sure CFGL contains a -I for it.
4228 LSOF_TMP1=${LSOF_TMPC}.edscr
4229 LSOF_TMP2=${LSOF_TMPC}.netcred
4230 LSOF_TMP3=${LSOF_TMPC}.netexport
4231 LSOF_TMP4=dialects/n+obsd/include/netexport.h
4232 if test ! -d dialects/n+obsd/include # {
4234 mkdir dialects/n+obsd/include
4236 rm -f $LSOF_TMP1 $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4
4237 echo "/^struct netcred" > $LSOF_TMP1
4238 echo "1,.-1d" >> $LSOF_TMP1
4239 echo "/^};" >> $LSOF_TMP1
4240 echo "1,.w $LSOF_TMP2" >> $LSOF_TMP1
4241 ed ${LSOF_INCLUDE}/sys/mount.h < $LSOF_TMP1 > /dev/null 2>&1
4243 echo "/^struct netexport" > $LSOF_TMP1
4244 echo "1,.-1d" >> $LSOF_TMP1
4245 echo "/^};" >> $LSOF_TMP1
4246 echo "1,.w $LSOF_TMP3" >> $LSOF_TMP1
4247 ed ${LSOF_INCLUDE}/sys/mount.h < $LSOF_TMP1 > /dev/null 2>&1
4248 echo "/*" > $LSOF_TMP4
4249 echo " * netexport.h" >> $LSOF_TMP4
4250 echo -n " * Created by Configure: " >> $LSOF_TMP4
4251 echo `date` >> $LSOF_TMP4
4252 echo " */" >> $LSOF_TMP4
4253 echo "" >> $LSOF_TMP4
4254 echo "#if !defined(NETEXPORT_H)" >> $LSOF_TMP4
4255 echo "#define NETEXPORT_H" >> $LSOF_TMP4
4256 echo "" >> $LSOF_TMP4
4257 echo "#include <net/radix.h>" >> $LSOF_TMP4
4258 echo "" >> $LSOF_TMP4
4259 if test -r $LSOF_TMP2 # {
4261 cat $LSOF_TMP2 >> $LSOF_TMP4
4262 echo "" >> $LSOF_TMP4
4264 if test -r $LSOF_TMP3 # {
4266 cat $LSOF_TMP3 >> $LSOF_TMP4
4268 echo "#endif /* !defined(NETEXPORT_H) */" >> $LSOF_TMP4
4269 rm -f $LSOF_TMP1 $LSOF_TMP2 $LSOF_TMP3
4270 echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1
4271 if test $? -ne 0 # {
4273 LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include"
4276 if test -r ${LSOF_INCLUDE}/sys/lockf.h # {
4278 grep vop_advlock_args ${LSOF_INCLUDE}/sys/lockf.h > /dev/null
4279 if test $? -eq 0 # {
4281 LSOF_CFGF="$LSOF_CFGF -DHAS_ADVLOCK_ARGS"
4284 if test -r ${LSOF_INCLUDE}/sys/pipe.h # {
4286 LSOF_CFGF="$LSOF_CFGF -DHAS_SYS_PIPEH"
4288 LSOF_CFGL="$LSOF_CFGL -lkvm"
4289 LSOF_DIALECT_DIR=n+obsd
4292 # Configure for SCO OpenServer.
4294 osr|osrgcc|sco|scogcc)
4295 if test "X$LSOF_RANLIB_SUP" = "X" # {
4299 if test "X$OSR_CFGF" != "X" # {
4302 # Adopt LSOF_CFGF from OSR_CFGF in environment.
4306 if test "X$OSR_CFGL" != "X" # {
4309 # Adopt LSOF_CFGL from OSR_CFGL in environment.
4314 # Evaluate compiler specification.
4316 if test "X$LSOF_CC" = "X" # {
4318 if test "X$LSOF_TGT" = "Xosr" -o "X$LSOF_TGT" = "Xsco" # {
4324 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
4332 # Determine version.
4334 if test "X$LSOF_VSTR" = "X" # {
4336 LSOF_VSTR="`LANG=C_C.C /bin/uname -X 2>/dev/null | grep Release | sed 's/Release = \(.*\)/\1/'`"
4338 if test "X$LSOF_VERS" = "X" # {
4341 # If the SCO OpenServer release version isn't predefined, determine it.
4343 case $LSOF_VSTR in # {
4360 LSOF_TSTLFLG="-lsocket"
4361 LSOF_VERS="`echo $LSOF_VSTR | sed 's/3\.2v//; s/\.//g'`"
4364 echo Unknown SCO OpenServer release: $LSOF_VSTR
4365 echo Assuming 3.2.0 or 3.2.1
4371 # Do SCO OpenServer specific stuff.
4373 case $LSOF_VERS in # {
4375 if test $LSOF_TMP1 -eq 1 # {
4377 LSOF_CFGF="$LSOF_CFGF -nointl"
4380 LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4384 if test $LSOF_TMP1 -eq 1 # {
4388 LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4392 if test $LSOF_TMP1 -eq 1 # {
4394 LSOF_CFGF="$LSOF_CFGF -nointl"
4397 LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4401 if test $LSOF_TMP1 -eq 1 # {
4403 LSOF_CFGF="$LSOF_CFGF -nointl"
4406 LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4409 if test $LSOF_TMP1 -eq 1 # {
4411 LSOF_CFGF="$LSOF_CFGF -nointl"
4414 LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4417 if test $LSOF_TMP1 -eq 1 # {
4419 LSOF_CFGF="$LSOF_CFGF -nointl"
4422 LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4425 if test $LSOF_TMP1 -eq 1 # {
4427 LSOF_CFGF="$LSOF_CFGF -belf"
4428 LSOF_DEBUG="-O3 -Kspace"
4430 LSOF_CFGL="$LSOF_CFGL -lsocket"
4433 echo "Unsupported SCO OpenServer release: $LSOF_VERS"
4438 LSOF_CFGF="$LSOF_CFGF -DOSRV=$LSOF_VERS"
4439 if test "X$OSR_STATLSTAT" = "X" # {
4441 echo "Testing libc.a for statlstat"
4442 /bin/nm /lib/libc.a | grep statlstat > /dev/null 2>&1
4443 if test $? -eq 0 # {
4445 LSOF_CFGF="$LSOF_CFGF -DHAS_STATLSTAT"
4448 if test "X$OSR_STATLSTAT" = "XY" -o "X$OSR_STATLSTAT" = "Xy" # {
4450 LSOF_CFGF="$LSOF_CFGF -DHAS_STATLSTAT"
4453 if test -r ${LSOF_INCLUDE}/sys/fs/nfs/rnode.h # {
4455 LSOF_CFGF="$LSOF_CFGF -DHAS_NFS"
4457 if test ! -r ${LSOF_INCLUDE}/netdb.h # {
4459 LSOF_DINC="$LSOF_DINC -I`pwd`/dialects/osr/include"
4461 LSOF_DIALECT_DIR=osr
4464 # Configure for Sun Solaris, SunPro C and gcc.
4467 if test "X$LSOF_RANLIB_SUP" = "X" # {
4471 if test "X$LSOF_CC" = "X" # {
4473 if test "X$LSOF_TGT" = "Xsolariscc" # {
4475 if test "X$SOLARIS_CCDIR" = "X" # {
4477 SOLARIS_CCDIR="/opt/SUNWspro/bin"
4479 if test -x ${SOLARIS_CCDIR}/cc # {
4481 LSOF_CC=${SOLARIS_CCDIR}/cc
4483 if test -x /opt/SunStudioExpress/bin/cc # {
4485 LSOF_CC=/opt/SunStudioExpress/bin/cc
4487 echo "WARNING: no cc in ${SOLARIS_CCDIR}; using cc without path."
4491 LSOF_CCV=`$LSOF_CC -V 2>&1 | sed -n 's/^cc: \(.*\)/\1/p'`
4494 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
4498 if test "X$LSOF_VSTR" = "X" # {
4500 LSOF_VSTR=`uname -r`
4502 if test "X$LSOF_VERS" = "X" # {
4505 # If the Solaris version isn't predefined, determine it.
4507 case $LSOF_VSTR in # {
4524 LSOF_TSTLFLG="-lsocket -lnsl"
4529 LSOF_TSTLFLG="-lsocket -lnsl"
4534 LSOF_TSTLFLG="-lsocket -lnsl"
4539 LSOF_TSTLFLG="-lsocket -lnsl"
4544 LSOF_TSTLFLG="-lsocket -lnsl"
4549 LSOF_TSTLFLG="-lsocket -lnsl"
4553 echo Unknown Solaris version: $LSOF_VSTR
4559 # Clear LSOF_UNSUP message for selected Solaris versions.
4561 case $LSOF_VERS in # {
4562 90000|100000|110000)
4567 # Do Solaris version-specific stuff.
4569 case $LSOF_VERS in # {
4572 # Solaris patch 101318-32 creates a longer kernel tcp_s structure,
4573 # and 101318-45 changes the way the vnode's v_filocks member is
4574 # handled. The following code creates a symbol definition for
4575 # patch 101318 whose value is the patch level. No symbol is defined
4576 # if the patch level is not greater than zero.
4578 if test "X$SOLARIS_23P101318" = "X" # {
4580 LSOF_PL=`grep -h SUNW_PATCHID=101318 /var/sadm/pkg/SUNWcar*/pkginfo | sed 's/.*-//' | sort -u | tail -1`
4581 if test "X$LSOF_PL" = "X" # {
4586 LSOF_PL=$SOLARIS_23P101318
4588 if test $LSOF_PL -gt 0 # {
4590 LSOF_CFGF="$LSOF_CFGF -DP101318=$LSOF_PL"
4594 if test "X$SOLARIS_24P101945" = "X" # {
4596 LSOF_PL=`grep -h SUNW_PATCHID=101945 /var/sadm/pkg/SUNWcar*/pkginfo | sed 's/.*-//' | sort -u | tail -1`
4597 if test "X$LSOF_PL" = "X" # {
4602 LSOF_PL=$SOLARIS_24P101945
4604 if test $LSOF_PL -ge 32 # {
4606 if test "X$SOLARIS_24P102303" = "X" # {
4608 LSOF_PL=`grep -h SUNW_PATCHID=102303 /var/sadm/pkg/SUNWhea*/pkginfo | sed 's/.*-//' | sort -u | tail -1`
4609 if test "X$LSOF_PL" = "X" # {
4614 LSOF_PL=$SOLARIS_24P102303
4616 if test $LSOF_PL -ge 2 # {
4618 echo "WARNING: your Solaris 2.4 system appears to have patches 101945-32 and 102303-2"
4619 echo " installed. This probably means the NUM_*_VECTORS definitions in"
4620 echo " <sys/auxv.h> don't match the ones used to build your kernel. Consult"
4621 echo " the Sun Problems section of the 00FAQ file of the lsof distribution"
4622 echo " for more information on how to work around the problem."
4628 20600|70000|80000|90000|100000|110000)
4629 if test "X$SOLARIS_26PR_GWINDOWS" = "X" # {
4631 rm -f ${LSOF_TMPC}.*
4632 echo "#define _KMEMUSER" > ${LSOF_TMPC}.c
4633 echo "#include <sys/proc/prdata.h>" >> ${LSOF_TMPC}.c
4634 echo "main(){" >> ${LSOF_TMPC}.c
4635 echo "enum prnodetype p=PR_GWINDOWS;}" >> ${LSOF_TMPC}.c
4636 echo "Testing prdata.h for PR_GWINDOWS, using $LSOF_CC"
4637 echo $LSOF_CC | grep gcc > /dev/null
4638 if test $? -eq 0 # {
4640 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
4642 $LSOF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x > /dev/null 2>&1
4644 if test $? -eq 0 # {
4646 LSOF_CFGF="$LSOF_CFGF -DHASPR_GWINDOWS"
4649 if test "X$SOLARIS_26PR_GWINDOWS" = "XY" -o "X$SOLARIS_26PR_GWINDOWS" = "Xy" # {
4651 LSOF_CFGF="$LSOF_CFGF -DHASPR_GWINDOWS"
4654 if test "X$SOLARIS_26PR_LDT" = "X" # {
4656 rm -f ${LSOF_TMPC}.*
4657 echo "#define _KMEMUSER" > ${LSOF_TMPC}.c
4658 echo "#include <sys/proc/prdata.h>" >> ${LSOF_TMPC}.c
4659 echo "main(){" >> ${LSOF_TMPC}.c
4660 echo "enum prnodetype p=PR_LDT;}" >> ${LSOF_TMPC}.c
4661 echo "Testing prdata.h for PR_LDT, using $LSOF_CC"
4662 echo $LSOF_CC | grep gcc > /dev/null
4663 if test $? -eq 0 # {
4665 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
4667 $LSOF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x > /dev/null 2>&1
4669 if test $? -eq 0 # {
4671 LSOF_CFGF="$LSOF_CFGF -DHASPR_LDT"
4673 rm -f ${LSOF_TMPC}.*
4675 if test "X$SOLARIS_26PR_LDT" = "XY" -o "X$SOLARIS_26PR_LDT" = "Xy" # {
4677 LSOF_CFGF="$LSOF_CFGF -DHASPR_LDT"
4680 if test $LSOF_VERS -ge 70000 # {
4683 # Do tests for Solaris 7 and above.
4685 if test "X$SOLARIS_KERNBITS" = "X" # {
4687 SOLARIS_KERNBITS=`/bin/isainfo -kv`
4689 if test "X$SOLARIS_INSTR" = "X" # {
4691 SOLARIS_INSTR=`/bin/isainfo -k`
4693 echo $SOLARIS_KERNBITS | grep 64 > /dev/null
4694 if test $? -eq 0 # {
4696 echo $LSOF_CC | grep gcc > /dev/null
4697 if test $? -eq 0 # {
4700 # Test gcc for 64 bit support.
4702 echo "Testing $LSOF_CC for 64 bit support"
4703 rm -f ${LSOF_TMPC}.*
4704 echo "main(){}" > ${LSOF_TMPC}.c
4707 # First try gcc's -m64 option -- it's the most current possibility.
4709 $LSOF_CC ${LSOF_TMPC}.c -m64 -o ${LSOF_TMPC}.x > /dev/null 2>&1
4710 if test $? -eq 0 # {
4712 /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null
4713 if test $? -eq 0 # {
4718 rm -f ${LSOF_TMPC}.*
4719 if test "X$LSOF_TMP1" = "X" # {
4722 # Try using the older -mcpu=v9 option with gcc instead of -m64.
4724 echo "main(){}" > ${LSOF_TMPC}.c
4725 $LSOF_CC ${LSOF_TMPC}.c -mcpu=v9 -o ${LSOF_TMPC}.x > /dev/null 2>&1
4726 if test $? -eq 0 # {
4728 /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null
4729 if test $? -eq 0 # {
4731 LSOF_TMP1="-mcpu=v9"
4734 rm -f ${LSOF_TMPC}.*
4736 if test "X$LSOF_TMP1" = "X" # {
4739 echo "!!!WARNING!!!=========!!!WARNING!!!=========!!!WARNING!!!"
4741 echo "! LSOF NEEDS TO BE CONFIGURED FOR A 64 BIT KERNEL, BUT !"
4742 echo "! THIS GCC DOESN'T SUPPORT THE BUILDING OF 64 BIT !"
4743 echo "! SOLARIS EXECUTABLES. LSOF WILL BE CONFIGURED FOR A !"
4744 echo "! 32 BIT KERNEL. !"
4746 echo "!!!WARNING!!!=========!!!WARNING!!!=========!!!WARNING!!!"
4750 echo "*********************************"
4751 echo "* Configuring for 64 bit kernel *"
4752 echo "*********************************"
4754 LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
4755 LSOF_CINFO="64 bit kernel"
4760 # Test Sun compiler for 64 bit support.
4762 case $SOLARIS_INSTR in # {
4775 if test "X$LSOF_TMP1" != "X" # {
4777 echo "Testing $LSOF_CC for 64 bit $LSOF_TMP2 support"
4778 rm -f ${LSOF_TMPC}.*
4779 LSOF_TMP3="-xarch=$LSOF_TMP1"
4780 echo "main(){}" > ${LSOF_TMPC}.c
4781 LSOF_TMP4=`$LSOF_CC ${LSOF_TMPC}.c $LSOF_TMP3 -o ${LSOF_TMPC}.x 2>&1`
4782 if test $? -eq 0 # {
4784 /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null
4785 if test $? -ne 0 # {
4789 echo "X$LSOF_TMP4" | grep "use -m64" > /dev/null 2>&1
4790 if test $? -eq 0 # {
4796 rm -f ${LSOF_TMPC}.*
4800 if test "X$LSOF_TMP3" != "X" # {
4803 echo "*********************************"
4804 echo "* Configuring for 64 bit kernel *"
4805 echo "*********************************"
4807 LSOF_CFGF="$LSOF_CFGF $LSOF_TMP3"
4808 LSOF_CINFO="64 bit kernel"
4812 echo "!!!WARNING!!!==========!!!WARNING!!!==========!!!WARNING!!!"
4814 echo "! LSOF NEEDS TO BE CONFIGURED FOR A 64 BIT KERNEL, BUT"
4815 echo "! THE VERSION OF SUN C AVAILABLE DOESN'T SUPPORT THE"
4816 echo "! \"$LSOF_TMP2\" INSTRUCTION SET."
4818 echo "! LSOF WILL BE CONFIGURED FOR A 32 BIT KERNEL."
4820 echo "!!!WARNING!!!==========!!!WARNING!!!==========!!!WARNING!!!"
4826 echo "*********************************"
4827 echo "* Configuring for 32 bit kernel *"
4828 echo "*********************************"
4830 LSOF_CINFO="32 bit kernel"
4834 # Do tests specific to Solaris 8 and above.
4836 if test $LSOF_VERS -ge 80000 # {
4838 if test -r ${LSOF_INCLUDE}/netinet/ip6.h # {
4840 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
4844 # Do tests specific to Solaris 9 and above.
4846 if test $LSOF_VERS -ge 90000 # {
4848 if test -r ${LSOF_INCLUDE}/sys/socketvar.h # {
4850 grep soua_vp ${LSOF_INCLUDE}/sys/socketvar.h > /dev/null 2>&1
4851 if test $? -eq 0 # {
4853 LSOF_CFGF="$LSOF_CFGF -DHASSOUXSOUA"
4856 if test $LSOF_VERS -lt 110000 # {
4859 # Do tests specific to Solaris 9 and 10.
4861 if test -r ${LSOF_INCLUDE}/sys/lgrp_user.h # {
4863 if test -r ${LSOF_INCLUDE}/sys/lgrp.h # {
4865 grep lgrp_root ${LSOF_INCLUDE}/sys/lgrp_user.h > /dev/null 2>&1
4866 if test $? -eq 0 # {
4868 grep lgrp_root ${LSOF_INCLUDE}/sys/lgrp.h > /dev/null 2>&1
4871 LSOF_CFGF="$LSOF_CFGF -DHAS_LGRP_ROOT_CONFLICT"
4879 # Do tests specific to Solaris 10 and above.
4881 if test $LSOF_VERS -eq 100000 # {
4883 if test -r ${LSOF_INCLUDE}/sys/socket_proto.h # {
4885 LSOF_CFGF="$LSOF_CFGF -DHAS_SOCKET_PROTO_H"
4888 if test $LSOF_VERS -ge 100000 # {
4890 if test -r ${LSOF_INCLUDE}/inet/ipclassifier.h # {
4892 LSOF_CFGF="$LSOF_CFGF -DHAS_IPCLASSIFIER_H"
4893 grep conn_ixa ${LSOF_INCLUDE}/inet/ipclassifier.h > /dev/null 2>&1
4894 if test $? -eq 0 # {
4896 LSOF_CFGF="$LSOF_CFGF -DHAS_CONN_NEW"
4899 if test -r ${LSOF_INCLUDE}/sys/cred_impl.h # {
4901 LSOF_CFGF="$LSOF_CFGF -DHAS_CRED_IMPL_H"
4903 # DEBUG -- Begin temporary hack for Solaris 10, build s10_44.
4905 grep "c2/audit.h" ${LSOF_INCLUDE}/sys/cred_impl.h > /dev/null
4906 if test $? -eq 0 # {
4908 rm -rf `pwd`/dialects/sun/solaris10
4909 mkdir `pwd`/dialects/sun/solaris10
4910 mkdir `pwd`/dialects/sun/solaris10/c2
4911 touch `pwd`/dialects/sun/solaris10/c2/audit.h
4912 LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/sun/solaris10"
4915 # DEBUG -- End temporary hack for Solaris 10, build s10_44.
4918 if test -r ${LSOF_INCLUDE}/sys/vnode.h # {
4920 grep v_path ${LSOF_INCLUDE}/sys/vnode.h > /dev/null 2>&1
4921 if test $? -eq 0 # {
4923 LSOF_CFGF="$LSOF_CFGF -DHAS_V_PATH"
4927 if test -r ${LSOF_INCLUDE}/sys/fs/pc_fs.h # {
4929 grep pc_direntpersec ${LSOF_INCLUDE}/sys/fs/pc_fs.h > /dev/null 2>&1
4930 if test $? -eq 0 # {
4932 LSOF_CFGF="$LSOF_CFGF -DHAS_PC_DIRENTPERSEC"
4935 if test -r ${LSOF_INCLUDE}/sys/aio_req.h # {
4937 grep "struct[ ]aio_req" ${LSOF_INCLUDE}/sys/aio_req.h > /dev/null 2>&1
4938 if test $? -eq 0 # {
4940 LSOF_CFGF="$LSOF_CFGF -DHAS_AIO_REQ_STRUCT"
4944 if test -r ${LSOF_INCLUDE}/sys/zone.h # {
4946 LSOF_CFGF="$LSOF_CFGF -DHASZONES"
4949 # Check for Solaris 10 or higher CTF library and things that depend
4952 if test -r ${LSOF_INCLUDE}/libctf.h # {
4956 if test -r ${LSOF_INCLUDE}/sys/fs/zfs.h # {
4958 if test $LSOF_CTFH -eq 1 # {
4960 LSOF_CFGF="$LSOF_CFGF -DHAS_ZFS"
4963 echo "WARNING: ZFS support not enabled; libctf.h missing."
4966 if test $LSOF_VERS -ge 110000 # {
4969 # Do things specific to Solaris 11 and above.
4971 if test $LSOF_CTFH -eq 1 # {
4975 echo "WARNING: socket support not enabled; libctf.h missing."
4979 mkdir ./solaris11/sys
4980 touch ./solaris11/sys/extdirent.h
4981 echo "./solaris11/sys/extdirent.h created"
4982 LSOF_CFGF="$LSOF_CFGF -I`pwd`/solaris11"
4983 if test -r ${LSOF_INCLUDE}/sys/mutex.h # {
4986 # Check <sys/mutex.h> 'for pad_mutex_t;'.
4988 grep 'pad_mutex_t;' ${LSOF_INCLUDE}/sys/mutex.h > /dev/null 2>&1
4989 if test $? -eq 0 # {
4991 LSOF_CFGF="$LSOF_CFGF -DHAS_PAD_MUTEX"
4996 # If -lctf was added to LSOF_CFGL, define HAS_LIBCTF.
4998 if test $LSOF_CTFL -eq 1 # {
5000 LSOF_CFGF="$LSOF_CFGF -DHAS_LIBCTF"
5001 LSOF_CFGL="$LSOF_CFGL -lctf"
5005 echo "Unsupported Solaris version: $LSOF_VERS"
5010 LSOF_CFGF="$LSOF_CFGF -Dsolaris=$LSOF_VERS"
5012 # Test for <sys/fs/cachefs_fs.h>.
5014 if test -r ${LSOF_INCLUDE}/sys/fs/cachefs_fs.h # {
5016 LSOF_CFGF="$LSOF_CFGF -DHASCACHEFS"
5019 # Test for <utmpx.h>
5021 if test -r ${LSOF_INCLUDE}/utmpx.h # {
5023 LSOF_CFGF="$LSOF_CFGF -DHASUTMPX"
5028 if test "X$SOLARIS_VSOCK" = "X" # {
5030 rm -f ${LSOF_TMPC}.*
5031 echo "#include <sys/vnode.h>" > ${LSOF_TMPC}.c
5032 echo "main(){" >> ${LSOF_TMPC}.c
5033 echo "enum vtype p=VSOCK;}" >> ${LSOF_TMPC}.c
5034 echo "Testing vnode.h for VSOCK, using $LSOF_CC"
5035 echo $LSOF_CC | grep gcc > /dev/null
5036 if test $? -eq 0 # {
5038 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
5040 $LSOF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x > /dev/null 2>&1
5042 if test $? -eq 0 # {
5044 LSOF_CFGF="$LSOF_CFGF -DHAS_VSOCK"
5046 rm -f ${LSOF_TMPC}.*
5048 if test "X$SOLARIS_VSOCK" = "XY" -o "X$SOLARIS_VSOCK" = "Xy" # {
5050 LSOF_CFGF="$LSOF_CFGF -DHAS_VSOCK"
5056 if test -r ${AFS_VICE}/etc/ThisCell # {
5058 if test "X$LSOF_SCRIPT_CALL" = "Xno" # {
5060 if test -r ./AFSHeaders -a -r ./AFSVersion # {
5065 if test ! -x ./AFSConfig # {
5067 echo "Can't find or execute the AFSConfig script"
5072 if test $? -eq 0 -a -r ./AFSHeaders -a -r ./AFSVersion # {
5077 if test "X$LSOF_AFS" = "Xyes" # {
5079 if test "X$SUN_AFSAPATHDEF" = "X" # {
5081 ls /usr/vice/etc/modload/libafs > /dev/null 2>&1
5082 if test $? -ne 0 # {
5084 LSOF_TMP1=`ls /usr/vice/etc/modload/libafs* 2>/dev/null | wc -l`
5085 if test $LSOF_TMP1 -ne 0 # {
5087 SUN_AFSAPATHDEF=`ls -t /usr/vice/etc/modload/libafs* | head -1`
5091 if test "X$SUN_AFSAPATHDEF" != "X" # {
5093 LSOF_CFGF="$LSOF_CFGF -DAFSAPATHDEF=\\\"$SUN_AFSAPATHDEF\\\""
5095 LSOF_AFSV=`cat ./AFSVersion | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1 \2/' | awk '{printf "%d%02d\n",\$1,\$2}'`
5096 LSOF_CFGF="$LSOF_CFGF -DHAS_AFS=$LSOF_AFSV"
5097 LSOF_DINC="$LSOF_DINC -I`cat ./AFSHeaders`"
5103 # If the location of the VxFS header files hasn't been defined in the
5104 # environment, establish their likely locations.
5106 LSOF_TMP2=$SOLARIS_VXFSINCL
5107 if test -d /opt/VRTS/include # {
5109 LSOF_TMP2="$LSOF_TMP2 /opt/VRTS/include"
5111 if test -d /opt/VRTSvxfs/include # {
5113 LSOF_TMP2="$LSOF_TMP2 /opt/VRTSvxfs/include"
5116 for i in $LSOF_TMP2 # {
5118 if test -r ${i}/vxfsutil.h # {
5125 if test $LSOF_TMP1 -eq 1 # {
5128 # Warn that VxFS is unsupported.
5130 LSOF_UNSUP2="WARNING: VxFS is no longer supported by Solaris lsof."
5132 # The VxFS header files are for VxFS version 3.4 or above. Enable VxFS
5133 # for those versions.
5135 LSOF_CFGF="$LSOF_CFGF -DHASVXFS -DHASVXFSUTIL -I$SOLARIS_VXFSINCL"
5137 # Determine which libvxfsutil.a is required -- 32 or 64 bit.
5139 LSOF_TMP2="" # assume 32 bit
5140 echo "X$LSOF_CINFO" | grep "^X64" > /dev/null 2>&1
5141 if test $? -eq 0-a "X$SOLARIS_INSTR" != "X" # {
5143 case $SOLARIS_INSTR in # {
5148 LSOF_TMP2="/sparcv9"
5153 # See if the correct library has been specified and exists.
5155 if test "X$SOLARIS_VXFSLIB" = "X" # {
5157 SOLARIS_VXFSLIB=`dirname $SOLARIS_VXFSINCL`/lib
5159 LSOF_TMP3="${SOLARIS_VXFSLIB}${LSOF_TMP2}/libvxfsutil.a"
5160 if test ! -r $LSOF_TMP3 # {
5162 echo "!!!FATAL: no VxFS $LSOF_TMP3"
5165 LSOF_CFGL="$LSOF_CFGL -L$SOLARIS_VXFSLIB${LSOF_TMP2} -lvxfsutil -ldl"
5167 # See if the library has the Reverse Name Lookup (RNL) function.
5169 nm $LSOF_TMP3 | grep vxfs_inotopath > /dev/null 2>&1
5170 if test $? -eq 0 # {
5172 LSOF_CFGF="$LSOF_CFGF -DHASVXFSRNL -DHASVXFSDNLC"
5176 # See if there are VxFS header files for VxFS versions below 3.4.
5178 if test -r ${LSOF_INCLUDE}/sys/fs/vx_inode.h # {
5181 # Define VxFS for VxFS versions below 3.4. Make additional header
5184 LSOF_CFGF="$LSOF_CFGF -DHASVXFS"
5185 if test -r ${LSOF_INCLUDE}/sys/fs/vx_fs.h # {
5187 LSOF_CFGF="$LSOF_CFGF -DHASVXFS_FS_H"
5189 if test -r ${LSOF_INCLUDE}/sys/fs/vx_sol.h # {
5191 LSOF_CFGF="$LSOF_CFGF -DHASVXFS_SOL_H"
5193 if test -r ${LSOF_INCLUDE}/sys/fs/vx_machdep.h # {
5195 LSOF_CFGF="$LSOF_CFGF -DHASVXFS_MACHDEP_H"
5197 if test -r ${LSOF_INCLUDE}/sys/fs/vx_solaris.h # {
5199 LSOF_CFGF="$LSOF_CFGF -DHASVXFS_SOLARIS_H"
5200 grep "off32_t;" ${LSOF_INCLUDE}/sys/fs/vx_machdep.h > /dev/null
5201 if test $? -eq 0 # {
5203 LSOF_CFGF="$LSOF_CFGF -DHASVXFS_OFF32_T"
5205 grep "off64_t;" ${LSOF_INCLUDE}/sys/fs/vx_solaris.h > /dev/null
5206 if test $? -eq 0 # {
5208 LSOF_CFGF="$LSOF_CFGF -DHASVXFS_OFF64_T"
5210 grep "vx_u64_t;" ${LSOF_INCLUDE}/sys/fs/vx_solaris.h > /dev/null
5211 if test $? -eq 0 # {
5213 LSOF_CFGF="$LSOF_CFGF -DHASVXFS_U64_T"
5216 egrep "struct[ ]vx_inode[ ]\{" ${LSOF_INCLUDE}/sys/fs/vx_inode.h > /dev/null
5217 # } (dummy '}' to match '{' in above egrep)
5218 if test $? -eq 0 # {
5220 LSOF_CFGF="$LSOF_CFGF -DHASVXFS_VX_INODE"
5225 # Set libraries and dialect subdirectory.
5227 LSOF_CFGL="$LSOF_CFGL -lkvm -lelf -lsocket -lnsl"
5228 LSOF_DIALECT_DIR=sun
5230 # Set local-specific stuff.
5232 if test "X$LSOF_LOCALSUFFIX" = "XLOCAL" # {
5234 LSOF_DOC="\${DESTDIR}/usr/local/man"
5238 # Configure for SCO|Caldera OpenServer Release 6.0.0 and UnixWare.
5243 if test "X$LSOF_RANLIB_SUP" = "X" # {
5247 if test "X$LSOF_VSTR" = "X" # {
5249 LSOF_VSTR=`uname -v`
5251 if test "X$LSOF_VERS" = "X" # {
5254 # If the Openserver Release 6.0.0 or UnixWare version isn't pre-defined,
5257 LSOF_VERS=`echo $LSOF_VSTR | sed 's/\([0-9\.]*\).*/\1/; s/\./ /g' | awk '{printf "%d%02d%02d\n", $1, $2, $3;}'`
5259 if test $LSOF_TMP1 = "osr6" # {
5261 LSOF_CINFO="OSR6 support via UnixWare sources"
5263 # Convert the OpenServer Release 6.0.0 version number to a UnixWare one.
5265 case $LSOF_VERS in # {
5270 echo "Unknown OpenServer Release version: $LSOF_VERS"
5275 LSOF_CFGF="$LSOF_CFGF -DUNIXWAREV=$LSOF_VERS"
5277 # Do OpenServer Release 6.0.0 and UnixWare version-specific stuff.
5279 case $LSOF_VERS in # {
5280 20100|20101|20102|20103)
5281 if test -r ${LSOF_INCLUDE}/sys/fs/vx_inode.h # {
5283 LSOF_CFGF="$LSOF_CFGF -DHASVXFS"
5285 LSOF_CFGL="$LSOF_CFGL -lsocket -lnsl -lelf -lgen"
5287 70000|70001|70100|70101|70103|70104)
5289 LSOF_TSTLFLG="-lsocket -lnsl"
5290 if test $LSOF_VERS -lt 70103 # {
5292 LSOF_DINC="$LSOF_DINC -I`pwd`/dialects/uw/uw7"
5293 else # $LSOF_VERS -ge 70103
5295 # Process 7.1.3 and above.
5297 if test -r ${LSOF_INCLUDE}/netinet/in6.h # {
5299 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
5301 if test $LSOF_VERS -ge 70104 # {
5304 # Process 7.1.4 and above.
5307 if test -r ${LSOF_INCLUDE}/netinet/in_pcb.h # {
5309 grep INKERNEL ${LSOF_INCLUDE}/netinet/in_pcb.h > /dev/null 2>&1
5310 if test $? -eq 0 # {
5315 if test $LSOF_TMP1 -eq 0 -a -r ${LSOF_INCLUDE}/netinet/tcp_var.h # {
5317 grep INKERNEL ${LSOF_INCLUDE}/netinet/tcp_var.h > /dev/null 2>&1
5318 if test $? -eq 0 # {
5323 if test $LSOF_TMP1 -eq 1 # {
5325 LSOF_CFGF="$LSOF_CFGF -DHAS_INKERNEL"
5329 if test ! -r ${LSOF_INCLUDE}/vm/swap.h -a -r ${LSOF_INCLUDE}/sys/swap.h # {
5331 (cd ./dialects/uw/uw7/vm; rm -f swap.h; ln -s ${LSOF_INCLUDE}/sys/swap.h swap.h)
5333 if test -r ${LSOF_INCLUDE}/sys/fs/vx_gemini.h # {
5335 LSOF_CFGF="$LSOF_CFGF -DHASVXFS"
5337 LSOF_CFGL="$LSOF_CFGL -lsocket -lnsl -lelf -lgen"
5338 /bin/pkginfo 2> /dev/null | grep -i patch | grep -i ptf7038 > /dev/null
5339 if test -r ${LSOF_INCLUDE}/sys/file.h # {
5341 grep f_open ${LSOF_INCLUDE}/sys/file.h > /dev/null
5342 if test $? -eq 0 # {
5344 LSOF_CFGF="$LSOF_CFGF -DHAS_F_OPEN"
5347 if test -r ${LSOF_INCLUDE}/sys/fs/cdfs_fs.h # {
5349 grep "cdfs_LogSecShift;" ${LSOF_INCLUDE}/sys/fs/cdfs_fs.h > /dev/null 2>&1
5350 if test $? -eq 0 # {
5352 LSOF_TMP=`grep "cdfs_LogSecShift;" ${LSOF_INCLUDE}/sys/fs/cdfs_fs.h | sed 's/^[ ]*\([^ ]*\).*/\1/'`
5353 if test "X$LSOF_TMP" != "X" # {
5355 LSOF_CFGF="$LSOF_CFGF -DTYPELOGSECSHIFT=$LSOF_TMP"
5359 if test -r ${LSOF_INCLUDE}/sys/proc.h # {
5361 grep p_pgid ${LSOF_INCLUDE}/sys/proc.h > /dev/null
5362 if test $? -eq 0 # {
5364 LSOF_CFGF="$LSOF_CFGF -DHAS_P_PGID"
5367 if test $LSOF_VERS -ge 70101 # {
5370 # Do OpenServer Release 6.0.0 and UnixWare 7.1.1 and above tests, as
5373 if test "X$UW_HAS_NSC" = "X" # {
5376 if test -x /bin/node_self # {
5378 /bin/node_self > /dev/null 2>&1
5379 if test $? -eq 0 # {
5385 if test "X$UW_HAS_NSC" = "XY" -o "X$UW_HAS_NSC" = "Xy" # {
5387 LSOF_CFGF="$LSOF_CFGF -DHAS_UW_NSC"
5388 LSOF_CFGL="$LSOF_CFGL -lcluster"
5390 if test -r ${LSOF_INCLUDE}/sys/nsc_synch.h # {
5392 LSOF_CFGF="$LSOF_CFGF -DHAS_UW_CFS"
5397 echo Unsupported UnixWare version: `uname -v`
5402 if test -r ${LSOF_INCLUDE}/sys/fs/xnamnode.h # {
5404 LSOF_CFGF="$LSOF_CFGF -DHASXNAMNODE"
5409 # Handle unknown abbreviation.
5412 echo "Can't configure for $LSOF_TGT."
5418 # End of LSOF_TGT cases
5422 # Do an inventory of the distribution, as required.
5424 if test "X$LSOF_SCRIPT_CALL" = "Xyes" -a ! -r ./.neverInv # {
5426 if test ! -f ./Inventory # Want -x, but Ultrix doesn't grok it. # {
5428 echo "Can't find Inventory script."
5435 # Make sure target directory exists.
5437 if test ! -d ./dialects/$LSOF_DIALECT_DIR # {
5439 echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR doesn't exist."
5444 # Make sure $LSOF_MK exists in the target directory.
5446 if test ! -r ./dialects/$LSOF_DIALECT_DIR/$LSOF_MK # {
5448 echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR/$LSOF_MK doesn't exist."
5453 # Make sure $LSOF_MKF, $LSOF_SPMKF, or $LSOF_MKF.$LSOF_LOCALSUFFIX) exists
5454 # in the target directory.
5456 if test "X$LSOF_SPMKF" != "X" # {
5458 LSOF_TMP1=$LSOF_SPMKF
5462 if test "X$LSOF_LOCALSUFFIX" != "X" # {
5464 LSOF_REST=$LSOF_TMP1.$LSOF_LOCALSUFFIX
5466 LSOF_REST=$LSOF_TMP1
5468 if test ! -r ./dialects/$LSOF_DIALECT_DIR/$LSOF_REST # {
5470 echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR/$LSOF_REST doesn't exist."
5475 # If this is FreeBSD, make sure $LSOF_FBSD_ZFS_MKF exists.
5477 if test $LSOF_FBSD_ZFS -eq 1 # {
5479 if test ! ./dialects/$LSOF_DIALECT_DIR/$LSOF_FBSD_ZFS_MKF # {
5481 echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR/$LSOF_FBSD_ZFS_MKF doesn't exist."
5487 # Make sure $LSOF_VF exists. Extract the version number from it.
5489 if test ! -r $LSOF_VF # {
5491 echo "Version number file, ./$LSOF_VF, doesn't exist."
5495 LSOF_VN=`sed "s/.ds VN \(.*\)/\1/" < $LSOF_VF`
5498 # Clean up in advance.
5500 rm -f $LSOF_F $LSOF_MKFC $LSOF_FBSD_ZFS_MKF $LSOF_TSTCFLG $LSOF_TSTCC
5501 rm -f $LSOF_TSTXOC $LSOF_TSTLFF
5502 echo "rm -f $LSOF_F $LSOF_MKFC $LSOF_FBSD_ZFS_MKF $LSOF_TSTCFLG"
5503 echo "rm -f $LSOF_TSTCC $LSOF_TSTXOC $LSOF_TSTLFF"
5505 # Make sure there's a C compiler name.
5507 if test "X$LSOF_CC" = "X" # {
5512 # Do common feature analyses.
5514 # Check for localtime(3) and strftime(3).
5516 rm -f ${LSOF_TMPC}.*
5517 cat > $LSOF_TMPC.c << .LSOF_END_HERE_DOC2
5523 if ((cl = time(NULL)) == (time_t)-1)
5525 ts = localtime(&cl);
5526 if (strftime(bf, sizeof(bf), "%D", ts) != 8)
5528 if ((bf[2] != '/') || (bf[5] != '/'))
5533 echo $EO "Testing C library for localtime() and strftime(), using $LSOF_CC ... $EC"
5534 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
5535 if test -x ${LSOF_TMPC}.x # {
5538 if test $? -eq 0 # }
5540 LSOF_CFGF="$LSOF_CFGF -DHAS_STRFTIME"
5548 rm -f ${LSOF_TMPC}.[cox]
5550 # Make the dialect sources.
5552 if test "X$LSOF_MKC" = "X" # {
5556 LSOF_MKC=$LSOF_MKC ./dialects/$LSOF_DIALECT_DIR/$LSOF_MK $LSOF_TGT $LSOF_VERS
5558 # Make $LSOF_MKFC and ${LSOF_LIB}/$LSOF_LIBMKF.
5560 echo "# $LSOF_TGT Makefile for lsof revision $LSOF_VN" > $LSOF_MKFC
5561 echo "" >> $LSOF_MKFC
5562 echo "CC= $LSOF_CC" >> $LSOF_MKFC
5563 if test "X$LSOF_CCV" != "X" # {
5565 echo "" >> $LSOF_MKFC
5566 echo "CCV= $LSOF_CCV" >> $LSOF_MKFC
5568 if test "X$LSOF_LIB_NO" = "X" # {
5570 echo "" >> $LSOF_MKFC
5571 echo "LIB= ${LSOF_LIB}/liblsof.a" >> $LSOF_MKFC
5573 if test "X$LSOF_LD" != "X" # {
5575 echo "" >> $LSOF_MKFC
5576 echo "LD= $LSOF_LD" >> $LSOF_MKFC
5578 if test "X$LSOF_CINFO" != "X" # {
5580 echo "" >> $LSOF_MKFC
5581 echo "CINFO= $LSOF_CINFO" >> $LSOF_MKFC
5583 if test "X$LSOF_CFGD" != "X" # {
5585 echo "CFGD= $LSOF_CFGD" >> $LSOF_MKFC
5587 if test "X$LSOF_CFGDN" != "X" # {
5589 echo "CFGDN= $LSOF_CFGDN" >> $LSOF_MKFC
5591 if test "X$LSOF_ARCH" != "X" # {
5593 LSOF_CFGF="$LSOF_CFGF -DLSOF_ARCH=\\\"$LSOF_ARCH\\\""
5595 if test "X$LSOF_VSTR" != "X" # {
5597 LSOF_TMP=`echo $LSOF_VSTR | sed 's/(/\\\\(/g' | sed 's/)/\\\\)/g'`
5598 LSOF_CFGF="$LSOF_CFGF -DLSOF_VSTR=\\\"$LSOF_TMP\\\""
5600 echo "" >> $LSOF_MKFC
5601 echo "CFGF= $LSOF_CFGF" >> $LSOF_MKFC
5602 if test "X$LSOF_LIB_NO" = "X" # {
5604 echo "" >> $LSOF_MKFC
5605 echo "CFGL= $LSOF_FCFGL -L./$LSOF_LIB -llsof $LSOF_CFGL" >> $LSOF_MKFC
5607 echo "" >> $LSOF_MKFC
5608 if test "X$LSOF_DEBUG" = "X" # {
5612 if test "X$LSOF_DEBUG" = "XNo-O" # {
5617 echo "DEBUG= $LSOF_DEBUG" >> $LSOF_MKFC
5618 if test "X$LSOF_OPINC" != "X" # {
5620 LSOF_DINC="$LSOF_DINC $LSOF_OPINC"
5622 if test "X$LSOF_DINC" != "X" # {
5624 echo "" >> $LSOF_MKFC
5625 echo "DINC= $LSOF_DINC" >> $LSOF_MKFC
5627 if test "X$LSOF_DOC" != "X" # {
5629 echo "" >> $LSOF_MKFC
5630 echo "DOC=$LSOF_DOC" >> $LSOF_MKFC
5632 if test "X$LSOF_DISTRIBKVM" != "X" -a "X$LSOF_DISTRIBKVM" != "XKVM" # {
5634 echo "" >> $LSOF_MKFC
5635 echo "KVM= $LSOF_DISTRIBKVM" >> $LSOF_MKFC
5637 rm -f ${LSOF_LIB}/$LSOF_LIBMKF
5638 if test "X$LSOF_LIB_NO" = "X" # {
5640 cp $LSOF_MKFC ${LSOF_LIB}/$LSOF_LIBMKF
5642 cat ./dialects/$LSOF_DIALECT_DIR/$LSOF_REST >> $LSOF_MKFC
5643 if test "X$LSOF_LIB_NO" = "X" # {
5646 # Put archiving and optional randomizing strings in ${LSOF_LIB}/$LSOF_LIBMKF.
5648 # Process optional CFLAGS override.
5650 # Add the library Makefile skeleton section.
5652 echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF
5653 if test "X$LSOF_AR" = "X" # {
5655 echo "AR= ar cr \${LIB} \${OBJ}" >> ${LSOF_LIB}/$LSOF_LIBMKF
5657 echo "AR= $LSOF_AR \${LIB} \${OBJ}" >> ${LSOF_LIB}/$LSOF_LIBMKF
5659 if test "X$LSOF_RANLIB" != "X" # {
5661 echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF
5662 echo "RANLIB= $LSOF_RANLIB \${LIB}" >> ${LSOF_LIB}/$LSOF_LIBMKF
5664 echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF
5665 if test "X$LSOF_CFLAGS_OVERRIDE" = "X" # {
5667 echo "CFLAGS= \${CDEFS} \${INCL} \${DEBUG}" >> ${LSOF_LIB}/$LSOF_LIBMKF
5669 echo "override CFLAGS=\${CDEFS} \${INCL} \${DEBUG}" >> ${LSOF_LIB}/$LSOF_LIBMKF
5671 echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF
5672 cat ${LSOF_LIB}/$LSOF_LIBMKFSKEL >> ${LSOF_LIB}/$LSOF_LIBMKF
5673 echo $LSOF_MKFC and ${LSOF_LIB}/$LSOF_LIBMKF created.
5675 echo $LSOF_MKFC created.
5678 # If this is FreeBSD, create $LSOF_FBSD_ZFS_MKF.
5680 if test $LSOF_FBSD_ZFS -eq 1 # {
5682 rm -f $LSOF_FBSD_ZFS_MKF
5683 echo "# $LSOF_TGT ZFS Makefile for lsof revision $LSOF_VN" > $LSOF_FBSD_ZFS_MKF
5684 echo "" >> $LSOF_FBSD_ZFS_MKF
5685 echo "CC= $LSOF_CC" >> $LSOF_FBSD_ZFS_MKF
5686 echo "" >> $LSOF_FBSD_ZFS_MKF
5687 echo "CFLAGS= $LSOF_FBSD_ZFS_CFGF" >> $LSOF_FBSD_ZFS_MKF
5688 echo "" >> $LSOF_FBSD_ZFS_MKF
5689 if test "X$LSOF_DEBUG" = "X" # {
5693 if test "X$LSOF_DEBUG" = "XNo-O" # {
5698 echo "DEBUG= $LSOF_DEBUG" >> $LSOF_FBSD_ZFS_MKF
5699 echo "" >> $LSOF_FBSD_ZFS_MKF
5700 echo "OPENSOLARIS= $LSOF_FBSD_ZFS_SYS" >> $LSOF_FBSD_ZFS_MKF
5701 echo "" >> $LSOF_FBSD_ZFS_MKF
5702 cat ./dialects/$LSOF_DIALECT_DIR/$LSOF_FBSD_ZFS_MKF >> $LSOF_FBSD_ZFS_MKF
5703 echo $LSOF_FBSD_ZFS_MKF created.
5706 # Create test cc file.
5708 echo "$LSOF_CC" > $LSOF_TSTCC
5709 echo "$LSOF_TSTCC created"
5711 # Create test cflags file.
5713 echo "-DLT_DIAL_$LSOF_TGT" > $LSOF_TSTCFLG
5714 if test "X$LSOF_TSTBIGF" != "X" # {
5716 echo "-DLT_BIGF" >> $LSOF_TSTCFLG
5717 if test "X$LSOF_TSTBIGF" != "X " # {
5719 for i in $LSOF_TSTBIGF # {
5721 echo "$i" >> $LSOF_TSTCFLG
5725 if test "X$LSOF_TSTDFLG" != "X" # {
5727 for i in $LSOF_TSTDFLG # {
5729 echo "$i" >> $LSOF_TSTCFLG
5732 echo $LSOF_CC | grep gcc > /dev/null 2>&1
5733 if test $? -eq 0 # {
5735 echo "-DLT_GCC" >> $LSOF_TSTCFLG
5737 echo "-DLT_CC" >> $LSOF_TSTCFLG
5739 if test $LSOF_TSTKMEM -eq 1 # {
5741 echo "-DLT_KMEM" >> $LSOF_TSTCFLG
5743 if test $LSOF_TSTK64 -eq 1 # {
5745 echo "-DLT_K64" >> $LSOF_TSTCFLG
5747 echo "-DLT_VERS=$LSOF_VERS" >> $LSOF_TSTCFLG
5748 if test $LSOF_TSTVPATH -eq 1 # {
5750 echo "-DLT_VPATH" >> $LSOF_TSTCFLG
5752 echo "$LSOF_TSTCFLG created"
5754 # Create tests loader flags file.
5756 echo $LSOF_TSTLFLG > $LSOF_TSTLFF
5757 echo "$LSOF_TSTLFF created"
5759 # Create test extra objects file.
5761 echo "$LSOF_TSTXO" > $LSOF_TSTXOC
5762 echo "$LSOF_TSTXOC created"
5766 # Call Customize, as required.
5768 if test "X$LSOF_SCRIPT_CALL" = "Xyes" -a ! -r ./.neverCust # {
5770 if test ! -f ./Customize # { Want -x, but Ultrix doesn't grok it.
5772 echo "Can't find Customize script."
5775 ./Customize $LSOF_DIALECT_DIR
5778 # Issue unsupported warnings, as appropriate.
5780 if test "X$LSOF_UNSUP" != "X" # {
5784 if test "X$LSOF_UNSUP2" != "X" # {