summaryrefslogtreecommitdiff
path: root/00XCONFIG
diff options
context:
space:
mode:
Diffstat (limited to '00XCONFIG')
-rw-r--r--00XCONFIG703
1 files changed, 703 insertions, 0 deletions
diff --git a/00XCONFIG b/00XCONFIG
new file mode 100644
index 0000000..c89ae8e
--- /dev/null
+++ b/00XCONFIG
@@ -0,0 +1,703 @@
+
+ Cross-configuring Lsof
+
+Introduction
+============
+
+Lsof cross-configuration is useful when the target dialect or target
+dialect version for which lsof is to be configured and built differs
+from the one on which the Configure operation is done.
+
+Marty Leisner <leisner@sdsp.mc.xerox.com> suggested the method
+described here for lsof cross-configuration, and he supplied
+modifications to the Configure script for cross-configuring Linux
+lsof.
+
+Marty says:
+
+ "I used this to successfully compile (lsof) on the same machine
+ for (Linux) 2.0.30 and 2.1.42. (I normally don't bring up a
+ 2.1.42 machine all the time). Also it (the 2.0.30 system)
+ doesn't have much storage and compiles on it are slow.
+
+ Set LSOF_VERS if it's not the (version of the) current system.
+ (Actually, you should get the version out of include/linux/version.h.)
+
+ Define LINUX_KERNEL to (the path) where the kernel sources
+ are (located). (No longer necessary as of lsof revision 4.53.)
+
+ This should work on most systems; they put a kernel in
+ /usr/src/linux, which is the default.
+
+ Now I can just do:
+
+ LINUX_KERNEL=/some/other/kernel LSOF_VERS=2142 ./Configure linux
+
+ Comments? Its very convenient when running multiple kernels.
+ (It would be (have been) very handy when the structures changed
+ between 2.0.2* and 2.0.30 , or whatever.)
+
+ I run multiple OSes at a time (not to mention multiple
+ architectures. It's very pleasant to cross-build either
+ operating systems or versions."
+
+So, the situation is that you have lsof sources on a UNIX dialect
+version, and you want to configure them to build lsof for some
+other version of the same dialect, or perhaps for some other UNIX
+dialect altogether.
+
+
+The Cross-Configure Method
+==========================
+
+The lsof cross-configure method uses environment variables to tell
+the lsof Configure script about the target dialect. The environment
+variables may specify alternate locations for Configure to examine
+when it determines characteristics of the target, or they may
+specify the values Configure would discover when it examined the
+target's characteristics.
+
+Consult each environment variable description for the UNIX dialect
+in which you're interested to see how it affects the operation of
+the Configure script.
+
+The number and values of the variables differ by dialect. Each
+variable begins with an upper case version of the dialect's Configure
+abbreviation -- e.g., AIX for aix or aixgcc, LINUX for linux,
+UW for uw (UnixWare), etc.
+
+Of course, the UNIX dialect's version is probably different from
+that of the system on which you're doing the cross-configuration,
+so you will need to specify the new version, too. For example, to
+configure for FreeBSD 3.0 on a 2.1.7 system, where the standard
+3.0 header files are in /3.0/usr/include and the 3.0 system sources
+are in /3.0/sys, do this:
+
+ LSOF_VERS=300 LSOF_INCLUDE=/3.0/usr/include \
+ FREEBSD_SYS=/3.0/sys Configure -n freebsd
+
+
+General Environment Variables
+=============================
+
+There are some environment variables whose names don't begin with
+an upper case rendering of a dialect abbreviation. Generally they
+apply to all dialects.
+
+AFS_VICE is for AFS configuration. It need be set only if
+ lsof supports AFS on your dialect and you want to
+ specify an alternate path to the VICE files.
+
+ default: /usr/vice
+
+LSOF_AR is the path to and arguments for the library archive
+ application that is used to build the lsof library,
+ liblsof.a. When this value is placed in the library
+ Makefile as the contents of the AR make string, it is
+ followed by the path to the library and the relative
+ paths of the library module
+
+ default: ar cr
+
+LSOF_ARCH is the architecture type string for the system.
+ Usually this is the output of `uname -m`. Consult
+ the Configure script for details. The LSOF_ARCH
+ value may have to be quoted if it contains spaces.
+
+ default: auto-detection (e.g., from `uname -m`)
+
+LSOF_BLDCMT may be used to introduce a builder's comment into
+ lsof's -v output. It defaults to the null string,
+ causing no builder's comment to appear in -v output.
+
+ default: none
+
+LSOF_CC is the path to the C compiler. You may need to
+ specify it if your C compiler is in a non-standard
+ place, not found by your path. If you specify a
+ compiler different from the expected default, you
+ may have to change the compile time flags by
+ specifying new CFGF, CFGL, and DEBUG strings on
+ the make command line.
+
+ default: normally cc, but some dialects have other
+ defaults and some have auto-detection.
+
+ Check the dialect stanza in the lsof Configure
+ script to see how LSOF_CC is set by default.
+
+LSOF_CCV is the C compiler version. You should specify it
+ if you have specified a compiler path in LSOF_CC.
+
+ default: the lsof Configure script knows how to find
+ the version number of gcc and some other
+ dialect-specific compilers.
+
+ Check the dialect stanza in the lsof Configure
+ script to see how lsof_CCV is set by default.
+
+LSOF_CFGF may be used to specify additional configuration values
+ that will appear in the CFGF string of the Makefile.
+
+LSOF_CFGL may be used to specify additional library specifications
+ that will appear in the CFGL string of the Makefile.
+
+LSOF_HOST may be used to specify a value in lsof's -v output
+ other than the name of the host where lsof was
+ built. A value of "none" inhibits host name display
+ in -v output.
+
+ default: the dialect's host name application -- e.g.,
+ hostname or uname -n
+
+LSOF_INCLUDE is the path to the standard header files. You may
+ need to specify it if you want Configure to test
+ header files in a tree different from /usr/include,
+ and you want to compile lsof from the header files
+ in that different tree.
+
+LSOF_LOGNAME may be used to specify a value in lsof's -v output
+ other than the one in the LOGNAME environment
+ variable for the login name of the person who built
+ lsof. A value of "none" inhibits login name display
+ in -v output.
+
+ default: the LOGNAME environment variable
+
+LSOF_MAKE is the path to the make command.
+
+ deafult: the output of `which make`, if it is not NULL;
+ otherwise the string "make".
+
+LSOF_MKC may be used to specify an alternate method of
+ connecting dialect sources to the top-level lsof
+ directory. See 00PORTING for more information.
+
+ default: ln -s
+
+LSOF_RANLIB may be used to specify an alternate command for the
+ randomizing of the lsof library.
+
+ default: ranlib for most dialects
+ none for: IBM AIX; HP-UX; SCO OpenServer; Solaris
+ and SCO|Caldera UnixWare
+
+LSOF_SYSINFO may be used to specify a value in lsof's -v output
+ other than the standard system identification --
+ e.g., output from uname. A value of "none" inhibits
+ system information display in -v output.
+
+ default: the dialect's standard system identification
+ application output -- e.g., uname, sysinfo
+
+LSOF_USER may be used to specify a value in lsof's -v output
+ other than the one in the USER environment variable
+ for the login name of the person who built lsof.
+ A value of "none" inhibits login name display in
+ -v output.
+
+ default: the USER environment variable
+
+LSOF_VERS is the target dialect version number. It must be
+ stated in the dialect's form -- e.g., FreeBSD 2.0.5
+ is given as 205, Solaris 7 as 70000, etc. The
+ table, "Abbreviations, Variable Prefixes, and
+ Version Numbers," in this file gives the form for
+ LSOF_VERS for each dialect lsof supports.
+
+ default: auto-detection (e.g., from `uname -r`)
+
+LSOF_VSTR is the version string from which LSOF_VERS is
+ derived. Usually this is the output of `uname -r`
+ or `uname -v`. Consult the Configure script for
+ details. The LSOF_VSTR value may have to be quoted
+ if it contains spaces.
+
+ default: auto-detection (e.g., output from
+ `hostname`, `uname -r`, or `uname -v)
+
+
+Make Strings
+============
+
+The CFGF, CFGL, and DEBUG strings can be specified on the make
+command line to change default values placed in the top-level and
+library Makefiles by Configure. For example, Configure usually
+defines the compiler optimization level to be -O, but you can change
+that with "DEBUG=-g" on the make command -- e.g.,
+
+ $ make DEBUG=-g lsof
+
+Similarly, the CFGF string contains miscellaneous compile-time
+options, and CFGL contains loader options. Consult the Makefiles
+generated by Configure for the values it defines by default for
+CFGF and CFGL.
+
+As an example, Configure might define CFGL to be "-L./lib -llsof -w"
+for NextStep 3.1; to remove "-w", use this make invocation:
+
+ $ make CFGL="-L./lib -llsof"
+
+
+Abbreviations, Variable Prefixes, and Version Numbers
+=====================================================
+
+The following table describes the relationship between Configure
+abbreviations, environment variable prefixes, and lsof UNIX dialect
+version numbers. The lsof UNIX dialect version number must be
+declared exactly in the listed form when supplied via the LSOF_VERS
+environment variable.
+
+ Dialect Lsof Version
+ Configure Variable Version Number for
+Abbreviation* Prefix Number LSOF_VERS
+
+ aix AIX 3.2.5 3250
+ aixgcc 4.1.0 4100
+ 4.1.4 4140
+ 4.1.4 4150
+ 4.2.0 4200
+ 4.2.1 4210
+ 4.3 4300
+ 4.3.1 4310
+ 4.3.2 4320
+ 4.3.3 4330
+ 5.0.x 5000
+ 5.1.x 5100
+ 5.2.x 5200
+ 5.3.x 5300
+ darwin DARWIN 1.2* 120
+ 1.3* 130
+ 1.4* 140
+ 5.[012] 500
+ 5.[3-9] 530
+ 6.x 600
+ 7.x 700
+ 8.x 800
+ du DU 2.0 20000
+ 3.0 30000
+ 3.2 30200
+ 4.0 40000
+ 5.0 50000
+ 5.1 50100
+ freebsd FREEBSD 1.x 1000
+ 2.x 2000
+ 2.0.5 2005
+ 2.1.x 2010
+ 2.2.x 2020
+ 3.x 30x0
+ 4.x 40x0
+ 4.1x 41x0
+ 5.x 50x0
+ 6.x 60x0
+ 7.x 70x0
+ 8.x 80x0
+ 9.x 90x0
+ hpux HPUX 9.1 901
+ hpuxgcc HPUX 9.5 905
+ 10.0 1000
+ 10.10 1010
+ 10.20 1020
+ 11.00 1100
+ 11.11 1111
+ linux LINUX 2.1.x 21xxx
+ 2.2.x 22xxx
+ 2.3.x 23xxx
+ 2.4.x 24xxx
+ 2.6.x 26xxx
+ netbsd NETBSD 1.2 1002000
+ 1.3 1003000
+ 1.4 1004000
+ 1.5 1005000
+ 1.6 1006000
+ 2.0 2000000
+ 2.99.9 2099009
+ 2.99.10 2099010
+ ns NEXTSTEP 3.1 31
+ openbsd OPENBSD 1.2 1020
+ 2.0 2000
+ 2.1 2010
+ 2.2 2020
+ 2.3 2030
+ 2.4 2040
+ 2.5 2050
+ 2.6 2060
+ 2.7 2070
+ 2.8 2080
+ 2.9 2090
+ 3.0 3000
+ 3.1 3010
+ 3.2 3020
+ 3.3 3030
+ 3.4 3040
+ 3.5 3050
+ 3.6 3060
+ os OPENSTEP 4.x 4x
+ osr OSR 3.2v2.0 20
+ 3.2v2.1 21
+ 3.2v4.0 40
+ 3.2v4.1 41
+ 3.2v4.2 42
+ 3.2v5.0.0 500
+ 3.2v5.0.2 502
+ 3.2v5.0.4 504
+ 3.2v5.0.6 506
+ ou OU 8.0.0 80000
+ solaris SOLARIS 2.3 20300
+ solariscc SOLARIS 2.4 20400
+ 2.5 20500
+ 2.5.1 20501
+ 2.6 20600
+ 7 70000
+ 8 80000
+ 9 90000
+ 10 100000
+ uw UW 7.0 70000
+ 7.1.0 70100
+ 7.1.1 70101
+ 7.1.3 70103
+
+* -- The optional Configure abbreviations -- e.g., the ``decosf''
+ and ``digital_unix'' alternatives to ``du'' -- aren't listed
+ here.
+
+
+Dialect-Specific Environment Variables
+======================================
+
+Here are the dialect-specific environment variables, listed
+alphabetically. The first part of any environment variable will
+be the dialect abbreviation, as specified to Configure, converted
+to upper case characters. See the `Configure -help` output for a
+listing of the abbreviations.
+
+AIX_ARCH specifies the AIX architecture when the AIX version is
+ 5.0 or higher. A value of "" signifies POWER; "ia64",
+ 64 bit x86 (Itanium).
+
+ default: none (tested via `uname -a`)
+
+AIX_HAS_AFS specifies the state of AIX ADS support when the AIX
+ version is 4.3.3 or lower. (Lsof doesn't support AFS
+ above AIX 4.3.3.) A value of "" allows the Configure
+ script to determine the AFS support state; "no",
+ disables AFS support; and "yes", forces the enabling of
+ AFS support.
+
+ default: none (tested via presence of AFS files and the
+ lsof AFSConfig shell script)
+
+AIX_KERNBITS specifies the kernel bit size, 32 or 64, of the Power
+ architecture AIX 5.x kernel for which lsof was built.
+
+ default: determined by the Configure script with a test
+ program that uses <sys/systemcfg.h> macros.
+
+AIX_USHACK If this environment variable has a value of "Y" or "y",
+ and if the aixgcc Configure abbreviation is selected,
+ the AIX 4.1 and greater gcc user structure hack is
+ activated; any other non-NULL value, it's not set; a
+ NULL value, it's tested by compilation.
+
+ default: none (tested by compilation)
+
+DARWIN_XNUDIR If this environment variable has a value, the value is
+ used as the path to the Darwin XNU kernel source code.
+
+ default: none (entry requested)
+
+DARWIN_XNU_HEADERS If this environment variable has a value, the value is
+ used as the path to the Darwin XNU kernel header files.
+ This path would match the DSTROOT environment variable
+ used when a "make installhdrs" was executed from the
+ Darwin XNU kernel source directory.
+
+ default: none
+
+DU_ADVFSV specifies the DEC OSF/1, Digital UNIX, or Tru64 UNIX
+ ADVFS file system version -- e.g., 200 for 2.0, 400
+ for 4.0, etc.
+
+ default: determined via /usr/sbin/setld
+
+DU_CDIR specifies the name of the DEC OSF/1, Digital UNIX, or
+ Tru64 UNIX system configuration directory.
+
+ default: first host name component, converted to upper
+ case
+
+DU_SHLIB specifies the DEC OSF/1, Digital UNIX, or Tru64 UNIX
+ shared library directory path.
+
+ default: /usr/shlib
+
+DU_SYSDIR DEC OSF/1, Digital UNIX, or Tru64 UNIX system
+ directory path.
+
+ 2.x and 3.x default: /sys
+ 4.x default: /usr/sys
+
+FREEBSD_KERNEL specifies the path to the FreeBSD kernel for FreeBSD
+ version less than 2.0.
+
+ default: /386bsd
+
+FREEBSD_SYS specifies the path to the FreeBSD system source
+ directory.
+
+ default: /sys
+
+HPUX_BASE specifies the HP-UX lsof source code base, kmem or
+ pstat, to be used.
+
+ default: determined by testing for the
+ /usr/include/sys/pstat subdirectory
+
+HPUX_BOOTFILE specifies the file in which lsof's Configure script can
+ find kernel information. This specification may be
+ useful for defining the path to a copy of /stand/vmunix
+ that has been processed by pxdb or q4pxdb.
+
+ default: /stand/vmunix
+
+HPUX_CCDIR1 specifies the first directory where Configure might
+ find an HP-UX C compiler. This is ignored when
+ LSOF_CC has been specified.
+
+ default: /bin
+
+HPUX_CCDIR2 specifies the second directory where Configure might
+ find an HP-UX C compiler. This is ignored when
+ LSOF_CC has been specified.
+
+ default: /usr/ccs/bin
+
+HPUX_HASONLINEJFS If this environment variable has a value of "Y" or "y",
+ the HASONLINEJFS definition will be enabled in the
+ Makefile CFLAGS. That will cause dnode1.c to use an
+ alternate vx_inode.h header file in the hpux11 sub-
+ directory of dialects/hpux/kmem.
+
+ default: determined using nm and grep
+
+HPUX_IPC_S_PATCH If this environment variable has a value of "1", the
+ ipc_s structure of the HP-UX 11 kernel is assumed to
+ have an ipc_ipis member, but it is assumed the ipis_s
+ structure lacks the ipis_msgsqueued member; "2", ipc_s
+ has ipc_ipis, but ipis_s has ipis_msgsqueued; "n" or
+ "N", ipc_s lacks ipc_ipis; any other non-NULL value is
+ considered an error; a NULL value, HPUX_IPC_S_PATCH is
+ determined by testing.
+
+ default: determined with q4 and grep
+
+HPUX_KERNBITS specifies the number of bits (32 or 64) in the HP-UX
+ 11 "basic kernel word.
+
+ default: `getconf _SC_KERNEL_BITS`
+
+HPUX_LIBC1 specifies the first directory that might contain the
+ HP-UX C library, libc.sl.
+
+ default: /usr/lib
+
+HPUX_LIBC2 specifies the second directory that might contain the
+ HP-UX C library, libc.sl.
+
+ default: /lib
+
+HPUX_RNODE3 If this environment variable has a value of "1", the
+ Configure script will define HASRNODE3 in the Makefile
+ CFGF flags. If it is defined, but not "1", Configure
+ will not define HASRNODE2.
+
+ default: determined using `nm -x /stand/vmunix` and
+ `grep r_fh3 /usr/include/nfs/rnode.h`
+
+HPUX_X25DIR specifies path to the HP-UX X25 directory that contains
+ configuration header files.
+
+ default: /etc/conf
+
+LINUX_CLIB specifies the definition of the Linux C library:
+
+ default: "" (standard C library)
+ others: -DGLIBCV=2 (glibc2)
+
+LINUX_CONF_CC specifies the location of the C compiler to use during
+ the running of the Configure script:
+
+ default: the value of the LSOF_CC variable, if defined,
+ or cc
+
+LINUX_HASSELINUX If this environment variable has a value of "Y" or "y",
+ Configure unconditionally activates SELinux support.
+ If it has any other value, Configure unconditionally
+ inhibits SELinux suport.
+
+ Default: assumed to be "Y" if <selinux/selinux.h>
+ exists
+
+LINUX_INCL specifies the path to the header file tree:
+
+ default: /usr/include
+
+LINUX_LSEEK If this environment variable has a value of "Y" or "y",
+ Configure uses Makefile.lseek in place of Makefile in
+ order to enable use of the private lseek() function for
+ 2.1.x kernels; any other non-NULL value, Makefile.lseek
+ will isn't used; a NULL value, the alternate lseek()
+ need is determined by compilation.
+
+ default: determined by test program
+
+LINUX_VERSION_CODE specifies the value of the LINUX_VERSION_CODE in the
+ same decimal form as found in the LINUX_VERSION_CODE
+ #define of /usr/include/linux/version.h:
+
+ default: the value of LINUX_VERSION_CODE in
+ /usr/include/linux/version.h
+
+NETBSD_SYS specifies the path to the NetBSD system source
+ directory.
+
+ default: /usr/include
+
+NETBSD_UVM If this environment variable has a value of "Y" or "y",
+ the NetBSD system uses the UVM virtual memory system;
+ any other non-NULL value, it does not; a NULL value,
+ it will be determined by the contents of /etc/mk.conf.
+
+ default: tested by grep'ping /etc/mk.conf
+
+OPENBSD_SYS specifies the path to the OpenBSD system source
+ directory.
+
+ default: /sys
+
+OPENBSD_UVM If this environment variable has a value of "Y" or "y",
+ the OpenBSD system uses the UVM virtual memory system;
+ any other non-NULL value, it does not; a NULL value,
+ it will be determined by examining /bsd.
+
+ default: tested by grep'ping `nm /bsd` output
+
+
+OSR_CFGF The value of this environment variable is made the
+ initial value for the compiler flags the lsof Configure
+ script constructs for the Makefile CFGF macro.
+
+ default: ""
+
+OSR_CFGL The value of this environment variable is made the
+ initial value for the loader flags the lsof Configure
+ script constructs for the Makefile CFGL macro.
+
+ default: ""
+
+OSR_STATLSTAT If this environment variable has a value of "Y" or "y",
+ HAS_STATLSTAT is defined in the Makefile's CFGL string;
+ any other non-NULL value, it's not defined; a NULL
+ value, it is determined with nm and grep.
+
+ default: determined with nm and grep
+
+
+SOLARIS_23P101318 If this environment variable has a non-NULL value, the
+ value is interpreted as the patch level of the Solaris
+ 2.3 P101318 patch.
+
+ default: pkginfo tested with grep
+
+SOLARIS_24P101945 If this environment variable has a non-NULL value, the
+ value is interpreted as the patch level of the Solaris
+ 2.4 P101945 patch.
+
+ default: pkginfo tested with grep
+
+SOLARIS_24P102303 If this environment variable has a non-NULL value, the
+ value is interpreted as the patch level of the Solaris
+ 2.4 P102303 patch.
+
+ default: pkginfo tested with grep
+
+SOLARIS_26PR_GWINDOWS If this environment variable has a value of "Y" or "y",
+ the HASPR_GWINDOWS definition is set in the Solaris 2.6
+ and 7 Makefile's CFG string; any other non-NULL value,
+ it's not set; a NULL value, it's tested by compilation.
+
+ default: tested by compilation
+
+SOLARIS_26PR_LDT If this environment variable has a value of "Y" or "y",
+ the HASPR_LDT definition is set in the Solaris 2.6
+ Makefile's CFGL string; any other non-NULL value, it's
+ not set; a NULL value, it's tested by compilation.
+
+ default: tested by compilation
+
+SOLARIS_CCDIR specifies the path to the Sun C compiler -- i.e., when
+ `Configure solariscc` is used. This is ignored when
+ LSOF_CC has been specified.
+
+ default: /opt/SUNWspro/bin
+
+SOLARIS_INSTR specifies the Sun C compiler target instruction set
+ when building lsof for a 64 bit kernel -- i.e., when
+ the Configure abbreviation is "solariscc". Possible
+ values include amd64 and sparcv9. This is ignored when
+ the Configure abbreviation is "solaris" -- i.e., the
+ compiler is gcc.
+
+ default: tested with /bin/isainfo -k
+
+SOLARIS_KERNBITS specifies the number of bits in the Solaris 7, 8, 9 or
+ 10 kernel: 32 or 64.
+
+ default: tested with /bin/isainfo -kv
+
+SOLARIS_VSOCK If this environment variable has a value of "Y" or "y",
+ the HAS_VSOCK definition is in the Solaris Makefile's
+ CFGL string; any other non-NULL value, it's not set; a
+ NULL value, it's tested by compilation.
+
+ default: tested by compilation
+
+SOLARIS_VXFSINCL This environment variable defines the path to the
+ header files of the VxFS 3.4 or greater version. If
+ SOLARIS_VXFSINCL is not set, the default is used.
+
+ default: VxFS < 4.0:
+ /opt/VRTSvxfs/include
+ VxFS 4.0 and above:
+ /opt/VRTSfssdk/<version>/include
+
+SOLARIS_VXFSLIB This environment variable defines the path to the
+ VxFS 3.4 or greater utility libraries, libvxfsutil.a
+ (32 bit) and libvxfsutil64.a (64 bit). If
+ SOLARIS_VXFSLIB is not set, the default is used.
+
+ Note: end SOLARIS_VXFSLIB at the "/lib" component; do
+ NOT put "/sparcv9" at its end. The lsof
+ Configure script will add "/sparcv9" if it is
+ required; hence, if Configure finds that
+ "/sparcv9" is needed, your SOLARIS_VXFSLIB
+ directory tree must have a sparcv9 subdirectory.
+
+ default: `dirname $SOLARIS_VXFSINCL`/lib
+
+SUN_AFSAPATHDEF specifies the path to the AFS library modload file
+ for either Solaris or SunOS.
+
+ default: /usr/vice/etc/modload/libafs
+ Verified with ls.
+
+ Note: the SunOS support is no longer maintained.
+
+UW_HAS_NSC If this environment variable has a value of "Y" or "y",
+ lsof will be configured for a UnixWare 7.1.1 or above
+ NonStop Cluster (NSC) system.
+
+ default: tested via /bin/node_self
+
+Vic Abell <abe@purdue.edu>
+September 27, 2011